Claude Code
Connect your feedback.tools surveys to Claude Code (the CLI) so you can ask about your feedback from the terminal: "What are the top bugs this month?", "Summarize the latest responses." It reads your survey data and can import feedback, but can't change or delete anything.
Need a token first? See Before you start.
There are two ways to add it. Option A (one command) is quickest; Option B edits the config file directly, which is handy if you want to check it into a project.
Option A: One command
Run this in your terminal, replacing mcp_live_YOUR_TOKEN_HERE with your token:
claude mcp add --transport http feedback-tools https://feedback.tools/mcp \
--header "Authorization: Bearer mcp_live_YOUR_TOKEN_HERE"By default the server is added at local scope (this project, just you). To make it
available everywhere, add --scope user; to share it with your team via a checked-in
.mcp.json, use --scope project.
Option B: Edit the config file
Add the server to your MCP config yourself:
- Project (shared, checked into git):
.mcp.jsonin the project root. - User (all your projects):
~/.claude.json.
{
"mcpServers": {
"feedback-tools": {
"type": "http",
"url": "https://feedback.tools/mcp",
"headers": {
"Authorization": "Bearer mcp_live_YOUR_TOKEN_HERE"
}
}
}
}Replace mcp_live_YOUR_TOKEN_HERE with your token and save.
Keep
"type": "http". An entry with aurlbut notypeis read as a local (stdio) server and skipped.
Prefer not to commit the token?
.mcp.jsonsupports env expansion. Use"Authorization": "Bearer ${FT_TOKEN}"and setFT_TOKENin your shell. A project-scoped server also asks for your approval the first time; runclaudeto approve it.
Verify
Check it's registered:
claude mcp listfeedback-tools should be listed as connected. Then start Claude Code and ask:
List my surveys in feedback.tools.
Claude will ask permission to use the tool the first time. Allow it. If your surveys come back, you're connected. Try "What's the CSAT for my Onboarding survey?" next.
Troubleshooting
| Problem | Fix |
|---|---|
feedback-tools not listed / failed | Check the entry has "type": "http". A url with no type is treated as a local server and skipped. Run claude mcp list to see the connection status. |
| "Unauthorized" / connection failed | Check the token is copied in full (starts with mcp_live_) and the header reads Authorization: Bearer <token>. A rejected header fails the connection rather than falling back. Revoke and create a fresh token if unsure. |
| Server added but not visible in a project | Scope matters: a local server only applies where you added it. Re-add with --scope user to use it everywhere. |
| "Data is locked" for a survey | That survey's subscription has lapsed. Reactivate it. The survey list stays visible regardless. |