MCP Server
Connect AI agents to your feedback. Quackback's MCP server gives agents full access to search, triage, create, and respond to feedback.
Quackback includes an MCP server that gives AI agents direct access to your feedback data. Agents connect over HTTP, authenticate with an API key or OAuth, and call tools to search, triage, and respond to feedback.
What agents can do
- Search and filter feedback across boards, statuses, and tags
- Triage posts: update status, assign owners, and tag
- Review AI suggestions: list, accept, dismiss, and restore AI-generated feedback suggestions
- Create, update, and delete posts and changelog entries
- Comment, vote, and react on feedback
- Merge and unmerge duplicate posts
- Work the support inbox: list and read conversations, reply to visitors, and open, snooze, or close conversations (when the support inbox is enabled)
- Work support tickets: list and read tickets, open new ones, reply, add internal notes, and link tickets to trackers (when support tickets is enabled)
- View activity logs: see status changes, merges, and other events on a post
- Read resources: boards, statuses, tags, roadmaps, team members, and help center categories
- Manage help center: create, update, publish, and delete articles and categories (when help center is enabled)
See the MCP Reference for the full tool and resource documentation.
Setup
1. Enable MCP
Navigate to Admin → Settings → MCP Server and toggle the server on.
2. Create an API key
Navigate to Admin → Settings → Developers. Create a key with a descriptive name (e.g., "Claude Code"). The key starts with qb_ and is only shown once. Copy it immediately.
3. Connect your agent
Choose your client below. Replace feedback.example.com with your instance URL.
Claude Code
Add to .mcp.json in your project root. Set the QUACKBACK_API_KEY environment variable to your API key.
{
"mcpServers": {
"quackback": {
"type": "http",
"url": "https://feedback.example.com/mcp",
"headers": {
"Authorization": "Bearer ${QUACKBACK_API_KEY}"
}
}
}
}Or use the CLI:
claude mcp add --transport http quackback https://feedback.example.com/mcp \
--header "Authorization: Bearer $QUACKBACK_API_KEY"Cursor
Add to .cursor/mcp.json in your project root. Set the QUACKBACK_API_KEY environment variable to your API key.
{
"mcpServers": {
"quackback": {
"url": "https://feedback.example.com/mcp",
"headers": {
"Authorization": "Bearer ${env:QUACKBACK_API_KEY}"
}
}
}
}Tip:
Cursor uses${env:VAR}syntax for environment variables. Requires Cursor v0.48.0+.
VS Code
Add to .vscode/mcp.json in your project root. VS Code will prompt you for the API key on first use and store it securely.
{
"inputs": [
{
"type": "promptString",
"id": "quackback-api-key",
"description": "Quackback API Key (qb_...)",
"password": true
}
],
"servers": {
"quackback": {
"type": "http",
"url": "https://feedback.example.com/mcp",
"headers": {
"Authorization": "Bearer ${input:quackback-api-key}"
}
}
}
}Note:
VS Code usesservers(notmcpServers) as the top-level key.
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json. Set the QUACKBACK_API_KEY environment variable to your API key.
{
"mcpServers": {
"quackback": {
"serverUrl": "https://feedback.example.com/mcp",
"headers": {
"Authorization": "Bearer ${env:QUACKBACK_API_KEY}"
}
}
}
}Note:
Windsurf usesserverUrlinstead ofurl.
Claude Desktop
Claude Desktop doesn't support custom HTTP headers natively. Use mcp-remote as a bridge. Add to claude_desktop_config.json:
{
"mcpServers": {
"quackback": {
"command": "npx",
"args": [
"mcp-remote@latest",
"--http",
"https://feedback.example.com/mcp",
"--header",
"Authorization: Bearer qb_YOUR_API_KEY"
]
}
}
}Replace qb_YOUR_API_KEY with your actual API key. Requires Node.js.
Authentication
Two authentication methods are supported:
- API keys (
qb_prefix): By default, full access to every scope. Available to team members (admin or member role). Create them in Admin → Settings → Developers. - OAuth 2.1: Scoped access. Supports MCP OAuth discovery so clients like Claude Code can authenticate automatically without manual key setup.
Scopes
Scope | Grants |
|---|---|
| Search posts and changelogs, get details, read resources |
| Create posts, vote, comment, triage |
| Create changelog entries |
| Search and read help center articles and categories |
| Create, update, publish, and delete articles and categories |
| List and read support-inbox conversations, messages, tickets, and ticket threads |
| Reply to conversations, change their status, and open, reply to, or note on tickets |
Note:
Tickets don't have their own scope. They ride theread:chat/write:chatscopes alongside conversations.
There are seven scopes total. An API key created without an explicit scope selection gets all of them (full owner authority); you can restrict a key to specific scopes when creating it. OAuth tokens get only the scopes the user approved.
Service principals
Every API key gets its own identity. When an agent triages a post, the audit trail shows which key did it. Create descriptive key names like "GitHub Actions" or "Claude Code" to keep attribution clear.
Next steps
- MCP Reference: Full tool and resource documentation
- API Overview: REST API for programmatic integrations
- Webhooks: Receive real-time event notifications
Was this helpful?
Your feedback shapes what we write next.