SupportBee MCP by usefulapi
Read SupportBee tickets, replies and reports; reply, comment, label, assign and archive tickets.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin supportbee_list_forwarding_addresses
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"supportbee": {
"url": "https://supportbee.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://supportbee.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (22)
🟢supportbee_list_tickets(archived, spam, trash, has_replies, max_replies, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"archived": {
"description": "true = only archived tickets, false = no archived tickets (default), any = both.",
"type": "string",
"enum": [
"true",
"false",
"any"
]
},
"spam": {
"description": "Include tickets marked as spam (default false).",
"type": "boolean"
},
"trash": {
"description": "Include trashed tickets (default false).",
"type": "boolean"
},
"has_replies": {
"description": "true = only tickets that have replies, false = only tickets without replies.",
"type": "boolean"
},
"max_replies": {
"description": "Only tickets with this number of replies (not with has_replies=false).",
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"assigned_user": {
"description": "me = assigned to the token's user, an agent id (from supportbee_list_users), any = assigned to someone, none = unassigned.",
"type": "string",
"pattern": "^(me|any|none|\\d{1,12})$"
},
"assigned_team": {
"description": "mine = assigned to the user's teams, a team id (from supportbee_list_teams), none = no team.",
"type": "string",
"pattern": "^(mine|none|\\d{1,12})$"
},
"label": {
"description": "Only tickets with this label name (supportbee_list_labels).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"since": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?|\\d{9,11})$",
"description": "Only tickets with last activity after this time (date, ISO date-time or Unix timestamp)."
},
"until": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?|\\d{9,11})$",
"description": "Only tickets with last activity before this time (date, ISO date-time or Unix timestamp)."
},
"sort_by": {
"description": "Sort order (default last_activity).",
"type": "string",
"enum": [
"last_activity",
"creation_time"
]
},
"requester_emails": {
"description": "Only tickets from these requester e-mail addresses (max 10).",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"total_only": {
"description": "Return only the total number of matching tickets.",
"type": "boolean"
},
"per_page": {
"description": "Tickets per page, 1-99 (default 15).",
"type": "integer",
"minimum": 1,
"maximum": 99
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_search_tickets(query, spam, trash, per_page, page)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "The search keywords or query."
},
"spam": {
"description": "Include tickets marked as spam (default false).",
"type": "boolean"
},
"trash": {
"description": "Include trashed tickets (default false).",
"type": "boolean"
},
"per_page": {
"description": "Tickets per page, 1-99 (default 15).",
"type": "integer",
"minimum": 1,
"maximum": 99
},
"page": {
"description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_get_ticket(ticket_id)
One ticket with subject, requester, labels, assignees, state and the first message text. Replies and comments are separate calls. GET /tickets/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_replies(ticket_id)
The public replies (the conversation with the customer) of a ticket, oldest first, as text. GET /tickets/{id}/replies.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_get_reply(ticket_id, reply_id)
One reply of a ticket (text, replier, cc/bcc). GET /tickets/{ticket_id}/replies/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"reply_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The reply id (from supportbee_list_replies)."
}
},
"required": [
"ticket_id",
"reply_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_comments(ticket_id)
The internal comments (visible to agents only, never e-mailed) of a ticket, oldest first, as text. GET /tickets/{id}/comments.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_get_ticket_audit(ticket_id)
What happened to a ticket and who did it (assignments, label changes, replies, archiving) with timestamps. GET /tickets/{id}/audit.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_labels
All custom labels of the company (name and color). Use a label name with supportbee_add_label or the label filter. GET /labels.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_teams(with_users, mine_only)
The teams of the company (id, name), optionally only those that have users in them, or only the token user's teams. GET /teams.
Eingabe-Schema
{
"type": "object",
"properties": {
"with_users": {
"description": "Only teams that have users in them (SupportBee's with_users filter; it does not add the member list).",
"type": "boolean"
},
"mine_only": {
"description": "Only the teams of the user who owns the token.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_users(type, with_roles, with_invited)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"type": {
"description": "user (default) or customer_group.",
"type": "string",
"enum": [
"user",
"customer_group"
]
},
"with_roles": {
"description": "Roles to include (default admin, agent, collaborator).",
"minItems": 1,
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"admin",
"agent",
"collaborator",
"customer"
]
}
},
"with_invited": {
"description": "Include users who were invited but have not joined yet (default false).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_get_user(user_id, max_tickets)
One user or customer with role, teams, ticket counts and a few of their recent tickets. GET /users/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The user id (from supportbee_list_users)."
},
"max_tickets": {
"description": "How many of the user's tickets to include (default 5).",
"type": "integer",
"minimum": 0,
"maximum": 50
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_snippets
The canned replies (snippets) of the company: name, tags and text, to reuse in a reply. GET /snippets.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_list_forwarding_addresses
The support e-mail addresses (forwarding addresses) of the desk: id, name, the address tickets arrive at and the from address. GET /emails.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢supportbee_get_report(report, user, team, label, since)
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}.
Eingabe-Schema
{
"type": "object",
"properties": {
"report": {
"type": "string",
"enum": [
"tickets_count",
"replies_count",
"avg_first_response_time"
],
"description": "Which report."
},
"user": {
"description": "Only this agent (user id).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"team": {
"description": "Only this team (team id).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"label": {
"description": "Only this label (name).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"since": {
"type": "string",
"pattern": "^(\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})?)?|\\d{9,11})$",
"description": "Start of the period (date, ISO date-time or Unix timestamp)."
}
},
"required": [
"report"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴supportbee_reply_to_ticket(ticket_id, text, cc, bcc)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "The reply text (plain text; blank lines separate paragraphs)."
},
"cc": {
"description": "Extra recipients in cc (cc + bcc together at most 10).",
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"bcc": {
"description": "Extra recipients in bcc (cc + bcc together at most 10).",
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
}
},
"required": [
"ticket_id",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴supportbee_add_comment(ticket_id, text)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "The comment text (plain text; blank lines separate paragraphs)."
}
},
"required": [
"ticket_id",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡supportbee_add_label(ticket_id, label)
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}.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The label name, exactly as in supportbee_list_labels."
}
},
"required": [
"ticket_id",
"label"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴supportbee_remove_label(ticket_id, label)
WRITE: removes a label from a ticket (the label itself stays; 404 if the ticket does not have it). DELETE /tickets/{id}/labels/{label}.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The label name."
}
},
"required": [
"ticket_id",
"label"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡supportbee_assign_ticket(ticket_id, user_id, team_id)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"user_id": {
"description": "The agent id (supportbee_list_users).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"team_id": {
"description": "The team id (supportbee_list_teams).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴supportbee_unassign_ticket(ticket_id, assignee)
WRITE: clears the user assignee or the team assignee of a ticket. DELETE /tickets/{id}/user_assignment or /team_assignment.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"assignee": {
"type": "string",
"enum": [
"user",
"team"
],
"description": "Which assignment to clear."
}
},
"required": [
"ticket_id",
"assignee"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡supportbee_set_ticket_archived(ticket_id, archived)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"archived": {
"type": "boolean",
"description": "true = archive, false = move back to the inbox."
}
},
"required": [
"ticket_id",
"archived"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡supportbee_set_ticket_answered(ticket_id, answered)
WRITE: marks a ticket as answered (answered=true) or unanswered (answered=false) without sending anything. POST/DELETE /tickets/{id}/answered.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets)."
},
"answered": {
"type": "boolean",
"description": "true = mark answered, false = mark unanswered."
}
},
"required": [
"ticket_id",
"answered"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis