SupportBee MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read SupportBee tickets, replies and reports; reply, comment, label, assign and archive tickets.
22 tools: 3 can delete or cancel things, 5 change things and 14 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads14Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http supportbee https://supportbee.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "supportbee_remove_label" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"destructiveHint":false,"idempotentHint":true}; The name "supportbee_remove_label" says "remove": a word for removing or ending something.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
22 tools
Deletes or cancels 3Claude Code: deny
supportbee_add_commentWRITE: adds an internal comment to a ticket.No findings
Why it is in this group
- The name "supportbee_add_comment" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: adds an internal comment to a ticket. Comments are visible to your agents only and are never e-mailed to the customer. POST /tickets/{id}/comments.
Annotations the server declares
- title: Add an internal comment to a ticket
- destructiveHint: true
supportbee_remove_labelWRITE: removes a label from a ticket (the label itself stays; 404 if the ticket does not have it).1 finding
Why it is in this group
- The name "supportbee_remove_label" says "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "supportbee_remove_label" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"destructiveHint":false,"idempotentHint":true}; The name "supportbee_remove_label" says "remove": a word for removing or ending something.
Description, as the server wrote it WRITE: removes a label from a ticket (the label itself stays; 404 if the ticket does not have it). DELETE /tickets/{id}/labels/{label}.
Annotations the server declares
- title: Remove a label from a ticket
- idempotentHint: true
- destructiveHint: false
supportbee_reply_to_ticketWRITE: SENDS AN E-MAIL to the customer.No findings
Why it is in this group
- The name "supportbee_reply_to_ticket" says "reply": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: SENDS AN E-MAIL to the customer. Posts a public reply on ONE ticket; SupportBee e-mails it to the ticket's requester and to the cc/bcc addresses you list (at most 10 addresses in total). It cannot be recalled. The reply comes from the token's user. For a note only your team sees, use supportbee_add_comment. POST /tickets/{id}/replies.
Annotations the server declares
- title: Reply to a ticket (sends an e-mail)
- destructiveHint: true
Changes things 5Claude Code: ask
supportbee_add_labelWRITE: adds an existing label to a ticket (404 if the label does not exist; names come from supportbee_list_labels).No findings
Why it is in this group
- The name "supportbee_add_label" says "add": a word for a change.
Description, as the server wrote it WRITE: adds an existing label to a ticket (404 if the label does not exist; names come from supportbee_list_labels). Safe to repeat. POST /tickets/{id}/labels/{label}.
Annotations the server declares
- title: Add a label to a ticket
- idempotentHint: true
- destructiveHint: false
supportbee_assign_ticketWRITE: assigns a ticket to ONE agent (user_id) or ONE team (team_id), not both.No findings
Why it is in this group
- The name "supportbee_assign_ticket" says "assign": a word for a change.
Description, as the server wrote it WRITE: assigns a ticket to ONE agent (user_id) or ONE team (team_id), not both. A ticket that belongs to a team can only go to a member of that team; assigning to another team removes the user assignee. The customer is not e-mailed (SupportBee may notify the assigned agent). POST /tickets/{id}/user_assignment or /team_assignment.
Annotations the server declares
- title: Assign a ticket to a user or a team
- idempotentHint: true
- destructiveHint: false
supportbee_set_ticket_answeredWRITE: marks a ticket as answered (answered=true) or unanswered (answered=false) without sending anything.No findings
Why it is in this group
- The name "supportbee_set_ticket_answered" says "set": a word for a change.
Description, as the server wrote it WRITE: marks a ticket as answered (answered=true) or unanswered (answered=false) without sending anything. POST/DELETE /tickets/{id}/answered.
Annotations the server declares
- title: Mark a ticket answered or unanswered
- idempotentHint: true
- destructiveHint: false
supportbee_set_ticket_archivedWRITE: archives a ticket (archived=true, it leaves the open inbox) or moves it back (archived=false).No findings
Why it is in this group
- The name "supportbee_set_ticket_archived" says "set": a word for a change.
Description, as the server wrote it WRITE: archives a ticket (archived=true, it leaves the open inbox) or moves it back (archived=false). Nothing is deleted or sent. POST/DELETE /tickets/{id}/archive.
Annotations the server declares
- title: Archive or un-archive a ticket
- idempotentHint: true
- destructiveHint: false
supportbee_unassign_ticketWRITE: clears the user assignee or the team assignee of a ticket.No findings
Why it is in this group
- The name "supportbee_unassign_ticket" says "unassign": a word for a change.
Description, as the server wrote it WRITE: clears the user assignee or the team assignee of a ticket. DELETE /tickets/{id}/user_assignment or /team_assignment.
Annotations the server declares
- title: Remove the user or team assignment of a ticket
- idempotentHint: true
- destructiveHint: false
Only reads 14Claude Code: allow
supportbee_get_replyOne reply of a ticket (text, replier, cc/bcc).No findings
Why it is in this group
- The name "supportbee_get_reply" says "get": a word for reading.
Description, as the server wrote it One reply of a ticket (text, replier, cc/bcc). GET /tickets/{ticket_id}/replies/{id}.
Annotations the server declares
- title: Get one reply of a ticket
- readOnlyHint: true
supportbee_get_reportA report as time-series data points (value, timestamp): tickets_count, replies_count or avg_first_response_time, optionally for one agent, team or label.No findings
Why it is in this group
- The name "supportbee_get_report" says "get": a word for reading.
Description, as the server wrote it A report as time-series data points (value, timestamp): tickets_count, replies_count or avg_first_response_time, optionally for one agent, team or label. Needs an admin token. GET /reports/{report}.
Annotations the server declares
- title: Get a report
- readOnlyHint: true
supportbee_get_ticketOne ticket with subject, requester, labels, assignees, state and the first message text.No findings
Why it is in this group
- The name "supportbee_get_ticket" says "get": a word for reading.
Description, as the server wrote it One ticket with subject, requester, labels, assignees, state and the first message text. Replies and comments are separate calls. GET /tickets/{id}.
Annotations the server declares
- title: Get a ticket
- readOnlyHint: true
supportbee_get_ticket_auditWhat happened to a ticket and who did it (assignments, label changes, replies, archiving) with timestamps.No findings
Why it is in this group
- The name "supportbee_get_ticket_audit" says "get": a word for reading.
Description, as the server wrote it What happened to a ticket and who did it (assignments, label changes, replies, archiving) with timestamps. GET /tickets/{id}/audit.
Annotations the server declares
- title: Get the audit trail of a ticket
- readOnlyHint: true
supportbee_get_userOne user or customer with role, teams, ticket counts and a few of their recent tickets.No findings
Why it is in this group
- The name "supportbee_get_user" says "get": a word for reading.
Description, as the server wrote it One user or customer with role, teams, ticket counts and a few of their recent tickets. GET /users/{id}.
Annotations the server declares
- title: Get a user
- readOnlyHint: true
supportbee_list_commentsThe internal comments (visible to agents only, never e-mailed) of a ticket, oldest first, as text.No findings
Why it is in this group
- The name "supportbee_list_comments" says "list": a word for reading.
Description, as the server wrote it The internal comments (visible to agents only, never e-mailed) of a ticket, oldest first, as text. GET /tickets/{id}/comments.
Annotations the server declares
- title: List the internal comments of a ticket
- readOnlyHint: true
supportbee_list_forwarding_addressesThe support e-mail addresses (forwarding addresses) of the desk: id, name, the address tickets arrive at and the from address.No findings
Why it is in this group
- The name "supportbee_list_forwarding_addresses" says "list": a word for reading.
Description, as the server wrote it The support e-mail addresses (forwarding addresses) of the desk: id, name, the address tickets arrive at and the from address. GET /emails.
Annotations the server declares
- title: List forwarding addresses
- readOnlyHint: true
supportbee_list_labelsAll custom labels of the company (name and color).No findings
Why it is in this group
- The name "supportbee_list_labels" says "list": a word for reading.
Description, as the server wrote it All custom labels of the company (name and color). Use a label name with supportbee_add_label or the label filter. GET /labels.
Annotations the server declares
- title: List labels
- readOnlyHint: true
supportbee_list_repliesThe public replies (the conversation with the customer) of a ticket, oldest first, as text.No findings
Why it is in this group
- The name "supportbee_list_replies" says "list": a word for reading.
Description, as the server wrote it The public replies (the conversation with the customer) of a ticket, oldest first, as text. GET /tickets/{id}/replies.
Annotations the server declares
- title: List the replies of a ticket
- readOnlyHint: true
supportbee_list_snippetsThe canned replies (snippets) of the company: name, tags and text, to reuse in a reply.No findings
Why it is in this group
- The name "supportbee_list_snippets" says "list": a word for reading.
Description, as the server wrote it The canned replies (snippets) of the company: name, tags and text, to reuse in a reply. GET /snippets.
Annotations the server declares
- title: List snippets
- readOnlyHint: true
supportbee_list_teamsThe teams of the company (id, name), optionally only those that have users in them, or only the token user's teams.No findings
Why it is in this group
- The name "supportbee_list_teams" says "list": a word for reading.
Description, as the server wrote it The teams of the company (id, name), optionally only those that have users in them, or only the token user's teams. GET /teams.
Annotations the server declares
- title: List teams
- readOnlyHint: true
supportbee_list_ticketsList tickets of the shared inbox, newest activity first, with filters (assignee, team, label, requester, dates, spam/trash/archived).No findings
Why it is in this group
- The name "supportbee_list_tickets" says "list": a word for reading.
Description, as the server wrote it List tickets of the shared inbox, newest activity first, with filters (assignee, team, label, requester, dates, spam/trash/archived). By default archived, spam and trashed tickets are left out. Each ticket has id, subject, labels, requester, assignee, replies_count, comments_count, unanswered, archived and the first message text (cut). With total_only=true only the number of matching tickets comes back. GET /tickets.
Annotations the server declares
- title: List tickets
- readOnlyHint: true
supportbee_list_usersThe agents, admins and collaborators of the desk (id, name, e-mail, role, teams), or customer groups.No findings
Why it is in this group
- The name "supportbee_list_users" says "list": a word for reading.
Description, as the server wrote it The agents, admins and collaborators of the desk (id, name, e-mail, role, teams), or customer groups. Use the id as assigned_user or user_id. GET /users.
Annotations the server declares
- title: List users
- readOnlyHint: true
supportbee_search_ticketsFull-text search over tickets (subject, body, requester) with SupportBee's search syntax, newest activity first.No findings
Why it is in this group
- The name "supportbee_search_tickets" says "search": a word for reading.
Description, as the server wrote it Full-text search over tickets (subject, body, requester) with SupportBee's search syntax, newest activity first. Spam and trash are excluded unless asked. GET /tickets/search.
Annotations the server declares
- title: Search tickets
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http supportbee https://supportbee.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__supportbee__supportbee_list_tickets",
"mcp__supportbee__supportbee_search_tickets",
"mcp__supportbee__supportbee_get_ticket",
"mcp__supportbee__supportbee_list_replies",
"mcp__supportbee__supportbee_get_reply",
"mcp__supportbee__supportbee_list_comments",
"mcp__supportbee__supportbee_get_ticket_audit",
"mcp__supportbee__supportbee_list_labels",
"mcp__supportbee__supportbee_list_teams",
"mcp__supportbee__supportbee_list_users",
"mcp__supportbee__supportbee_get_user",
"mcp__supportbee__supportbee_list_snippets",
"mcp__supportbee__supportbee_list_forwarding_addresses",
"mcp__supportbee__supportbee_get_report"
],
"ask": [
"mcp__supportbee__supportbee_add_label",
"mcp__supportbee__supportbee_assign_ticket",
"mcp__supportbee__supportbee_unassign_ticket",
"mcp__supportbee__supportbee_set_ticket_archived",
"mcp__supportbee__supportbee_set_ticket_answered"
],
"deny": [
"mcp__supportbee__supportbee_reply_to_ticket",
"mcp__supportbee__supportbee_add_comment",
"mcp__supportbee__supportbee_remove_label"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as supportbee. Review it before you use it.