freshdesk
Server Details
Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.8/5 across 19 of 19 tools scored. Lowest: 3/5.
Each tool targets a distinct resource and action (tickets, contacts, companies, agents, groups, conversations). Even similar tools like add_note vs reply_ticket are clearly differentiated by public/private semantics. Search vs list tools are also clearly separated.
All tools follow the freshdesk_verb_noun pattern with consistent verbs (create, get, list, update, search, add, reply). The convention is uniform and predictable across all 19 tools.
19 tools is slightly above the typical 3-15 range but justified given the breadth of Freshdesk entities (tickets, contacts, companies, agents, groups, conversations). The set feels reasonably scoped without unnecessary redundancy.
Core workflows are covered: ticket lifecycle (create, get, list, update, search, reply, note), contact management (CRUD minus delete, plus search), company creation and listing, and agent/group lookup. Missing delete operations for any resource and company update are minor gaps that can be worked around (e.g., closing tickets instead of deleting).
Available Tools
19 toolsfreshdesk_add_noteAdd note to ticketADestructiveInspect
Add a note to a ticket. Notes are internal (private) by default; set private: false for a public note. Freshdesk REST: POST /tickets/{id}/notes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ticket id to add a note to. | |
| body | Yes | The note content, HTML (required). | |
| private | No | Whether the note is internal/private (default true). Set false for a public note. | |
| notify_emails | No | Agent emails to notify about this note. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool 'Add a note to a ticket', an additive and non-destructive operation, while the annotations include destructiveHint: true. This is a direct contradiction. The description does not disclose any destructive behavior, and the conflicting annotation means the agent cannot trust whether this action is safe.
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—only two sentences—and front-loaded with the main action. It includes essential details like the default privacy and API endpoint without any waste, earning a top score.
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 an add-note tool with 4 parameters fully described in the schema, the description gives the core action, default privacy, and API reference. It does not mention return values or side effects, but given the schema coverage and low complexity, it is reasonably complete. The contradiction with annotations is a transparency concern, not a completeness gap.
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?
All four parameters have descriptions in the input schema, so the baseline is 3. The description repeats the `private` default and gives the REST endpoint, but does not add meaning beyond what the schema already provides. Therefore, a score of 3 is appropriate.
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 'Add a note to a ticket' with a specific verb and resource, distinguishing it from sibling tools like freshdesk_reply_ticket. It also explains the default privacy and includes the REST endpoint, reinforcing the tool's purpose.
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 clear context by stating that notes are internal (private) by default and how to make them public, which guides usage. However, it does not explicitly mention when to use this tool versus alternatives like freshdesk_reply_ticket, so it lacks explicit exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_create_companyCreate companyBDestructiveInspect
Create a company. name is required. Freshdesk REST: POST /companies.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The company name (required). | |
| note | No | A note about the company. | |
| domains | No | Email domains associated with the company. | |
| description | No | Freeform description / notes. | |
| custom_fields | No | Custom field values, keyed by field name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the creation action itself. It does not disclose potential side effects, idempotency, error behavior, or authentication requirements. The annotation destructiveHint=true is misleading for a create operation, and the description does not clarify or correct this.
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, consisting of two sentences that front-load the core purpose. Every word earns its place, and it avoids unnecessary detail.
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?
The description is adequate for a simple create tool but lacks context about return values, custom field structure, or domain formatting. With no output schema, the agent is left unaware of the response shape. The schema covers parameter details, but the description does not compensate for missing behavioral or usage context.
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 input schema already provides descriptions for all five parameters, so the description adds little value. It only reiterates that 'name' is required, which is already in the schema's required array. The baseline of 3 is appropriate given high schema coverage.
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 'Create a company' with a specific resource (company) and a direct reference to the REST endpoint. This distinguishes it from sibling tools like create_contact and create_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?
No guidance is provided on when to use this tool versus alternatives like update_company or list_companies. The description only mentions that 'name' is required, but does not explain conditions, exclusions, or comparisons to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_create_contactCreate contactBDestructiveInspect
Create a contact. name is required. Freshdesk REST: POST /contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The contact's full name (required). | |
| tags | No | Tags (array of strings). | |
| No | Email address. | ||
| phone | No | Phone number. | |
| mobile | No | Mobile number. | |
| address | No | Postal address. | |
| job_title | No | Job title. | |
| company_id | No | Id of the company the contact belongs to. | |
| twitter_id | No | Twitter handle. | |
| description | No | Freeform description / notes. | |
| custom_fields | No | Custom field values, keyed by field name. | |
| unique_external_id | No | External id from your own system. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint: true contradicts the description 'Create a contact', as creating a contact is not a destructive operation. The description provides no additional behavioral context and actually conflicts with the annotation, so it scores 1.
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 and front-loaded: 'Create a contact' immediately conveys the action and target. The additional REST endpoint reference is useful and non-redundant. No fluff or wasted 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 12 parameters and no output schema, this minimal description leaves out important context such as response format, side effects, or prerequisites. The contradictory destructiveHint annotation adds confusion, and the description does not compensate for the lack of structural clarity.
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 100%, so the input schema already documents every parameter. The description adds no extra meaning beyond what the schema provides, except highlighting name as required, which is also in the schema. Baseline 3 is appropriate.
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 'Create a contact' — a specific verb and resource that distinguishes it from sibling tools like create_company and create_ticket. It also cites the REST endpoint, reinforcing the action.
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?
There is no guidance on when to use this tool versus alternatives such as update_contact for existing contacts. The mention of 'name required' and the REST endpoint are parameter/implementation details, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_create_ticketCreate ticketADestructiveInspect
Create a ticket. subject and description (HTML) are required, plus a requester — provide at least one of email, requester_id, or phone. status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedbackwidget, 10=Outbound email. Freshdesk REST: POST /tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags (array of strings). | |
| type | No | Ticket type (e.g. Question, Incident). | |
| No | Requester email (one of email/requester_id/phone required). | ||
| phone | No | Requester phone (one of email/requester_id/phone required). | |
| source | No | Ticket source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedbackwidget, 10=Outbound email. | |
| status | No | Ticket status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. | |
| subject | Yes | Ticket subject (required). | |
| group_id | No | Id of the group to assign the ticket to. | |
| priority | No | Ticket priority: 1=Low, 2=Medium, 3=High, 4=Urgent. | |
| cc_emails | No | Emails to CC on the ticket. | |
| company_id | No | Id of the company the ticket belongs to. | |
| description | Yes | Ticket description, HTML content (required). | |
| requester_id | No | Requester (contact) id (one of email/requester_id/phone required). | |
| responder_id | No | Id of the agent the ticket is assigned to. | |
| custom_fields | No | Custom field values, keyed by field name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the destructiveHint annotation by specifying required fields, HTML content for description, and the exact enum values for status, priority, and source. It also mentions the REST endpoint. This is useful, though it does not cover side effects like return values or error conditions.
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 and well-structured: it states the action, then required fields, then enum mappings, then the REST endpoint. Every sentence adds direct value without verbosity. The information is front-loaded and easy to scan.
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 15 parameters and no output schema, the description covers the most critical aspects: the core action, required fields, requester options, and key enum values. Remaining optional parameters are documented in the schema. It does not explain return values, but that is less critical for a create operation.
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 100%, so the baseline is 3. The description largely repeats what the schema already provides (required fields, enum values, requester requirement). It does not add new meaning beyond the schema descriptions, so no higher score is warranted.
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 starts with a specific verb and resource: 'Create a ticket.' It clearly distinguishes from sibling tools like freshdesk_update_ticket, freshdesk_add_note, and freshdesk_create_company by naming the resource and action. The REST endpoint is also provided, further clarifying the operation.
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 clearly states the action and highlights the required fields and requester options, giving practical usage context. It does not explicitly mention when not to use this tool or point to alternatives, but the context is clear enough for a straightforward create operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_get_agentGet agentARead-onlyInspect
Get a single agent by id. Freshdesk REST: GET /agents/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The agent id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include readOnlyHint=true, and the description's GET method aligns with that. It adds the REST endpoint as context, but does not disclose any additional behavior like error handling, response format, or authentication needs, though the bar is lowered by the annotation.
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: two short sentences with front-loaded purpose. Every word earns its place, and there is no filler or redundant 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?
For a simple read-only getter with one well-described parameter, the description is almost complete. It could explicitly mention that the response returns the agent object, but that is implied by the GET semantics and the simple nature of the tool.
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 parameter 'id' has 100% schema description coverage in the input schema. The description simply restates 'by id' and adds no extra semantic value beyond what the schema already provides, which is acceptable given the high coverage.
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: 'Get a single agent by id.' The REST path 'GET /agents/{id}' reinforces the specific resource. It differentiates from the sibling 'list_agents' by emphasizing the singular nature.
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?
Usage guidance is only implied: the word 'single' suggests this is for retrieving one agent rather than listing all. No explicit when-to-use or alternatives are provided, such as when to use list_agents instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_get_companyGet companyARead-onlyInspect
Get a single company by id. Freshdesk REST: GET /companies/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The company id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, signaling this is a safe read operation. The description adds the REST endpoint but doesn't disclose any additional behavioral traits such as error handling, rate limits, or response details. It adds minimal value beyond what annotations already convey.
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 two short sentences with no fluff. It front-loads the core action and includes the REST endpoint as a useful reference. Every word earns its place.
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 read-only tool with one parameter, the description plus annotations and schema provide complete context. There is no output schema, but for a GET-by-id operation, the return is straightforward and doesn't need elaboration. The tool is adequately documented.
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 input schema has 100% description coverage for the 'id' parameter ('The company id.'), so the baseline is 3. The description's 'by id' aligns with the schema but doesn't add any extra meaning or formatting details beyond what's already present.
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 states a specific verb ('Get') and resource ('a single company by id'), clearly distinguishing it from list_companies (which retrieves multiple companies) and create_company. The REST endpoint reference adds precision and reinforces the intended operation.
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 phrase 'single company by id' clearly indicates when to use this tool: when you have a specific company ID and need one record. It doesn't explicitly mention alternatives, but the context is clear enough that an agent would know to use list_companies for fetching all companies or search for finding by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_get_contactGet contactARead-onlyInspect
Get a single contact by id. Freshdesk REST: GET /contacts/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The contact id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds the underlying REST method (GET /contacts/{id}), which is useful but does not go beyond that. No additional behavioral traits (e.g., response format, error conditions, rate limits) are disclosed, so the added value over annotations is minimal.
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: two short sentences with no redundant information. It front-loads the core purpose ('Get a single contact by id') and follows with the REST endpoint for clarity. Every word earns its place.
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?
The tool is simple with one parameter (id) and no output schema or enums. The description, combined with the readOnlyHint annotation and schema coverage, provides enough context for an agent to use it correctly. It does not explain the response structure, but this is a straightforward lookup operation where the return value is implicit. The main gap is the lack of any error/edge case mentions, but these are not critical for a simple get-by-id.
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 description coverage is 100%, with the 'id' parameter fully described as 'The contact id.' The description reinforces that the id is used to fetch a single contact. Since the schema already provides complete parameter meaning, the description adds no extra semantic value beyond confirming the purpose.
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 specific action: 'Get a single contact by id.' This distinguishes it from sibling tools like freshdesk_list_contacts (list all), freshdesk_search_contacts (search), freshdesk_create_contact, and freshdesk_update_contact. The inclusion of the REST endpoint further clarifies the exact operation.
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?
Usage context is clear: you use this tool when you have a contact id and need the corresponding contact record. The description does not explicitly list alternatives or exclusion criteria, but the resource-specific framing ('contact by id') makes the intended use unambiguous given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_get_ticketGet ticketARead-onlyInspect
Get a single ticket by id. Freshdesk REST: GET /tickets/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ticket id. | |
| include | No | Embed extra data, comma-separated: conversations, requester, company, stats. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this is a safe read operation, and the description's REST GET reference aligns with that. However, no additional behavioral details are provided (e.g., error handling, authentication, rate limits). With annotations covering the safety profile, this is acceptable but not enriched.
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 one sentence, omits filler, and front-loads the core action. The REST endpoint reference is concise and relevant, adding no waste.
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 get-by-id operation with full schema and a read-only annotation, the description is largely complete. It does not describe the response format or error codes, but for this trivial tool, that is not a critical gap.
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 provides 100% coverage with descriptions for both 'id' and 'include'. The description only repeats the 'by id' notion and adds no new meaning beyond the schema. Baseline 3 applies due to high schema coverage.
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 ('Get') and the resource ('a single ticket by id'), which distinguishes it from sibling tools like freshdesk_list_tickets and freshdesk_search_tickets. The REST endpoint reference reinforces the specific operation.
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 implies the appropriate usage scenario: when you have a specific ticket ID and need that one ticket. It does not explicitly mention alternatives, but the 'by id' wording and the schema's required 'id' parameter make the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_agentsList agentsARead-onlyInspect
List/filter agents. Freshdesk REST: GET /agents.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-based). | |
| No | Filter by email. | ||
| phone | No | Filter by phone number. | |
| state | No | Filter by state: fulltime or occasional. | |
| mobile | No | Filter by mobile number. | |
| per_page | No | Results per page (1-100, max 100, default 30). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already discloses the read-only nature. The description adds only the REST endpoint reference, which provides no additional behavioral context about pagination, filtering semantics, or limitations. Beyond the annotation, it adds essentially no 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 a single, front-loaded sentence that states the purpose immediately and includes no unnecessary words. It is highly concise and well-structured.
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 fully documented schema and read-only annotation, the description is minimally sufficient for a list tool. However, it lacks usage guidance and does not describe the return shape, which leaves some ambiguity for a tool with no output schema. It is adequate but not 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 input schema documents all 6 parameters with descriptions (100% coverage). The description itself adds no parameter-level detail beyond what the schema provides, so the baseline score of 3 applies.
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 'List/filter agents' clearly identifies the action (list/filter) and resource (agents), and the REST endpoint reference adds precision. It distinguishes from sibling tools like freshdesk_get_agent by explicitly targeting the list operation.
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 implies use for listing or filtering agents, but it does not explicitly state when to prefer this tool over alternatives such as freshdesk_get_agent, nor does it mention any exclusions or prerequisites. This is implied usage rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_companiesList companiesARead-onlyInspect
List companies. Freshdesk REST: GET /companies.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-based). | |
| per_page | No | Results per page (1-100, max 100, default 30). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares the operation is safe, so the description does not need to repeat that. It adds the REST method, which is a minor detail but does not disclose deeper behaviors like return format, pagination defaults, or rate limits. With annotations covering safety, this is an acceptable but not enriched transparency level.
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 with two short sentences that state the purpose and the REST endpoint. Every sentence earns its place without redundant or verbose content, making it well-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 (two optional pagination parameters, no output schema), the description combined with the readOnlyHint and complete schema provides sufficient context for an agent to invoke it correctly. While return details are not specified, it remains a basic list operation. This is more complete than a bare tautology but less rich than tools that need extra behavioral caveats.
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 input schema covers 100% of parameters with descriptions for page and per_page. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline 3 is appropriate.
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 'List companies' with a specific verb and resource, and further specifies the Freshdesk REST endpoint 'GET /companies'. This distinguishes it from sibling list tools like freshdesk_list_agents or freshdesk_list_tickets by naming the resource directly.
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 such as freshdesk_get_company for a single company or other list_* tools. The description only restates the tool's function without any contextual when-to-use or exclusion information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_contactsList contactsBRead-onlyInspect
List/filter contacts. Freshdesk REST: GET /contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-based). | |
| No | Filter by email. | ||
| phone | No | Filter by phone number. | |
| state | No | Filter by state: verified, unverified, blocked, or deleted. | |
| mobile | No | Filter by mobile number. | |
| per_page | No | Results per page (1-100, max 100, default 30). | |
| company_id | No | Filter by company id. | |
| updated_since | No | Only contacts updated after this ISO 8601 timestamp. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, and the description adds the HTTP GET method, which reinforces the non-destructive nature. However, it does not disclose pagination defaults, response format, or any rate-limit behavior, but with annotations present, this is a minimal acceptable disclosure.
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 one short sentence plus the REST path, with zero filler or redundant information. It is front-loaded and entirely focused on the core purpose, making it highly efficient.
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 a read-only annotation and fully self-documenting parameters, the description is minimally adequate. However, it lacks any mention of the return format or pagination behavior, and the absence of an output schema means the agent relies on assumptions about the response structure. This is a clear gap, though not severe for a straightforward list endpoint.
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 input schema provides full descriptions for all 8 parameters (100% coverage), so the description does not need to elaborate. The description's generic 'List/filter contacts' adds no specific parameter detail, but the baseline score of 3 is appropriate because the schema does the heavy lifting.
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 states 'List/filter contacts' with a specific resource and verb, and includes the REST endpoint GET /contacts. It clearly identifies the operation but does not explicitly distinguish itself from sibling freshdesk_search_contacts, which also lists contacts with filters.
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 no guidance on when to use this tool versus alternatives like freshdesk_search_contacts. It only states the basic list/filter capability, leaving the agent to infer usage from the endpoint and filter parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_groupsList groupsARead-onlyInspect
List groups (agent groups tickets are routed to). Freshdesk REST: GET /groups.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-based). | |
| per_page | No | Results per page (1-100, max 100, default 30). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds the REST endpoint (GET /groups) and semantic context. However, it does not disclose pagination behavior or return format beyond what the schema implies, so it offers only modest additional 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 a single sentence with a parenthetical clarification and a REST endpoint reference. Every part is useful, and it is front-loaded with the core action and resource.
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 operation with well-documented pagination parameters and a read-only annotation, the description is mostly complete. The only minor gap is the absence of an explicit statement about the return value (a list of groups), but the verb 'List' makes this implicit.
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%, with both page and per_page having clear descriptions. The description itself adds no parameter-specific meaning beyond the schema, meeting the baseline for well-documented parameters.
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 and resource ('List groups') and clarifies the domain concept ('agent groups tickets are routed to'). It clearly distinguishes itself from sibling tools like list_agents or list_tickets by identifying the exact resource.
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 clearly implies when to use this tool: when the user needs to retrieve agent groups. It provides context about what groups are, but no explicit exclusions or alternatives are named, which is acceptable for a simple read-only list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_ticket_conversationsList ticket conversationsARead-onlyInspect
List the conversations (replies and notes) on a ticket. Freshdesk REST: GET /tickets/{id}/conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ticket id. | |
| page | No | Page number for pagination (1-based). | |
| per_page | No | Results per page (1-100, max 100, default 30). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals a safe read operation, and the description adds the specific content ('replies and notes') and the REST GET method. While it doesn't detail pagination or ordering, the annotation covers safety, making this sufficiently transparent.
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 two concise, front-loaded sentences with no verbose content. The first sentence states the purpose, the second provides a precise API reference, making it efficient and to the point.
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 this is a read-only list tool with pagination parameters fully described in the schema and a clear annotation, the description is complete. It states what is listed (conversations), the scope (ticket), and the API endpoint, while the output schema absence doesn't require further elaboration for a standard list operation.
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 provides 100% description coverage for all three parameters, so the description doesn't need to add parameter details. The REST endpoint in the description does reinforce that 'id' is a ticket id, but this is marginal beyond the schema's own description.
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 ('List') and resource ('conversations on a ticket'), clearly distinguishing it from siblings like get_ticket or list_tickets. It also includes the REST endpoint, reinforcing exactly what the tool does.
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 implicitly states when to use the tool (when needing replies/notes on a ticket), and no sibling tool performs this exact function, so the context is clear. However, it doesn't explicitly discuss alternatives or when not to use it, which would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_list_ticketsList ticketsBRead-onlyInspect
List/filter tickets (max page 300). Freshdesk REST: GET /tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-based). | |
| No | Filter by requester email. | ||
| filter | No | Predefined filter: new_and_my_open, watching, spam, or deleted. | |
| include | No | Embed extra data, comma-separated, e.g. "requester,stats,description". | |
| order_by | No | Sort field: created_at, due_by, updated_at, or status. | |
| per_page | No | Results per page (1-100, max 100, default 30). | |
| company_id | No | Filter by company id. | |
| order_type | No | Sort direction: asc or desc. | |
| requester_id | No | Filter by requester (contact) id. | |
| updated_since | No | Only tickets updated after this ISO 8601 timestamp. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, so the description adds marginal value with 'max page 300' and the REST method. It does not disclose pagination quirks, rate limits, or response structure, but the annotation lowers the 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 two short sentences, front-loaded with the core action, and contains no filler. Every word contributes meaning, making it highly concise and well-structured.
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 10 parameters and no output schema, the description does not explain the return format, pagination behavior, or how parameters interact. It mentions 'max page 300' but lacks the context needed for confidently invoking the tool, especially given the presence of similar sibling 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 coverage is 100%, with each parameter having a description. The tool description does not add any parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.
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 ('List/filter tickets') and the resource (tickets), distinguishing it from sibling tools like get_ticket (single ticket) and search_tickets (search). The REST endpoint reference reinforces the operation.
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 given on when to use this tool versus alternatives such as search_tickets or get_ticket. The description does not mention exclusions or prerequisites, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_reply_ticketReply to ticketADestructiveInspect
Add a public reply to a ticket (sent to the requester). Freshdesk REST: POST /tickets/{id}/reply.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ticket id to reply to. | |
| body | Yes | The reply content, HTML (required). | |
| cc_emails | No | Emails to CC on the reply. | |
| bcc_emails | No | Emails to BCC on the reply. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds that the reply is 'sent to the requester', indicating external visibility and potential notifications. This is meaningful behavioral context. It doesn't cover all side effects (e.g., email triggers) but provides good value beyond annotations.
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 two concise sentences, front-loaded with the primary action and audience. It includes the REST endpoint as useful technical context without unnecessary 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?
For a mutation tool with 4 parameters and no output schema, the description adequately explains the purpose and key behavior (public reply sent to requester). It lacks explicit return value or error details, but for a simple reply action, the description is largely 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?
Schema description coverage is 100% with detailed parameter descriptions for id, body, cc_emails, and bcc_emails. The tool description adds no additional parameter semantics beyond the REST endpoint template, so the baseline of 3 applies.
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 'Add a public reply to a ticket' with a specific verb and resource, and adds 'sent to the requester' to clarify scope. It distinguishes itself from sibling tools like freshdesk_add_note by emphasizing 'public'.
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 implies when to use this tool (for public replies visible to the requester) and implicitly differentiates from private notes. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_search_contactsSearch contactsARead-onlyInspect
Search contacts with the Freshdesk query DSL. The query VALUE is wrapped in double quotes automatically. Examples: name:'ada', email:'ada@example.com', company_id:123. Freshdesk REST: GET /search/contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-10; search endpoints return 30 results per page and ignore per_page). | |
| query | Yes | Freshdesk search query, e.g. "company_id:123" (do NOT add surrounding quotes yourself — they are added for you). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses automatic double-quoting of the query value and the underlying REST endpoint. This adds useful behavioral context. It doesn't mention rate limits or response shape, but for a read-only search tool, the added details are sufficient.
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, front-loaded with the core purpose, and each sentence adds value: purpose, auto-quote behavior, and REST endpoint. No unnecessary words or repetition.
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 simple tool with two params and no output schema, the description covers the essential aspects: query DSL, auto-quoting, and endpoint. It doesn't explicitly state the response format, but for a contact search tool, the expected return is implicit. Overall, it's adequate without significant 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?
The schema already covers both parameters with 100% description coverage, so the baseline is 3. The description adds value by providing multiple query examples and explicitly stating the auto-quote behavior, which clarifies how to format the query parameter beyond the schema's single example.
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 searches contacts using the Freshdesk query DSL, with a specific verb and resource. It distinguishes from sibling list tools by emphasizing the query-based search mechanism, though it doesn't explicitly name alternatives.
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 implies usage by providing example queries and noting the auto-quote behavior, but it does not explicitly state when to prefer this over list_contacts or other search tools. No exclusions or alternative guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_search_ticketsSearch ticketsARead-onlyInspect
Search tickets with the Freshdesk query DSL. The query VALUE is wrapped in double quotes automatically. Examples: status:2 AND priority:3, created_at:>'2026-01-01', agent_id:123, group_id:45, tag:'urgent'. Freshdesk REST: GET /search/tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-10; search endpoints return 30 results per page and ignore per_page). | |
| query | Yes | Freshdesk search query, e.g. "priority:3 AND status:2" (do NOT add surrounding quotes yourself — they are added for you). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals that query values are automatically wrapped in double quotes and provides example syntax. It does not mention return format or rate limits, but the auto-quote behavior is a valuable addition.
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?
Description is concise and front-loaded with the core purpose, followed by a behavioral note, useful examples, and REST endpoint. No wasted sentences.
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 two-parameter search tool, the description explains the DSL, quoting, and provides examples, which is sufficient. It does not describe the return payload, but with the tool being a search this is not critical; schema covers pagination.
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 already covers both parameters with descriptions, giving a baseline of 3. The description adds concrete query examples and the auto-wrap note, which helps the agent format queries correctly beyond the schema.
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 the tool searches tickets using Freshdesk's query DSL, with a specific verb and resource. The examples and REST endpoint further clarify its function and distinguish it from sibling tools like list_tickets and 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 implies use for complex ticket searches via the DSL, but does not explicitly state when to prefer this over list_tickets or get_ticket. The examples illustrate capability, but no alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_update_contactUpdate contactADestructiveInspect
Update fields on an existing contact. Only provided fields are changed. Freshdesk REST: PUT /contacts/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The contact id to update. | |
| name | No | The contact's full name. | |
| tags | No | Tags (array of strings). | |
| No | Email address. | ||
| phone | No | Phone number. | |
| mobile | No | Mobile number. | |
| address | No | Postal address. | |
| job_title | No | Job title. | |
| company_id | No | Id of the company the contact belongs to. | |
| description | No | Freeform description / notes. | |
| custom_fields | No | Custom field values, keyed by field name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already signals mutation, but the description adds valuable context that only provided fields are changed, preventing assumptions about full replacement. It does not describe response format or permission requirements, but this is partially covered by the annotation.
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 two sentences plus a REST endpoint reference. Every word is purposeful, front-loaded with the action, and free of redundancy.
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?
The description adequately covers the main behavior and partial-update semantics for an update tool with a well-covered schema. It lacks explicit return value information, but this is not critical given the absence of an output schema and the straightforward nature of an update operation.
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 covers all 11 parameters with descriptions, so the description does not need to add parameter-level detail. The description adds no extra parameter semantics beyond the schema, warranting the baseline score of 3.
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's action: 'Update fields on an existing contact.' This specifies the verb (update) and resource (existing contact), distinguishing it from sibling tools like create_contact, get_contact, and update_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 implies usage context by saying 'existing contact' and emphasizes partial updates ('Only provided fields are changed'), which guides when to use it. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freshdesk_update_ticketUpdate ticketADestructiveInspect
Update fields on an existing ticket. Only provided fields are changed. status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. Freshdesk REST: PUT /tickets/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ticket id to update. | |
| tags | No | Tags (array of strings). | |
| type | No | Ticket type. | |
| source | No | Ticket source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedbackwidget, 10=Outbound email. | |
| status | No | Ticket status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. | |
| subject | No | Ticket subject. | |
| group_id | No | Id of the group to assign the ticket to. | |
| priority | No | Ticket priority: 1=Low, 2=Medium, 3=High, 4=Urgent. | |
| company_id | No | Id of the company the ticket belongs to. | |
| description | No | Ticket description, HTML content. | |
| requester_id | No | Requester (contact) id. | |
| responder_id | No | Id of the agent the ticket is assigned to. | |
| custom_fields | No | Custom field values, keyed by field name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds valuable behavioral detail: only provided fields are changed, preventing accidental overwrite of unmentioned fields. The REST endpoint reference also provides implementation context. No contradiction with annotations.
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 two concise sentences, front-loaded with the core action, followed by compact enum mappings and endpoint. Every sentence contributes meaningful information without 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 13 parameters and no output schema, the description explains the purpose and update semantics but does not mention return values or error behavior. The schema handles parameter details, but for a destructive, complex operation, some indication of response expectations would improve completeness.
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 descriptions cover 100% of parameters, so the baseline is 3. The description repeats enum values for status and priority already present in the schema, adding no extra semantic value beyond what structured fields already provide.
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 explicitly states 'Update fields on an existing ticket' with a specific verb and resource, clearly distinguishing it from sibling tools like create_ticket or update_contact. Including the REST endpoint further clarifies the exact operation.
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 phrase 'existing ticket' and 'Only provided fields are changed' gives clear context for partial updates, implying this tool is for modifying existing tickets rather than creating new ones. However, it does not explicitly name alternative tools or state when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables ticket and contact management via Freshdesk API v2, including listing, searching, and retrieving support tickets and customer contacts.9MIT
- AlicenseAqualityAmaintenanceEnables reading and writing Zendesk tickets, including searching, fetching comments, posting replies and internal notes, setting ticket status, assigning tickets, logging time, and formatting tickets as Markdown issue drafts for handoff to GitLab, GitHub, or Jira.294Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables interaction with Freshdesk API v2 to manage support tickets, contacts, agents, companies, and conversations with built-in authentication, rate limiting, and error handling.10311MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Zendesk to manage tickets, retrieve ticket fields, comments, and priority based on SLA, as well as get unsolved tickets by agent name.1