SupportBee MCP by usefulapi
Read SupportBee tickets, replies and reports; reply, comment, label, assign and archive tickets.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWsupportbee_list_forwarding_addresses에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"supportbee": {
"url": "https://supportbee.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://supportbee.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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"
}커뮤니티
증거