relation-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@relation-mcpFind tickets with label 'urgent' and status 'open'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
relation-mcp
A Model Context Protocol server for Re:lation (by 株式会社インゲージ). Lets Claude / Claude Code / any MCP client search and triage support tickets, create internal records, and inspect the address book directly from an agent.
Works against the official Re:lation REST API (
https://<tenant>.relationapp.jp/api/v2/). Read the full API reference at developer.ingage.jp.
Features
search_tickets— filter by status, assignee, labels, free-text queryget_ticket/update_ticket— fetch detail, change status/assignee/labelsreply_mail— customer-facing email reply, guarded by aconfirm_send: trueinterlocklist_mail_accounts— discover themail_account_idneeded forreply_mailcreate_record— post an internal 応対メモ (not visible to the customer)create_comment— post a team comment on a ticketsearch_customers/get_customer— address-book lookuplist_labels/list_users— reference data for scripting automationsBuilt-in token-bucket rate limiter (stays under the 60 req/min tenant limit)
Typed errors (
RelationApiError,RelationAuthError,RelationRateLimitError)
Safety note on reply_mail
reply_mail sends a real email to the customer on the ticket. To keep agents from accidentally firing it during tool chaining, the tool requires a confirm_send: true parameter — if missing or false, the call is rejected before hitting the Re:lation API. Use it deliberately.
Related MCP server: Freshdesk MCP Server
Install
npm install -g relation-mcp
# or run ad-hoc with npx
npx relation-mcpConfigure
Generate an access token in Re:lation (admin UI → API token), then export:
export RELATION_SUBDOMAIN=yourtenant # the part before .relationapp.jp
export RELATION_MESSAGE_BOX_ID=1 # default 受信箱 ID
export RELATION_ACCESS_TOKEN=your_token_hereA copy of .env.example is included for reference.
Use with Claude Code / Claude Desktop
Add this to your MCP config (e.g. ~/.claude/config.json or the Claude Desktop config):
{
"mcpServers": {
"relation": {
"command": "npx",
"args": ["-y", "relation-mcp"],
"env": {
"RELATION_SUBDOMAIN": "yourtenant",
"RELATION_MESSAGE_BOX_ID": "1",
"RELATION_ACCESS_TOKEN": "your_token_here"
}
}
}
}Then prompt the agent:
Find tickets where status is open and the subject contains "本人確認", then summarize the top 5.
Tool reference
All tools accept an optional message_box_id to override the default for a single call.
Tool | Purpose |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Development
git clone https://github.com/sewon-supernova/relation-mcp.git
cd relation-mcp
npm install
npm run typecheck
npm test
npm run buildRun locally against a real tenant:
cp .env.example .env # fill in values
npm run build
node dist/index.js # speaks MCP over stdioRoadmap
list_message_boxeslist_pending_reasons/list_case_categoriesPagination helpers (auto-iterate
page)Prompt templates (MCP
prompts/*) for common triage flowsE2E tests against a staging tenant
Docker image
License
MIT — see full text.
Not affiliated with 株式会社インゲージ
This is an unofficial, community-maintained client. "Re:lation" and "relationapp.jp" are trademarks of their respective owners.
Available Tools
11 toolscreate_commentCreate a team comment on a ticketA
Post a team comment to a ticket. Not visible to the customer — used for internal discussion.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | ||
| ticket_id | Yes | ||
| operator_id | No | ||
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It reveals that comments are internal (not customer-visible), which is key behavior. However, it does not mention idempotency, authentication requirements, side effects (e.g., notifications), or whether multiple comments are allowed. Additional detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences. It is front-loaded with the primary action and resource, and every word adds value. There is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema, no annotations) and the availability of sibling tools with overlapping functionality, the description provides adequate but minimal context. It covers purpose and visibility but lacks details on preconditions (e.g., valid ticket), error cases, or return value. Completeness is sufficient for basic use but leaves gaps for an agent needing robust understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain any of the 4 parameters. While parameter names and schema constraints offer some hints, the description adds no meaning beyond what the schema provides. For a tool with 4 parameters, the description should at least clarify the role of each parameter (e.g., message_box_id, operator_id) to aid correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Post') and the resource ('team comment to a ticket'). It also distinguishes itself from customer-visible comments by noting the comment is internal, making the purpose highly specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the comment is not visible to the customer and is used for internal discussion, providing clear context for when to use this tool. However, it does not explicitly mention when not to use it (e.g., for customer replies) or reference alternatives like reply_mail, which is available among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recordCreate an internal record (応対メモ)A
Create an internal "応対メモ" on a ticket. Visible only to the support team; the end customer never sees it. Use this for triage notes, investigation context, or handoff messages.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | ||
| ticket_id | Yes | ||
| operator_id | No | Operator (agent) user_id to attribute the record to. | |
| subject | No | ||
| body | Yes | Record body. Plain text. | |
| duration | No | Handling duration in seconds, if tracked. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description mentions visibility (internal-only) but does not disclose other behaviors such as required permissions, rate limits, or side effects. It adds moderate context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no redundancy, and front-loaded with key information. Every word carries value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and no annotations, the description leaves gaps. It does not explain parameter dependencies (e.g., ticket must exist), optionality, or return value. The use cases are helpful but insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (body and operator_id have descriptions). The tool description adds no further details about parameters such as message_box_id, subject, or duration, failing to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an internal record on a ticket, and specifies its internal visibility (only support team, not end customer). This effectively distinguishes it from the sibling tool 'create_comment', which presumably is customer-facing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'triage notes, investigation context, or handoff messages.' While it does not explicitly mention when not to use or name alternatives, the context is clear enough for an AI agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerGet a customerB
Fetch a single customer (address-book entry) by id.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | ||
| customer_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It only says 'Fetch' (read-only), but lacks details on return values, error handling, or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, perfectly front-loaded, with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and two parameters, the description provides insufficient context. Missing return information and parameter roles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain either parameter. 'by id' is vague; it doesn't clarify which parameter holds the id or what message_box_id is for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' and identifies the resource as 'a single customer (address-book entry)' with the method 'by id'. It clearly distinguishes from sibling tools like search_customers or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool, or comparison with siblings. Usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticketGet a single ticketA
Fetch a single ticket by ticket_id, including all messages and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | Override the default message_box_id for this call. | |
| ticket_id | Yes | Ticket ID to fetch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behaviors. It mentions response includes all messages and metadata but doesn't specify read-only nature, auth requirements, or potential side effects. Adequate but basic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, description provides key insight into return content (all messages and metadata). Could mention the optional message_box_id param's effect but overall sufficient for a simple fetch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a clear description. The tool description adds no additional meaning beyond the schema, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (fetch), resource (single ticket), and identifier (ticket_id). Includes that all messages and metadata are returned, distinguishing it from sibling tools like search_tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates usage when a specific ticket ID is known, but lacks explicit guidance on when to use this vs search_tickets or update_ticket. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_labelsList labels in a message boxB
List all labels configured for a message_box. Useful before calling update_ticket with label_ids.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It implies a safe read operation but does not explicitly state read-only behavior, permissions, or what happens if message_box_id is omitted (the parameter is optional per schema). This leaves ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of two short, focused sentences without any extraneous information. The first sentence states the core purpose, and the second provides a practical usage hint. It is efficiently structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description covers the basic purpose and use case. However, it omits details about the return format, any pagination, and the handling of the optional parameter. It is minimally adequate but leaves gaps for a fully self-contained specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single parameter, and the description adds no additional meaning beyond the name 'message_box_id'. It does not explain the parameter's format, required status, or how it affects output. The description fails to compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('labels configured for a message_box'). It distinguishes from sibling tools by mentioning its utility before update_ticket, but does not explicitly contrast with other list tools like list_mail_accounts or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance ('Useful before calling update_ticket with label_ids'), but does not specify when not to use it or mention alternatives. The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mail_accountsList configured mail accountsA
List the mail accounts (送信元) configured for a message_box. Use this to discover mail_account_id before calling reply_mail.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond listing accounts. It lacks details on security, pagination, or return format, leaving a gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no redundancy. However, it could be slightly more structured by separating purpose and usage more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description adequately covers core functionality and usage intent. Missing context like response characteristics or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description only implicitly references the parameter by mentioning 'message_box' but does not explain its format, constraints, or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists mail accounts configured for a message_box, using a specific verb and resource. It also hints at its purpose in conjunction with reply_mail, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool to discover mail_account_id before calling reply_mail, providing a clear when-to-use. However, it does not mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersList operators (agents) for assignmentC
List operator users who can be assigned to tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether results are scoped, pagination, authentication requirements, or any side effects. It falls short of carrying the full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks essential information about parameters and behavior. It is not front-loaded with critical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the one optional parameter and no output schema, the description is incomplete. It does not explain what 'operator users' means or the effect of the parameter, nor does it cover return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the only parameter 'message_box_id' at all. The schema defines it as an optional integer, but the description adds no meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists operator users who can be assigned to tickets, specifying verb and resource. It effectively distinguishes from sibling tools like 'list_labels' or 'list_mail_accounts' which cover different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_mailReply to a ticket via email (CUSTOMER-FACING — sends real mail)A
Send an email reply on a Re:lation ticket. The email goes directly to the customer.
Safety: you MUST pass confirm_send: true. Without it the call is rejected. This guards against an agent accidentally firing a send during tool chaining.
Flow:
Find the message to reply to (use
get_ticketorsearch_ticketsto find a message_id).Find the mail_account_id to send from (use
list_mail_accounts).Call
reply_mailwith subject / body / to / status_cd / confirm_send.
After a successful send the returned object contains the new message_id and ticket_id.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | ||
| message_id | Yes | ID of the customer message being replied to (from get_ticket / search_tickets). | |
| mail_account_id | Yes | ID of the mail account to send from (see list_mail_accounts). | |
| to | Yes | Recipient address. Typically the customer email. | |
| cc | No | ||
| bcc | No | ||
| subject | Yes | Subject. Usually prefixed "Re: " when replying. | |
| body | Yes | Mail body. | |
| is_html | No | ||
| status_cd | Yes | Ticket status to set after sending. Usually "closed" for resolved or "ongoing". | |
| pending_reason_id | No | ||
| confirm_send | Yes | Must be literal boolean true. A safety interlock — if omitted or false the server refuses to send. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: the email goes to customers, requires confirm_send=true, and returns new message_id and ticket_id. It explains the safety guard purpose. Missing details on rate limits or error handling, but sufficient for typical use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear first sentence, a safety warning paragraph, and a flow paragraph. Every sentence adds value. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters and no output schema, the description covers purpose, safety, and pre-requisite steps. It mentions return data (new message_id and ticket_id) but does not detail error cases or the role of message_box_id. Overall reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contributes context beyond the schema by explaining the flow and the role of confirm_send. However, schema coverage is 58% and the description does not elaborate on optional parameters like cc, bcc, is_html, or pending_reason_id. The schema descriptions for required parameters are already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send an email reply on a Re:lation ticket. The email goes directly to the customer.' This specifies the verb (reply) and resource (ticket via email), and distinguishes from siblings like create_comment which may be internal notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a step-by-step flow for preparing inputs, referencing sibling tools (get_ticket, search_tickets, list_mail_accounts). It explicitly warns about the confirm_send safety interlock. However, it does not compare directly to alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_customersSearch address book (顧客/アドレス帳)B
Search customers in the address book by email, phone, name, or company.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | ||
| emails | No | ||
| tels | No | ||
| last_name | No | ||
| first_name | No | ||
| company_name | No | ||
| per_page | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'search' but does not disclose pagination behavior, handling of multiple criteria, or response format. Lacks details on operational traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with 10 words, front-loaded with the key action. Very concise, though perhaps too brief missing important details. Earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description is incomplete. Does not explain pagination, combining criteria, or return format. Lacks necessary context for a search tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It lists searchable fields (email, phone, name, company) which correspond to parameters, but does not explain array types for emails/tels or pagination parameters. Adds some meaning but insufficient for full understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search', the resource 'customers in the address book', and lists specific search criteria (email, phone, name, or company). It is specific and distinguishes from siblings like 'get_customer' and 'search_tickets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description is purely functional without context on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ticketsSearch Re:lation ticketsC
Search tickets by status, label, assignee, date range, and free-text query. Returns a paginated list.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | Override the default message_box_id for this call. | |
| status_cds | No | ||
| assignee_ids | No | ||
| label_ids | No | ||
| case_category_ids | No | ||
| color_cds | No | ||
| search_query | No | Free-text query matching subject or body. | |
| per_page | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions 'returns a paginated list'. Does not disclose sorting, rate limits, performance, error handling, or what happens with no results. Authentication needs are implicit but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but under-informative. Could be improved by adding structure or more details without being verbose. Currently only slightly above tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description is incomplete. Lacks details on return format, pagination specifics, and guidance on filter combinations. Does not differentiate from get_ticket or other search tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (22%). Description only lists filter categories but does not explain individual parameters like message_box_id, assignee_ids, label_ids, etc. Does not add value beyond the sparse schema descriptions for status_cds and search_query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Search' and resource 'tickets', lists filter criteria (status, label, assignee, date range, free-text query), and mentions pagination. Distinguishes from sibling tools like get_ticket (single ticket) and search_customers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention when not to use, prerequisites, or context like needing a message_box_id. Sibling tools exist but description lacks any comparative advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ticketUpdate a ticketB
Update ticket status, assignee, labels, color, or pending reason. Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| message_box_id | No | Override the default message_box_id for this call. | |
| ticket_id | Yes | ||
| status_cd | No | Ticket status code used by Re:lation. | |
| assignee_id | No | Pass null to unassign. | |
| label_ids | No | ||
| color_cd | No | ||
| pending_reason_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the partial update nature and lists updatable fields. It lacks information on side effects, idempotency, authentication needs, rate limits, or return value behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence of 12 words. It front-loads the key behavior (update ticket with specific fields) and includes the critical partial update note. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no annotations, no output schema, and is a mutation tool, the description is insufficient. It does not explain return values, error conditions, prerequisites, or how labels are handled (replace vs append). The partial update note helps but leaves many contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (43%, 3 of 7 parameters have descriptions). The description adds some value by mapping fields like 'status' to status_cd, but does not explain message_box_id or ticket_id. It does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update', the resource 'ticket', and lists specific fields (status, assignee, labels, color, pending reason). It also notes the partial update behavior ('Only provided fields are changed'), which distinguishes it from sibling tools like create_comment or get_ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It does not mention prerequisites (e.g., ticket must exist), conditions for update, or scenarios where other tools might be preferred. The guidance is implicit at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tool purposes are mostly distinct, but `create_comment` and `create_record` both create internal notes with nearly identical functionality, which could cause confusion for an agent. The descriptions help differentiate slightly.
All tool names follow a consistent `verb_noun` pattern in snake_case (e.g., `create_record`, `search_tickets`), making the naming predictable and unambiguous.
With 11 tools, the set is well-scoped for a ticket management system, covering the essential operations without being overly numerous or sparse.
Notable gaps exist: there is no `create_ticket` tool, so agents cannot initiate new tickets. Additionally, no delete or update operations for comments or records, and no customer creation/update, which limits the agent's ability to fully manage the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Remote MCP server for managing Muninx tickets, messages, ticket search, and support analytics.
Freshdesk MCP Pack — helpdesk ticket and contact management via Freshdesk API v2.
List, search, create, update, and reply to support tickets across your Dispatch Tickets brands.
Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.
Related MCP Servers
AlicenseAqualityCmaintenanceConnects AI assistants to a Request Tracker (RT) instance, enabling natural language ticket search, creation, updates, and queue management via the MCP protocol.17538GPL 2.0- AlicenseAqualityDmaintenanceProvides a standard MCP interface for Freshdesk helpdesk operations, including ticket lifecycle management, draft/send replies and notes, contact lookup, and agent/group discovery.14MIT
- AlicenseNot gradedqualityAmaintenanceMCP server to interact with Zammad ticketing system, enabling ticket search, creation, update, article addition, and user/organization/group queries via the Zammad API.15MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to drive Relay, an AI support-triage agent, by exposing tools for customer lookup, documentation search, ticket classification, reply, and escalation, with full guardrails and read-only mode option.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sewon-supernova/relation-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server