Connect your AI to user feedback
MCPFeedback exposes an MCP server that lets AI assistants read, create, and manage feedback items and feature requests — all via a single connection. Set up in under 2 minutes.
What can the MCP server do?
Triage feedback
List, filter, and update status on bug reports, feature requests, and UX issues across all your sites.
Manage feature requests
Create, update, and track feature requests. Analyze demand to find your most-requested features.
Post fix notes
Write resolution notes and automatically notify reporters via email when their issue is addressed.
Visual analysis
get_feedback returns screenshot and screen recording attachments as image content blocks — your AI can see what users reported.
Overview
14 tools across 3 categories. Once connected, your AI assistant can work with all of your feedback data programmatically.
Feedback
8 tools
Feature Requests
5 tools
Sites
1 tool
Quick Setup
Pick your client. The whole setup takes under 2 minutes.
Before you start
- Create an MCPFeedback account (free trial, no credit card)
- Go to MCP & API Keys and generate an API key
- Copy the config below and paste your key
claude mcp add mcpfeedback \ --transport http \ --url https://mcpfeedback.com/api/mcp \ --header "Authorization: Bearer YOUR_API_KEY"
Replace YOUR_API_KEY with the key from your dashboard.
Authentication
Two authentication methods, pick whichever your client supports:
OAuth 2.1 (Recommended)
Used by Claude Desktop Connectors, ChatGPT, and Gemini. No API key needed — sign in interactively and choose which sites to authorize.
API Key (Bearer Token)
Used by Claude Code, Cursor, and other CLI tools. Generate a key from your dashboard and pass it via the Authorization header.
API keys are scoped to your organization and provide access to all sites and apps within it. OAuth tokens can be scoped to specific sites.
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. All tools accept reference numbers (e.g. SPC22) as well as UUIDs.
list_feedbackList feedback items with filters for status, severity, type, and lifecycle segment. Returns attachment_count per item. Supports cursor-based pagination.
| Name | Type | Required | Description |
|---|---|---|---|
| siteId | string (UUID) | No | Filter by site ID |
| status | string enum | No | backlog | new | accepted | in_review | in_progress | resolved | closed | reopen | rejected (overrides segment) |
| severity | string enum | No | low | medium | high |
| feedbackType | string enum | No | bug_report | feature_request | ux_issue | general_comment |
| segment | string enum | No | active | closed | all | deleted (default: all) |
| limit | number | No | Items to return, 1–100 (default: 25) |
| cursor | string | No | Pagination 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,
"site_domain": "example.com",
"created_at": "2026-04-07T10:00:00Z"
}get_feedbackGet 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.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number (e.g. SPC22) |
// Attachments are returned as MCP image content blocks, // so AI agents can visually analyze screenshots and // screen recordings (as GIF) alongside the metadata.
create_feedbackCreate a new feedback item with title, details, severity, and type. Generates a unique reference number automatically.
| Name | Type | Required | Description |
|---|---|---|---|
| siteId | string (UUID) | Yes | The site to create feedback for |
| title | string | Yes | Feedback title (max 500 chars) |
| details | string | No | Detailed description (max 5000 chars) |
| severity | string enum | No | low | medium | high (default: medium) |
| reporterEmail | string (email) | Yes | Reporter email address |
| feedbackType | string enum | No | bug_report | feature_request | ux_issue | general_comment (default: general_comment) |
update_feedback_statusUpdate the status of a feedback item. Validates allowed status transitions. Automatically sends a resolution notification email when transitioning to 'resolved'.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number |
| status | string enum | Yes | backlog | new | accepted | in_review | in_progress | resolved | closed | reopen | rejected |
update_feedback_typeChange the type/category of a feedback item.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number |
| feedbackType | string enum | Yes | bug_report | feature_request | ux_issue | general_comment |
post_fix_notesPost a fix/resolution note on a feedback item. Does not change feedback status — call update_feedback_status separately to close or resolve. Optionally emails the reporter with the project name in the subject.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number |
| content | string | Yes | Fix note content (max 5000 chars) |
| notifyReporter | boolean | No | Send email to reporter (default: true) |
delete_feedbackSoft-delete a feedback item (recoverable) or permanently delete it.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number |
| permanently | boolean | No | Permanently delete (cannot be undone). Default: false |
restore_feedbackRestore a soft-deleted feedback item back to the active list.
| Name | Type | Required | Description |
|---|---|---|---|
| feedbackId | string | Yes | UUID or reference number of soft-deleted item |
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_requestsList feature requests across your sites. Filter by status, sort by vote count, newest, or recently updated.
| Name | Type | Required | Description |
|---|---|---|---|
| site_id | string (UUID) | No | Filter by site/app ID |
| status | string enum | No | open | planned | in_progress | shipped |
| sort | string enum | No | votes | newest | updated (default: votes) |
| limit | number | No | Items to return, 1–100 (default: 25) |
// Example response item
{
"id": "uuid",
"title": "Dark mode support",
"description": "App should respect system dark mode setting.",
"status": "planned",
"vote_count": 42,
"comment_count": 8,
"author_email": "user@example.com",
"created_at": "2026-04-01T09:00:00Z"
}get_feature_requestGet full details of a feature request including all comments (threaded).
| Name | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Feature request UUID |
create_feature_requestCreate a new feature request for a site. Appears on the in-app feature board immediately.
| Name | Type | Required | Description |
|---|---|---|---|
| site_id | string (UUID) | Yes | The site to create the feature request for |
| title | string | Yes | Feature request title (3–200 chars) |
| description | string | No | Detailed description (max 5000 chars) |
update_feature_request_statusUpdate the status of a feature request.
| Name | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | Feature request UUID |
| status | string enum | Yes | open | planned | in_progress | shipped |
analyze_demandAnalyze feature request demand across your sites. Returns top voted requests, requests grouped by status, and trending requests from the last 7 days.
| Name | Type | Required | Description |
|---|---|---|---|
| site_id | string (UUID) | No | Scope analysis to a specific site |
| limit | number | No | Number of top requests to return (default: 10, max: 50) |
// Example response
{
"top_voted": [
{ "title": "Dark mode", "vote_count": 42, "status": "planned" },
{ "title": "CSV export", "vote_count": 31, "status": "open" }
],
"by_status": { "open": [...], "planned": [...] },
"trending": [...]
}Site Tools
Query site configuration and metadata.
list_sitesList all sites in your organization with domains, widget theme, and configuration.
| Name | Type | Required | Description |
|---|---|---|---|
| includeInactive | boolean | No | Include inactive sites (default: false) |
Try these prompts
Once connected, try asking your AI assistant:
Common questions
Things that trip people up the first time:
Server details
| Server URL | https://mcpfeedback.com/api/mcp |
| Transport | Streamable HTTP (JSON-RPC) |
| Auth | OAuth 2.1 (PKCE + Dynamic Client Registration) or Bearer API key |
| OAuth Discovery | https://mcpfeedback.com/.well-known/oauth-protected-resource |
| Tools | 14 tools across 3 categories: feedback, feature requests, sites |
Ready to connect?
Create your organization and generate an API key to get started.