Read SupportBee tickets, replies and reports; reply, comment, label, assign and archive tickets.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh 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.
The comment text (plain text; blank lines separate paragraphs).
The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
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.
| Argument | Type | Description |
|---|---|---|
| text* | string | The comment text (plain text; blank lines separate paragraphs). |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "The comment text (plain text; blank lines separate paragraphs)."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| label* | string | The label name, exactly as in supportbee_list_labels. |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"label"
],
"properties": {
"label": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The label name, exactly as in supportbee_list_labels."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| team_id | integer | The team id (supportbee_list_teams). |
| user_id | integer | The agent id (supportbee_list_users). |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The team id (supportbee_list_teams).",
"exclusiveMinimum": 0
},
"user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The agent id (supportbee_list_users).",
"exclusiveMinimum": 0
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}One reply of a ticket (text, replier, cc/bcc). GET /tickets/{ticket_id}/replies/{id}.
| Argument | Type | Description |
|---|---|---|
| reply_id* | integer | The reply id (from supportbee_list_replies). |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"reply_id"
],
"properties": {
"reply_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The reply id (from supportbee_list_replies).",
"exclusiveMinimum": 0
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| team | integer | Only this team (team id). |
| user | integer | Only this agent (user id). |
| label | string | Only this label (name). |
| since | string | Start of the period (date, ISO date-time or Unix timestamp). |
| report* | string | Which report. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"report"
],
"properties": {
"team": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this team (team id).",
"exclusiveMinimum": 0
},
"user": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this agent (user id).",
"exclusiveMinimum": 0
},
"label": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only this label (name)."
},
"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)."
},
"report": {
"enum": [
"tickets_count",
"replies_count",
"avg_first_response_time"
],
"type": "string",
"description": "Which report."
}
}
}One ticket with subject, requester, labels, assignees, state and the first message text. Replies and comments are separate calls. GET /tickets/{id}.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}What happened to a ticket and who did it (assignments, label changes, replies, archiving) with timestamps. GET /tickets/{id}/audit.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}One user or customer with role, teams, ticket counts and a few of their recent tickets. GET /users/{id}.
| Argument | Type | Description |
|---|---|---|
| user_id* | integer | The user id (from supportbee_list_users). |
| max_tickets | integer | How many of the user's tickets to include (default 5). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The user id (from supportbee_list_users).",
"exclusiveMinimum": 0
},
"max_tickets": {
"type": "integer",
"maximum": 50,
"minimum": 0,
"description": "How many of the user's tickets to include (default 5)."
}
}
}The internal comments (visible to agents only, never e-mailed) of a ticket, oldest first, as text. GET /tickets/{id}/comments.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}The support e-mail addresses (forwarding addresses) of the desk: id, name, the address tickets arrive at and the from address. GET /emails.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}All custom labels of the company (name and color). Use a label name with supportbee_add_label or the label filter. GET /labels.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}The public replies (the conversation with the customer) of a ticket, oldest first, as text. GET /tickets/{id}/replies.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}The canned replies (snippets) of the company: name, tags and text, to reuse in a reply. GET /snippets.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}The teams of the company (id, name), optionally only those that have users in them, or only the token user's teams. GET /teams.
| Argument | Type | Description |
|---|---|---|
| mine_only | boolean | Only the teams of the user who owns the token. |
| with_users | boolean | Only teams that have users in them (SupportBee's with_users filter; it does not add the member list). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mine_only": {
"type": "boolean",
"description": "Only the teams of the user who owns the token."
},
"with_users": {
"type": "boolean",
"description": "Only teams that have users in them (SupportBee's with_users filter; it does not add the member list)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| spam | boolean | Include tickets marked as spam (default false). |
| label | string | Only tickets with this label name (supportbee_list_labels). |
| since | string | Only tickets with last activity after this time (date, ISO date-time or Unix timestamp). |
| trash | boolean | Include trashed tickets (default false). |
| until | string | Only tickets with last activity before this time (date, ISO date-time or Unix timestamp). |
| sort_by | string | Sort order (default last_activity). |
| archived |
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.
| Argument | Type | Description |
|---|---|---|
| type | string | user (default) or customer_group. |
| with_roles | array | Roles to include (default admin, agent, collaborator). |
| with_invited | boolean | Include users who were invited but have not joined yet (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"user",
"customer_group"
],
"type": "string",
"description": "user (default) or customer_group."
},
"with_roles": {
"type": "array",
"items": {
"enum": [
"admin",
"agent",
"collaborator",
"customer"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Roles to include (default admin, agent, collaborator)."
},
"with_invited": {
"type": "boolean",
"description": "Include users who were invited but have not joined yet (default false)."
}
}
}WRITE: removes a label from a ticket (the label itself stays; 404 if the ticket does not have it). DELETE /tickets/{id}/labels/{label}.
| Argument | Type | Description |
|---|---|---|
| label* | string | The label name. |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"label"
],
"properties": {
"label": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The label name."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| cc | array | Extra recipients in cc (cc + bcc together at most 10). |
| bcc | array | Extra recipients in bcc (cc + bcc together at most 10). |
| text* | string | The reply text (plain text; blank lines separate paragraphs). |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"text"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string",
"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,}$",
"maxLength": 254
},
"maxItems": 10,
"description": "Extra recipients in cc (cc + bcc together at most 10)."
},
"bcc": {
"type": "array",
"items": {
"type": "string",
"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,}$",
"maxLength": 254
},
"maxItems": 10,
"description": "Extra recipients in bcc (cc + bcc together at most 10)."
},
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "The reply text (plain text; blank lines separate paragraphs)."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| spam | boolean | Include tickets marked as spam (default false). |
| query* | string | The search keywords or query. |
| trash | boolean | Include trashed tickets (default false). |
| per_page | integer | Tickets per page, 1-99 (default 15). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"spam": {
"type": "boolean",
"description": "Include tickets marked as spam (default false)."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "The search keywords or query."
},
"trash": {
"type": "boolean",
"description": "Include trashed tickets (default false)."
},
"per_page": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Tickets per page, 1-99 (default 15)."
}
}
}WRITE: marks a ticket as answered (answered=true) or unanswered (answered=false) without sending anything. POST/DELETE /tickets/{id}/answered.
| Argument | Type | Description |
|---|---|---|
| answered* | boolean | true = mark answered, false = mark unanswered. |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"answered"
],
"properties": {
"answered": {
"type": "boolean",
"description": "true = mark answered, false = mark unanswered."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| archived* | boolean | true = archive, false = move back to the inbox. |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"archived"
],
"properties": {
"archived": {
"type": "boolean",
"description": "true = archive, false = move back to the inbox."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}WRITE: clears the user assignee or the team assignee of a ticket. DELETE /tickets/{id}/user_assignment or /team_assignment.
| Argument | Type | Description |
|---|---|---|
| assignee* | string | Which assignment to clear. |
| ticket_id* | integer | The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"assignee"
],
"properties": {
"assignee": {
"enum": [
"user",
"team"
],
"type": "string",
"description": "Which assignment to clear."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The SupportBee ticket id (the number in the ticket URL; from supportbee_list_tickets).",
"exclusiveMinimum": 0
}
}
}| string |
| true = only archived tickets, false = no archived tickets (default), any = both. |
| per_page | integer | Tickets per page, 1-99 (default 15). |
| total_only | boolean | Return only the total number of matching tickets. |
| has_replies | boolean | true = only tickets that have replies, false = only tickets without replies. |
| max_replies | integer | Only tickets with this number of replies (not with has_replies=false). |
| assigned_team | string | mine = assigned to the user's teams, a team id (from supportbee_list_teams), none = no team. |
| assigned_user | string | me = assigned to the token's user, an agent id (from supportbee_list_users), any = assigned to someone, none = unassigned. |
| requester_emails | array | Only tickets from these requester e-mail addresses (max 10). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"spam": {
"type": "boolean",
"description": "Include tickets marked as spam (default false)."
},
"label": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only tickets with this label name (supportbee_list_labels)."
},
"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)."
},
"trash": {
"type": "boolean",
"description": "Include trashed tickets (default false)."
},
"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": {
"enum": [
"last_activity",
"creation_time"
],
"type": "string",
"description": "Sort order (default last_activity)."
},
"archived": {
"enum": [
"true",
"false",
"any"
],
"type": "string",
"description": "true = only archived tickets, false = no archived tickets (default), any = both."
},
"per_page": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Tickets per page, 1-99 (default 15)."
},
"total_only": {
"type": "boolean",
"description": "Return only the total number of matching tickets."
},
"has_replies": {
"type": "boolean",
"description": "true = only tickets that have replies, false = only tickets without replies."
},
"max_replies": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Only tickets with this number of replies (not with has_replies=false)."
},
"assigned_team": {
"type": "string",
"pattern": "^(mine|none|\\d{1,12})$",
"description": "mine = assigned to the user's teams, a team id (from supportbee_list_teams), none = no team."
},
"assigned_user": {
"type": "string",
"pattern": "^(me|any|none|\\d{1,12})$",
"description": "me = assigned to the token's user, an agent id (from supportbee_list_users), any = assigned to someone, none = unassigned."
},
"requester_emails": {
"type": "array",
"items": {
"type": "string",
"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,}$",
"maxLength": 254
},
"maxItems": 10,
"minItems": 1,
"description": "Only tickets from these requester e-mail addresses (max 10)."
}
}
}