MCP Server

Connect your AI to user feedback

MCPFeedback exposes an MCP server that lets AI assistants read, create, and manage feedback items, crash reports, network logs, session replays, and feature requests — all via a single connection.

Overview

The MCPFeedback MCP server provides 24 tools across 5 categories. Once connected, your AI assistant can work with all of your mobile and web feedback data programmatically.

Feedback

9 tools

Crash Reports

2 tools

Network Logs

1 tool

Session Replay

2 tools

Feature Requests

5 tools

Sites

1 tool

Quick Setup

Pick your client. The whole setup takes under 2 minutes.

Before you start

  1. Create an MCPFeedback account (free trial, no credit card)
  2. Go to MCP & API Keys and generate an API key
  3. Copy the config below and paste your key
1Open your terminal
2Run the command below
3Claude Code will confirm the server was added
terminal
claude mcp add mcpfeedback \
  --transport http \
  --url https://staging.mcpfeedback.com/api/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Replace YOUR_API_KEY with the key from your dashboard.

Authentication

All requests to the MCP server require a valid API key passed via the Authorization header. Keys are scoped to your organization and provide access to all sites and apps within it.

header
Authorization: Bearer mcpf_abc123...

Scoped access

Keys are scoped to your organization. Each key can access all sites and apps in your organization.

Revocable

Revoke any key instantly from your dashboard. Takes effect immediately.

Usage tracking

See when each key was last used in your API Keys dashboard.

Feedback Tools

Read, create, update, and manage user feedback items across all your sites and apps.

list_feedback

List feedback items with filters for status, severity, type, and lifecycle segment. Returns attachment_count per item. Supports cursor-based pagination.

NameTypeRequiredDescription
siteIdstring (UUID)NoFilter by site ID
statusstring enumNonew | accepted | in_progress | resolved | closed | rejected
severitystring enumNolow | medium | high
feedbackTypestring enumNobug_report | feature_request | ux_issue | general_comment
segmentstring enumNoactive | closed | all | deleted (default: all)
limitnumberNoItems to return, 1–100 (default: 25)
cursorstringNoPagination cursor (created_at of last item)
// Example response item
{
  "id": "uuid",
  "reference_number": "SPC22",
  "title": "Button unresponsive on checkout",
  "severity": "high",
  "status": "new",
  "feedback_type": "bug_report",
  "reporter_email": "user@example.com",
  "attachment_count": 2,
  "created_at": "2026-04-07T10:00:00Z"
}
get_feedback

Get full details of a feedback item including all attachments. Accepts UUID or reference number (e.g. SPC22). Returns attachment images as inline content blocks for AI visual analysis.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number (e.g. SPC22)
update_feedback_status

Update the status of a feedback item. Validates allowed status transitions. Accepts reference numbers.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number
statusstring enumYesnew | accepted | in_progress | resolved | closed | rejected
update_feedback_type

Change the type/category of a feedback item.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number
feedbackTypestring enumYesbug_report | feature_request | ux_issue | general_comment
create_feedback

Create a new feedback item with title, details, severity, and type.

NameTypeRequiredDescription
siteIdstring (UUID)YesThe site to create feedback for
titlestringYesFeedback title (max 500 chars)
detailsstringNoDetailed description (max 5000 chars)
severitystring enumNolow | medium | high (default: medium)
reporterEmailstring (email)YesReporter email address
feedbackTypestring enumNobug_report | feature_request | ux_issue | general_comment (default: general_comment)
delete_feedback

Soft-delete a feedback item (recoverable) or permanently delete it.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number
permanentlybooleanNoPermanently delete (cannot be undone). Default: false
restore_feedback

Restore a soft-deleted feedback item back to the active list.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number of soft-deleted item
post_fix_notes

Post a fix/resolution note on a feedback item. Optionally emails the reporter with the project name in the subject.

NameTypeRequiredDescription
feedbackIdstringYesUUID or reference number
contentstringYesFix note content (max 5000 chars)
notifyReporterbooleanNoSend email to reporter (default: true)
list_sites

List all sites in your organization with domains, widget theme, and configuration.

NameTypeRequiredDescription
includeInactivebooleanNoInclude inactive sites (default: false)

Crash Report Tools

Access crash reports from native Flutter, iOS, and Android SDKs. Each report includes the full stack trace, device info, and network logs captured before the crash.

list_crash_reports

List crash reports across your sites. Filter by platform, app version, exception type, or status. Returns summary info including occurrence count and affected user count.

NameTypeRequiredDescription
siteIdstring (UUID)NoFilter by site/app ID
platformstring enumNoflutter | ios | android
appVersionstringNoFilter by app version string
exceptionTypestringNoFilter by exception class name
statusstring enumNoopen | acknowledged | resolved | ignored
limitnumberNoItems to return, 1–100 (default: 25)
cursorstringNoPagination cursor
// Example response item
{
  "id": "uuid",
  "reference_number": "CR-00042",
  "exception_type": "NullPointerException",
  "exception_message": "Cannot read field 'id' on null object",
  "platform": "android",
  "app_version": "2.1.0",
  "occurrence_count": 14,
  "status": "open",
  "first_seen_at": "2026-04-01T08:30:00Z",
  "last_seen_at": "2026-04-07T11:20:00Z"
}
get_crash_report

Get full details of a crash report including stack trace, device info, OS version, app version, and the network log entries captured before the crash.

NameTypeRequiredDescription
crashIdstringYesUUID or reference number (e.g. CR-00042)
// Example response (truncated)
{
  "id": "uuid",
  "exception_type": "NullPointerException",
  "stack_trace": "at com.example.app.CheckoutFragment.onResume(CheckoutFragment.kt:82)\n  ...",
  "device_model": "Pixel 8 Pro",
  "os_version": "Android 15",
  "app_version": "2.1.0",
  "network_logs": [ ... ],
  "status": "open"
}

Network Log Tools

Query HTTP request logs captured by the SDK alongside feedback and crash reports. Useful for diagnosing API failures that preceded user-reported issues.

list_network_logs

List captured network log entries attached to feedback or crash reports. Filter by site, HTTP method, status code range, or URL pattern.

NameTypeRequiredDescription
feedbackIdstringNoReturn logs attached to a specific feedback item
crashIdstringNoReturn logs attached to a specific crash report
siteIdstring (UUID)NoFilter by site ID
methodstringNoHTTP method: GET | POST | PUT | DELETE | PATCH
statusCodeMinnumberNoMinimum HTTP response status code
statusCodeMaxnumberNoMaximum HTTP response status code
urlPatternstringNoSubstring or regex to match against request URL
limitnumberNoItems to return, 1–100 (default: 50)
// Example response item
{
  "id": "uuid",
  "method": "POST",
  "url": "https://api.example.com/checkout",
  "request_body": "{\"amount\": 4900}",
  "response_status": 500,
  "response_body": "Internal Server Error",
  "duration_ms": 1842,
  "captured_at": "2026-04-07T11:19:58Z"
}

Session Replay Tools

Access session replays — sequences of UI-change screenshots captured during user sessions. Use with AI vision tools to analyze user journeys and reproduce reported bugs.

list_session_replays

List session replay sessions captured alongside feedback reports. Each session is a sequence of UI-change screenshots assembled into a timeline.

NameTypeRequiredDescription
feedbackIdstringNoReturn replays attached to a specific feedback item
siteIdstring (UUID)NoFilter by site/app ID
limitnumberNoItems to return, 1–100 (default: 25)
cursorstringNoPagination cursor
// Example response item
{
  "id": "uuid",
  "feedback_id": "uuid",
  "frame_count": 47,
  "duration_seconds": 94,
  "privacy_tier": "standard",
  "captured_at": "2026-04-07T11:19:00Z"
}
get_session_replay

Get a specific session replay with all frame URLs. Frames are signed URLs to screenshots in chronological order. Use with AI vision to analyze user journeys.

NameTypeRequiredDescription
replayIdstringYesSession replay UUID

Feature Request Tools

Manage the in-app feature request board. List, create, update status, and analyze demand patterns across all feature requests submitted by your users.

list_feature_requests

List feature requests across your sites. Filter by status, sort by vote count or recency. Returns vote totals and comment counts.

NameTypeRequiredDescription
siteIdstring (UUID)NoFilter by site/app ID
statusstring enumNoopen | planned | in_progress | completed | declined
sortBystring enumNovotes | created_at | updated_at (default: votes)
limitnumberNoItems to return, 1–100 (default: 25)
cursorstringNoPagination cursor
// Example response item
{
  "id": "uuid",
  "reference_number": "FR-00007",
  "title": "Dark mode support",
  "description": "App should respect system dark mode setting.",
  "status": "planned",
  "vote_count": 42,
  "comment_count": 8,
  "submitted_by": "user@example.com",
  "created_at": "2026-04-01T09:00:00Z"
}
get_feature_request

Get full details of a feature request including description, vote count, comments, and status history.

NameTypeRequiredDescription
featureRequestIdstringYesUUID or reference number (e.g. FR-00007)
create_feature_request

Create a new feature request. The request appears on the in-app board immediately and is visible to all users of that site.

NameTypeRequiredDescription
siteIdstring (UUID)YesThe site to create the feature request for
titlestringYesFeature request title (max 200 chars)
descriptionstringNoDetailed description (max 2000 chars)
submittedBystring (email)NoEmail of the requester
// Example usage
{
  "siteId": "uuid",
  "title": "Export feedback as CSV",
  "description": "Allow dashboard users to download all feedback as a CSV for offline analysis.",
  "submittedBy": "pm@mycompany.com"
}
update_feature_request_status

Update the status of a feature request. Optionally post a status note visible to users who voted.

NameTypeRequiredDescription
featureRequestIdstringYesUUID or reference number
statusstring enumYesopen | planned | in_progress | completed | declined
statusNotestringNoOptional note explaining the status change (max 500 chars)
analyze_demand

Analyze feature request patterns to surface highest-demand requests, identify duplicate themes, and provide a ranked demand summary. Uses vote counts, comment counts, and recency.

NameTypeRequiredDescription
siteIdstring (UUID)NoLimit analysis to a specific site/app
topNnumberNoNumber of top requests to return in summary (default: 10)
includeDeclinedbooleanNoInclude declined requests in analysis (default: false)
// Example response
{
  "top_requests": [
    { "title": "Dark mode", "vote_count": 42, "status": "planned" },
    { "title": "CSV export", "vote_count": 31, "status": "open" }
  ],
  "total_open_requests": 14,
  "total_votes": 198,
  "top_theme": "UI customization",
  "analysis_note": "3 requests share the theme of data export — consider consolidating."
}

Try these prompts

Once connected, try asking your AI assistant:

Show me all unresolved bug reports
What are the top 10 most-voted feature requests?
Mark SPC12 as resolved
List all open crash reports from Android 2.1.0
Create a feature request: CSV export for feedback data
Update FR-00007 status to planned with a note
Analyze feature request demand and identify duplicate themes
Show me network logs that returned 5xx errors this week
Post a fix note on SPC12 saying we fixed the layout bug
Get the session replay for feedback SPC22

Server details

Server URLhttps://staging.mcpfeedback.com/api/mcp
TransportStreamable HTTP (JSON-RPC)
AuthBearer token via Authorization header
Tools24 tools across 5 categories: feedback, crash reports, network logs, session replay, feature requests

Network logs & session replay data

Network request bodies and session replay frames may contain sensitive user data. Request body capture is limited to maxNetworkBodyBytes (default 10 KB) and sensitive headers are redacted. Configure urlFilter and privacyTier in your SDK to control what is captured.

Ready to connect?

Create your organization and generate an API key to get started.

MCPFeedback — The complete feedback loop