Feedback DevTools for Claude
Visual feedback → source-mapped file:line
Feedback DevTools turns stakeholder clicks on any UI into agent-ready context. list_open_feedback returns each item with React component, exact source file:line, console errors, failed network calls, rrweb replaySummary, and cited Playwright flows. Install the hosted MCP in Cursor, Claude Desktop / Claude Code, or VS Code / Copilot — then get_feedback_context, list_clusters, create_github_issue / create_tracker_issue, and mark_feedback_resolved without leaving the IDE. Hosted MCP at https://server-production-14a9.up.railway.app/mcp. Auth: dashboard Bearer session + project X-SDK-Token (not open). Pricing: Free $0 / Pro $9 per project per month.
What the MCP returns
Shipped in PR #30: every open item includes source-mapped component, file (path:line:col), console, and network. PR #53 adds replaySummary / replayUrl and cited playwrightFlows on get_feedback_context. #60/#57/#59 add clusters + GitHub/Linear issue tools (Usero foil; Marker MCP create-tickets foil — their FR still open). Hosted MCP has the full catalog; local stdio via the public feedback-devtools-mcp npm package has the 16 read/triage tools until 0.2.0 publishes.
| Tool | Returns |
|---|---|
| list_open_feedback | JSON array of open items with component, file (path:line:col), console, and network summaries. |
| get_feedback_context | One item with source-mapped fields, replaySummary/replayUrl, playwrightFlows cites, plus a ready-to-run Claude Code prompt. |
| mark_feedback_resolved | Mark an item resolved; optionally record the PR URL. |
| list_clustershosted MCP only — local stdio ≥ 0.2.0 | Theme clusters with severity and verbatim sampleQuotes (Usero cluster foil, #60). |
| get_clusterhosted MCP only — local stdio ≥ 0.2.0 | One cluster with member feedback ids, severity, and quotes. |
| create_github_issuehosted MCP only — local stdio ≥ 0.2.0 | Open a GitHub issue whose body cites component + file:line + console/network (#57). |
| create_tracker_issuehosted MCP only — local stdio ≥ 0.2.0 | Same source-mapped body for Linear / tracker parity (#59). |
Sample source-mapped payload
Same shape list_open_feedback and get_feedback_context return after #30 / #53 (replay + Playwright cites on context).
{
"id": "fb_demo_1",
"status": "new",
"changeType": "fix_bug",
"priority": "high",
"summary": "Make the primary button blue",
"expectedBehavior": "Button uses the brand primary blue token",
"component": "Button",
"file": "src/Button.tsx:12:3",
"console": {
"errorCount": 1,
"warnCount": 0,
"errors": [
{
"level": "error",
"message": "undefined is not a function",
"stack": "TypeError: undefined is not a function\n at Button (src/Button.tsx:12:3)"
}
]
},
"network": {
"failedCount": 1,
"failed": [
{
"method": "GET",
"url": "/api/theme",
"status": 500,
"statusText": "Internal Server Error"
}
]
},
"pageContext": {
"url": "https://app.example.com/home",
"title": "Home"
},
"replayUrl": "https://blob.example.com/replays/demo/fb_demo_1.json",
"replaySummary": {
"durationMs": 45000,
"clicks": 3,
"routes": [
"https://app.example.com/home"
],
"inputInteractions": 1,
"mutations": 7
},
"playwrightFlows": [
{
"id": "fl_home",
"name": "Home smoke",
"actionCount": 4,
"pageUrl": "https://app.example.com/home",
"match": "page_path",
"specCite": "import { test } from '@playwright/test';\ntest('home', async ({ page }) => { await page.goto('/home'); });"
}
]
}Install in Claude
Option A — Claude Desktop + Claude Code (Custom Connector)
Claude Desktop, Claude.ai, and Claude Code all load the same hosted Custom Connector. One-click opens Add custom connector with the hosted URL filled in — then add Authorization and X-SDK-Token under request headers. Or paste claude mcp add for Claude Code CLI.
claude mcp add --scope user --transport http feedback-devtools \
https://server-production-14a9.up.railway.app/mcp \
--header "Authorization: Bearer YOUR_fdt_session_COOKIE" \
--header "X-SDK-Token: fk_sdk_YOUR_PROJECT_TOKEN"Project-scoped .mcp.json equivalent (type: "http" is required):
{
"mcpServers": {
"feedback-devtools": {
"type": "http",
"url": "https://server-production-14a9.up.railway.app/mcp",
"headers": {
"Authorization": "Bearer YOUR_fdt_session_COOKIE",
"X-SDK-Token": "fk_sdk_YOUR_PROJECT_TOKEN"
}
}
}
}Option B — Claude Desktop claude_desktop_config.json via mcp-remote
Desktop's local JSON schema is stdio-only. Bridge the hosted HTTP MCP with mcp-remote (no @feedback/mcp-server publish). Set FEEDBACK_AUTH_TOKEN / FEEDBACK_SDK_TOKEN in your shell env.
{
"mcpServers": {
"feedback-devtools": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://server-production-14a9.up.railway.app/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${FEEDBACK_AUTH_TOKEN}",
"--header",
"X-SDK-Token:${FEEDBACK_SDK_TOKEN}"
]
}
}
}Option C — local stdio (public npm)
Same public npm stdio as Cursor (npx -y feedback-devtools-mcp). Prefer Custom Connector / mcp-remote above.
The published feedback-devtools-mcp@0.1.0 local server has the 16 read/triage tools above but not clusters or issue creation yet — claim_feedback, create_github_issue, create_tracker_issue, get_cluster, list_clusters are hosted-MCP-only until feedback-devtools-mcp@0.2.0 publishes. For those, use the hosted option below (recommended).
{
"mcpServers": {
"feedback-devtools": {
"command": "npx",
"args": [
"-y",
"feedback-devtools-mcp"
],
"env": {
"FEEDBACK_API_URL": "https://server-production-14a9.up.railway.app/api/v1",
"FEEDBACK_SDK_TOKEN": "fk_sdk_YOUR_PROJECT_TOKEN",
"FEEDBACK_AUTH_TOKEN": "YOUR_fdt_session_COOKIE"
}
}
}
}Discovery: /.well-known/mcp.json.
Copy fdt_session from the dashboard cookie after login, and the project SDK token from project settings. The endpoint is not open.
Pro — $9/mo per project
Hosted MCP is on every plan (Free $0 / Pro $9 per project per month). Autopilot — the agent opens the pull request for approved feedback and attaches a before/after screenshot from your preview deploy. Plus AI sentiment classification, intent and urgency scoring, classification stats dashboard, priority triage. Per project per month. Upgrade when you want AI triage on the same source-mapped items the MCP returns.
Upgrade to ProSecure checkout by Polar. Cancel anytime.
Example prompts
Three prompts for directory submission — each exercises a different tool.
- list_open_feedback
“List open Feedback DevTools items and show each component + file:line.”
- get_feedback_context
“Pull get_feedback_context for the highest-priority open item and open the mapped file:line.”
- mark_feedback_resolved
“After you open the PR, call mark_feedback_resolved with that feedback id and the PR URL.”
- list_clusters
“List feedback clusters and show severity + one verbatim sample quote each.”
- create_github_issue
“Create a GitHub issue from the highest-priority open item with the source-mapped body.”
Directory submission kit
- Name
- Feedback DevTools
- Tagline
- Visual feedback → source-mapped file:line
- Documentation URL
- https://feedback-devtools.com/for/claude
- MCP URL
- https://server-production-14a9.up.railway.app/mcp
- Pricing
- Free $0 / Pro $9 per project per month
- Privacy
- /docs
Also see Cursor listing · VS Code listing · file:line demo · pricing · docs