For AI clients · MCP
Triage from Claude.
feedback-hub speaks the Model Context Protocol, so any MCP-aware client (Claude Code, Claude Desktop, Cursor) can read your inbox, look at the actual screenshots a user took, and move items through the pipeline — without leaving your editor.
list_feedbackQuery the inbox by project, status, type, or substring.
get_feedbackFull row with the attached screenshot inlined as a base64 image — the model can see the bug.
list_commentsRead the whole thread on an item: private notes, team comments, the reporter conversation.
update_statusMove items along: new → triaged → in_progress → resolved → verified → wontfix.
add_commentPost a private triage note, or a team comment your project members can read.
edit_commentRewrite a comment you wrote. Body only — the tier and author stay frozen.
delete_commentRemove a comment you wrote. A member's comment or a reporter's reply is off-limits.
delete_feedbackDelete an item and its whole thread. Permanent — for spam and duplicates.
Nothing here can email your users.Both comment tiers stay internal — replying to a reporter is a deliberate click in the inbox, not something a model can reach for. Edits and deletes are author-scoped the same way the database is: your own comments, never someone else’s words.
Connect a client
Endpoint: https://feedback-hub.orosa.io/api/mcp. Auth: Bearer token in the Authorization header.
Claude Code
# Add the server to Claude Code:
claude mcp add --transport http feedback-hub \
https://feedback-hub.orosa.io/api/mcp \
--header "Authorization: Bearer YOUR_TOKEN_HERE"Claude Desktop / Cursor
Add this to your MCP settings JSON:
{
"mcpServers": {
"feedback-hub": {
"url": "https://feedback-hub.orosa.io/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}Get your token
Sign in to the inbox, then generate a token at /settings/tokens. Each token is scoped to your projects only — give it a name (e.g. claude-code · macbook) and it’s shown once. You can have multiple, and revoke any of them later.
What the loop feels like
Paste a feedback-hub URL or just ask Claude what’s new. The model reaches for the right tool on its own.
You: What new bugs came in today on Resibow?
Claude: → calls list_feedback({ project: "Resibow", status: "new" })
Three new items: a receipt scanner hang, …
You: Look at the second one in detail.
Claude: → calls get_feedback({ id: "909ee…" })
[sees the inlined screenshot]
The error is from a tooltip overflowing the page; the
screenshot shows it bleeding past the right edge at line 412
of the dashboard component.
You: Mark it triaged and leave a note on what you found.
Claude: → calls update_status({ id: "909ee…", status: "triaged" })
→ calls add_comment({ id: "909ee…",
body: "Tooltip overflows its container at ≥1280px …" })
Done — the note is private to you.The Model Context Protocol is an open standard from Anthropic. See the spec and server examples for client/integration details.