feedback-magic-mcp
v1.3.1
Published
MCP server for Feedback Magic — let an AI editor/agent list your workspace, create a widget, get its publishable key, and generate the embed. Provisioning + metadata only.
Maintainers
Readme
feedback-magic-mcp
A Model Context Protocol server for Feedback Magic. Point your AI editor (Claude Desktop, Cursor, …) at it and an agent can, without leaving the editor:
- see your workspace's projects and widgets,
- create a widget and get its publishable key — for surveys, pass a
plain-English
goaland AI designs the question set, - generate a paste-ready embed snippet for your framework, and
- with a read-scope token: search feedback, read AI insights (weekly digest themes), and read survey results.
Tokens are provisioning + metadata only by default — they can create widgets and read project/widget metadata, but not feedback content. Reading content is a per-token opt-in: tick "Also allow reading feedback content & results" when creating the token.
Setup
- In Feedback Magic, go to Settings → API & MCP and create a token. Copy the
fm_sk_…value (shown once). - Add the server to your MCP client config, with the token in the env:
Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json):
{
"mcpServers": {
"feedback-magic": {
"command": "npx",
"args": ["-y", "feedback-magic-mcp"],
"env": {
"FEEDBACK_MAGIC_TOKEN": "fm_sk_your_token_here"
}
}
}
}Restart the client. The Feedback Magic tools will be available to the model.
Tools
| Tool | Args | What it does |
| ---- | ---- | ------------ |
| list_widget_types | — | Describe all six widget types (feedback, survey, annotate, changelog, board, testimonial). |
| whoami | — | Show which workspace the token belongs to. |
| list_projects | — | List the workspace's projects. |
| list_widgets | project_id | List a project's widgets (incl. publishable keys). |
| create_widget | project_id, type?, name?, goal? | Create a widget; returns its fm_pub_… key. goal (surveys) = AI-designed questions. |
| get_embed_snippet | publishable_key, type?, framework? | Paste-ready embed (react / web-component / html / wordpress). |
| search_feedback | project_id, query | read scope — search feedback titles/snippets. |
| get_insights | project_id | read scope — latest AI digest + category mix. |
| get_survey_results | widget_id | read scope — aggregated survey results. |
Typical flow: list_projects → create_widget → get_embed_snippet → paste into
your app. (The get_embed_snippet output uses the feedback-magic
npm package or the hosted <script> embed.)
Configuration
| Env var | Required | Default |
| ------- | -------- | ------- |
| FEEDBACK_MAGIC_TOKEN | yes | — |
| FEEDBACK_MAGIC_URL | no | the hosted mcp endpoint |
| FEEDBACK_MAGIC_APIKEY | no | the public Supabase anon key |
Security
The token is org-scoped and can be revoked anytime in Settings → API & MCP.
By default it grants provisioning + metadata access to that one workspace — not
feedback content, billing, or user management. The optional read scope
(chosen at creation, shown as a badge in the token list) additionally allows
reading feedback content, AI insights, and survey results — never billing or
member management. Publishable keys it returns are safe to expose (they only
permit submitting to that widget). Treat the fm_sk_… token itself as a secret
(it's stored server-side only as an HMAC hash).
License
MIT
