Skip to content

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.

Deletes · 3Changes · 5

22 tools: 3 can delete or cancel things, 5 change things and 14 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "supportbee_remove_label" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

    Matched text

    annotations: {"destructiveHint":false,"idempotentHint":true}; The name "supportbee_remove_label" says "remove": a word for removing or ending something.

    What this check looks for

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".

      Matched text

      annotations: {"destructiveHint":false,"idempotentHint":true}; The name "supportbee_remove_label" says "remove": a word for removing or ending something.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.