Skip to main content
Glama
forterro

freshservice-mcp

by forterro

Freshservice MCP Server

Overview

A powerful MCP (Model Context Protocol) server that integrates with Freshservice, enabling AI models to perform IT service management operations. This integration bridge empowers your AI assistants to manage tickets, changes, problems, releases, assets, projects, and more.

Related MCP server: Freshservice MCP Server

Key Features

  • 36 tools organized into 13 independently loadable scopes

  • Dual authentication: per-user OAuth2 (via MCP gateway) with API key fallback

  • Multiple transports: stdio (local), SSE, and streamable-http

  • Dynamic form discovery: auto-discover custom fields for any entity type

  • Scope-based loading: load only the tool modules you need

  • Docker & Helm: ready for Kubernetes deployment

Architecture

Scope

Tools

Description

tickets

manage_ticket, manage_ticket_conversation, manage_service_catalog

Ticket CRUD, conversations, service catalog

changes

manage_change, manage_change_note, manage_change_task, manage_change_time_entry, manage_change_approval

Change requests with full sub-resource support

problems

manage_problem, manage_problem_note, manage_problem_task, manage_problem_time_entry

Problem management

releases

manage_release, manage_release_note, manage_release_task, manage_release_time_entry

Release management

assets

manage_asset, manage_asset_details, manage_asset_relationship

Assets/CMDB

status_page

manage_status_page, manage_maintenance_window

Status pages, maintenance, incidents

departments

manage_department, manage_location

Departments & locations

agents

get_me, manage_agent, manage_agent_group

Identity, agents & groups

requesters

manage_requester, manage_requester_group

Requesters & groups

solutions

manage_solution

Knowledge base

projects

manage_project, manage_project_task

Project management (NewGen)

products

manage_product

Product catalog

misc

manage_canned_response, manage_workspace

Canned responses, workspaces

Plus 2 discovery tools always loaded: discover_form_fields and clear_field_cache.

Quick Start

Local Development (API key + stdio)

FRESHSERVICE_APIKEY=<key> FRESHSERVICE_DOMAIN=yourcompany.freshservice.com freshservice-mcp

Kubernetes / Gateway (OAuth2 + SSE)

helm install freshservice-mcp oci://ghcr.io/forterro/charts/freshservice-mcp \
  --version 0.2.0 \
  --set config.FRESHSERVICE_DOMAIN=yourcompany.freshservice.com

No API key needed — the MCP gateway forwards per-user OAuth2 tokens.

Documentation

Document

Description

Authentication

API key setup, OAuth2 via gateway, creating a Freshservice OAuth app, JWT token structure

Deployment

Local, Docker, Helm chart, client configs (Claude Desktop, VS Code), transports, scopes, troubleshooting

Tools Reference

Complete reference for all 36 tools with actions and parameters

Examples

Example prompts for common operations

License

MIT License. See the LICENSE file for details.

Additional Resources


Available Tools

36 tools
clear_field_cacheB

Clear the cached form-field definitions.

    Args:
        entity_type: Specific entity to clear ('ticket', 'change', …) or omit to clear all.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the direct action ('Clear the cached form-field definitions') and mentions scope via the parameter, but does not disclose side effects (e.g., performance impact on next request), reversibility, or any caveats. This is a significant gap for a tool that modifies cache state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short and front-loaded with the main purpose. The Args section is efficiently structured, though it is formatted as a docstring rather than prose. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and an output schema, the description gives the core purpose and parameter semantics. However, it lacks usage guidance and behavioral transparency, which are important given the absence of annotations. It is minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only parameter names and default, with 0% description coverage. The description compensates by explaining the parameter's meaning ('Specific entity to clear'), providing examples ('ticket', 'change'), and clarifying the omission behavior ('or omit to clear all'). This adds valuable meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Clear the cached form-field definitions') with a specific verb and resource. It distinguishes itself from siblings like discover_form_fields by focusing on cache invalidation rather than discovery, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor any context such as prerequisites or typical invalidation scenarios. It only explains the parameter behavior, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_form_fieldsA

Discover the form-field definitions for an entity type in your Freshservice organisation.

    Returns the list of fields (name, label, type, required, choices…) that
    your org has configured.  Results are cached locally for 1 hour.

    Args:
        entity_type: One of 'ticket', 'change', 'agent', 'requester', 'asset_type'
        force_refresh: Set to true to bypass the cache and re-fetch from Freshservice
    
ParametersJSON Schema
NameRequiredDescriptionDefault
entity_typeYes
force_refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the local caching behavior (1 hour), the force_refresh option to bypass cache, and the fact that results are org-specific. It does not cover error cases or side effects, but for a read-only discovery tool, these key behavioral traits are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an introductory sentence, a returns statement, a cache note, and an Args section. Every sentence adds value; no fluff or redundancy. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers all essential aspects: purpose, parameter semantics, caching behavior, and output summary. The presence of an output schema means return details are already defined elsewhere. No critical information is missing for an agent to correctly select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining both parameters: entity_type with a list of allowed values, and force_refresh with its cache-bypassing effect. This adds significant meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Discover') and resource ('form-field definitions for an entity type'). It distinguishes itself from sibling manage_* tools as a read-only discovery operation, and lists the exact output (fields with name, label, type, required, choices).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool—whenever you need the configured form fields for an entity type—and provides clear context by enumerating valid entity types. However, it does not explicitly state exclusions or mention alternative tools (e.g., clear_field_cache for cache invalidation), so it misses the top tier for usage guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meA

Return the identity of the currently authenticated user.

When an OAuth token is present (forwarded by ContextForge), the tool decodes the JWT payload to extract the user's email, then queries the Freshservice agents API to return the full agent profile. Falls back to GET /api/v2/agents/me when using API key authentication (local dev / stdio).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the behavioral disclosure burden. It transparently explains the internal flow: JWT decoding, querying the Freshservice agents API, and falling back to a different endpoint for API key auth. This gives the agent a clear picture of what happens and what authentication requirements exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. The first sentence immediately states the primary purpose, and the second sentence provides necessary detail about authentication paths. Every sentence adds value without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, empty input schema, and presence of an output schema, the description fully covers what the tool does and how it behaves in different authentication contexts. No critical information is missing for an agent to invoke and understand the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially complete. The description adds context about authentication behavior, but no parameter semantics are needed. A baseline score of 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Return the identity of the currently authenticated user.' It uses a specific verb and resource, and the tool name 'get_me' is reinforced. This distinguishes it from the sibling 'manage_*' tools, which focus on mutations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when each authentication path applies (OAuth token vs. API key fallback), which helps an agent understand expected execution environments. While it doesn't explicitly contrast with alternative tools, no similar sibling exists, so this guidance is sufficient for a simple identity lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_agentC

Unified agent operations.

    Args:
        action: 'create', 'update', 'get', 'list', 'filter', 'get_fields'
        agent_id: Required for get, update
        first_name: MANDATORY for create
        email: Agent email (create)
        query: Filter query string (filter)
        page/per_page: Pagination (list)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
emailNo
queryNo
actionYes
addressNo
agent_idNo
languageNo
per_pageNo
job_titleNo
last_nameNo
time_zoneNo
first_nameNo
occasionalNo
location_idNo
time_formatNo
department_idsNo
work_phone_numberNo
mobile_phone_numberNo
scoreboard_level_idNo
reporting_manager_idNo
background_informationNo
can_see_all_tickets_from_associated_departmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only lists parameter requirements. It fails to mention side effects (e.g., create mutates data), required permissions, error behavior, or whether update replaces or merges fields. This leaves the agent without critical operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and uses a clean Args block that is easy to scan. It avoids redundant restatement of the schema and each line contributes meaningful action-parameter mappings. The opening phrase 'Unified agent operations' is terse but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity—a 22-parameter, multi-action dispatcher—the description is incomplete. It does not enumerate the full set of fields applicable to create/update, nor does it explain the get_fields action or how the output is structured. Despite an output schema, the decision space remains large and under-documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by linking parameters to actions: first_name is MANDATORY for create, agent_id is required for get/update, query is the filter string, and page/per_page handles list pagination. However, the remaining 15+ parameters (e.g., occasional, background_information, department_ids) lack any semantic explanation, so the description only partially compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is a 'Unified agent operations' tool and enumerates concrete actions (create, update, get, list, filter, get_fields), which makes the core purpose evident. It distinguishes the resource as 'agent' from sibling tools like manage_agent_group, but it does not explicitly contrast itself with other manage_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no direct guidance on when to use manage_agent versus the many sibling manage_* tools, nor does it mention exclusions or alternatives. While the action list implies different use cases, there is no explicit context such as 'use get_fields to discover available fields' or 'use manage_agent_group for group-level operations'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_agent_groupC

Manage agent groups.

    Args:
        action: 'create', 'update', 'get', 'list'
        group_id: Required for get, update
        name: Group name (create — MANDATORY)
        description: Group description
        agent_ids: List of agent IDs in the group
        auto_ticket_assign: Auto-assign tickets
        escalate_to: Agent ID for escalation
        unassigned_for: Duration before escalation (e.g. '30m', '1h')
        group_fields: Generic fields dict (update — alternative to explicit params)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
group_idNo
agent_idsNo
descriptionNo
escalate_toNo
group_fieldsNo
unassigned_forNo
auto_ticket_assignNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It discloses action types and some mandatory fields but does not explain side effects, permission requirements, or interactions between parameters such as auto_ticket_assign and escalate_to/unassigned_for.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and uses a clear Args list structure. Each line provides specific parameter information without redundant filler, though it could be slightly more organized for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need not be described. The tool has 9 parameters and no annotations, so the description should explain action-specific constraints and field interactions; it only partially does. Overall it is adequate for a simple CRUD tool but lacks depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all parameters and adds meaningful hints like 'create — MANDATORY', 'alternative to explicit params' for group_fields, and a format example for unassigned_for. However, several parameters remain only partially explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Manage agent groups' and enumerates the supported actions (create/update/get/list), making the tool's purpose clear. It is distinguishable from sibling tools by the explicit 'agent group' resource, though it doesn't directly contrast with similar manage_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 manage_agent or manage_requester_group. It only lists the actions and required parameters, offering no context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_assetC

Unified asset operations.

    Args:
        action: One of 'create', 'update', 'delete', 'delete_permanently',
                'restore', 'get', 'list', 'search', 'filter', 'move',
                'get_types', 'get_type'
        display_id: Asset display ID (get, update, delete, restore, move, details)
        asset_type_id: Asset type ID (create — MANDATORY, get_type)
        name: Asset name (create — MANDATORY)
        asset_tag: Asset tag (e.g. 'ASSET-9')
        impact: 'low', 'medium', or 'high' (default: 'low')
        usage_type: 'permanent' or 'loaner' (default: 'permanent')
        description: Asset description
        user_id: User ID (Used By)
        location_id: Location ID
        department_id: Department ID
        agent_id: Agent ID (Managed By)
        group_id: Group ID (Managed By Group)
        assigned_on: ISO date when assigned
        workspace_id: Workspace ID (create, list, move)
        type_fields: Asset-type-specific fields dict
        asset_fields: Generic update fields dict (update — alternative to explicit params)
        search_query: Search by name/tag/serial (search)
        filter_query: Filter expression (filter)
        include: Include extra data, e.g. 'type_fields' (list, get)
        order_by: Sort field (list)
        order_type: 'asc' or 'desc' (list)
        trashed: Include trashed assets (list, search)
        page: Page number
        per_page: Items per page
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
actionYes
impactNo
includeNo
trashedNo
user_idNo
agent_idNo
group_idNo
order_byNo
per_pageNo
asset_tagNo
display_idNo
order_typeNo
usage_typeNo
assigned_onNo
descriptionNo
location_idNo
type_fieldsNo
asset_fieldsNo
filter_queryNo
search_queryNo
workspace_idNo
asset_type_idNo
department_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It does reveal that delete and delete_permanently are distinct actions (implying soft vs hard delete) and that restore exists, but it fails to clarify permissions, side effects, error behavior, or what responses look like. Given the tool's complexity and destructive potential, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The parameter list is long but each line carries useful scoping information. The opening phrase 'Unified asset operations' is too vague, and the structure fails to group params by action or provide a quick reference. It is not conciseness but rather an unstructured dump that could be better organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 25 parameters and 11 actions, this description is under-specified. It lacks an action-by-action requirements matrix, no examples of valid payloads, no explanation of how search vs filter vs list differ, and no mention of pagination or output behavior. While an output schema exists, the description still leaves too much ambiguity for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does add meaning by stating required params for create, including examples (e.g., 'ASSET-9'), and indicating which actions each param applies to. However, some parameters (e.g., filter_query, order_by, type_fields) receive only minimal or no semantic explanation, leaving the agent with partial understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is a unified asset operations tool with an explicit action enum covering CRUD, search, list, move, and type operations. However, it does not differentiate from sibling tools like manage_asset_details or manage_asset_relationship, so the line between core asset management and these auxiliary tools is unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The only usage hints are per-parameter parentheticals like 'create — MANDATORY', but there is no consolidated action matrix or explicit mention of sibling tools. For a dispatcher with 11 actions, the agent is left to infer parameter-action mappings from scattered comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_asset_detailsB

Retrieve asset sub-resources.

    Args:
        action: 'components', 'assignment_history', 'requests', 'contracts'
        display_id: The asset display ID
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
display_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It does indicate read-only behavior via 'Retrieve', but it does not specify permissions, error handling, pagination, or whether the four actions are mutually exclusive. This leaves important operational details undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loaded with the primary verb, and contains no filler. The Args block is minimal and directly relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and sparse schema descriptions, the description should provide more context about what each sub-resource represents and when each action is appropriate. It also does not mention the output structure or how the display_id is used beyond a generic statement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds value by enumerating allowed values for action and providing a brief definition for display_id. This is sufficient for a simple two-parameter tool, though deeper meaning of each action is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieve') and resource ('asset sub-resources'), and lists the exact sub-resource types ('components', 'assignment_history', 'requests', 'contracts'). This clearly distinguishes it from sibling tools like manage_asset and manage_asset_relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The description does not mention exclusions, prerequisites, or how to choose between the four actions. It simply states what it does without contextualizing the use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_asset_relationshipB

Manage asset relationships.

    Args:
        action: 'list_for_asset', 'list_all', 'get', 'create', 'delete',
                'get_types', 'job_status'
        display_id: Asset display ID (list_for_asset)
        relationship_id: Relationship ID (get)
        relationship_ids: List of rel IDs to delete (delete)
        relationships: List of relationship dicts for bulk create (create).
            Each dict: {relationship_type_id, primary_id, primary_type,
                        secondary_id, secondary_type}
        job_id: Job ID returned by async operations (job_status)
        page: Page number (list_all)
        per_page: Items per page (list_all)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
actionYes
job_idNo
per_pageNo
display_idNo
relationshipsNo
relationship_idNo
relationship_idsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits, but it only hints at async operations (job_id) and bulk create. It does not mention side effects, mutation persistence, permissions, error behavior, or what actually happens on delete/create beyond the action names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, scannable parameter list with a one-line purpose up front. It avoids redundancy, though the opening sentence is generic and the list format is dense, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 actions and 8 parameters, but the description only explains parameters per action and does not explicitly define the behavior or return semantics of each action. While an output schema exists (covering return values), the lack of action definitions leaves gaps in understanding the full functionality, especially for an agent deciding whether to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the sole source of parameter meaning. It does a good job mapping each parameter to its relevant action (e.g., display_id for list_for_asset, relationship_ids for delete) and gives the structure for the relationships dict. However, it omits details like required fields within the relationship dict or type specifics for primary_id/secondary_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Manage asset relationships' and enumerates specific actions (list_for_asset, list_all, get, create, delete, get_types, job_status), clarifying the tool's scope. However, it does not explicitly distinguish itself from sibling tools like manage_asset or manage_asset_details, so it's not a full 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as manage_asset or manage_asset_details. It only lists parameters and their associated actions, without any context on use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_canned_responseB

Manage canned responses.

    Args:
        action: 'list', 'get', 'list_folders', 'get_folder'
        response_id: Required for get
        folder_id: Required for get_folder
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
folder_idNo
response_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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 lists actions and parameter requirements, without addressing whether operations are read-only, require special permissions, or have side effects. This is a significant gap for a tool named 'manage'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is minimal and well-structured, with a summary line and a clean Args block. Every line contributes necessary information without waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic actions and parameter requirements but lacks context on operation semantics, return behavior, or edge cases. The presence of an output schema reduces the need to describe returns, but the description still leaves behavioral questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates for the schema's lack of descriptions by explicitly stating that response_id is required for 'get' and folder_id for 'get_folder', providing conditional requirements not evident from the schema. It also enumerates the valid action values, adding essential meaning beyond the schema structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (canned responses) and lists specific actions (list, get, list_folders, get_folder), making its purpose clear. However, the verb 'manage' is generic and does not differentiate from many sibling manage_* tools beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or conditions. The listed actions imply certain use cases, but there is no mention of when not to use it or which sibling tool might be more appropriate for other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_changeA

Unified change operations.

    Args:
        action: One of 'create', 'update', 'delete', 'get', 'list', 'filter',
                'close', 'move', 'get_fields'
        change_id: Required for get, update, delete, close, move
        requester_id: Initiator ID (create — MANDATORY)
        subject: Change subject (create — MANDATORY)
        description: HTML description (create — MANDATORY)
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent
        impact: 1=Low, 2=Medium, 3=High
        status: 1=Open, 2=Planning, 3=Awaiting Approval, 4=Pending Release,
                5=Pending Review, 6=Closed
        risk: 1=Low, 2=Medium, 3=High, 4=Very High
        change_type: 1=Minor, 2=Standard, 3=Major, 4=Emergency
        group_id: Agent group ID
        agent_id: Agent ID
        department_id: Department ID
        category: Category string
        sub_category: Sub-category string
        item_category: Item category string
        planned_start_date: ISO datetime
        planned_end_date: ISO datetime
        reason_for_change: Planning field — reason (text/HTML)
        change_impact: Planning field — impact analysis (text/HTML)
        rollout_plan: Planning field — rollout plan (text/HTML)
        backout_plan: Planning field — backout plan (text/HTML)
        custom_fields: Custom fields dict
        assets: Assets list (associated CIs), e.g. [{"display_id": 1}]
        impacted_services: Impacted services list, e.g. [{"display_id": 167456}]
            NOTE: This is different from 'assets'. Assets = associated CIs,
            impacted_services = business services affected by the change.
        maintenance_window_id: Maintenance Window ID to associate with
            this Change. On create, applied via follow-up PUT. On update,
            sent as {"maintenance_window": {"id": <value>}}.
            Use this to link a Change to an existing Maintenance Window.
        change_result_explanation: Result explanation (close)
        workspace_id: Target workspace (move / list / filter)
        query: Filter query string (list/filter)
        view: View name or ID (list)
        sort: Sort field (list)
        order_by: 'asc' or 'desc' (list)
        updated_since: ISO datetime (list)
        page: Page number
        per_page: Items per page 1-100
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
riskNo
sortNo
viewNo
queryNo
actionYes
assetsNo
impactNo
statusNo
subjectNo
agent_idNo
categoryNo
group_idNo
order_byNo
per_pageNo
priorityNo
change_idNo
change_typeNo
descriptionNo
backout_planNo
requester_idNo
rollout_planNo
sub_categoryNo
workspace_idNo
change_impactNo
custom_fieldsNo
department_idNo
item_categoryNo
updated_sinceNo
planned_end_dateNo
impacted_servicesNo
reason_for_changeNo
planned_start_dateNo
maintenance_window_idNo
change_result_explanationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses some non-obvious behaviors, such as the maintenance_window_id being applied via follow-up PUT on create and the specific payload format on update, and clarifies the difference between assets and impacted_services. However, it does not describe side effects, permissions, or error behavior, which would be expected for a mutation-heavy tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a well-organized docstring listing 35 parameters in a consistent format with notes where needed. Although lengthy, the information density is high and the structure is easy to scan. It could be improved by adding a brief overview at the top, but it is appropriately structured for the parameter count.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all 35 parameters and includes action-specific requirements and special notes, making it quite complete for a complex tool. However, some actions like 'filter' and 'get_fields' are not explained in depth, and there is no guidance on query syntax or output expectations (though an output schema exists). Overall, it is robust but leaves a few gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage, so the description is the only source of parameter meaning. It provides enum mappings for priority, impact, status, risk, and change_type, indicates which parameters are mandatory for create, gives examples for assets and impacted_services, and explains maintenance_window_id's special handling. This highly compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Unified change operations' and lists nine actions (create, update, delete, get, list, filter, close, move, get_fields), making it clear that this tool manages change entities. It is distinguished from siblings like manage_change_note and manage_change_task by focusing on the core change object, but the description could be more explicit about the domain and differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides parameter annotations that indicate which parameters are required for which actions (e.g., change_id for get/update/delete/close/move), which gives some usage guidance within the tool. However, it lacks explicit guidance on when to choose this tool over sibling tools or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_change_approvalA

Manage approvals and approval groups for a change.

    Args:
        action: 'list_groups', 'create_group', 'update_group', 'cancel_group',
                'list', 'view', 'remind', 'cancel', 'set_chain_rule'
        change_id: The change ID
        approval_id: Approval ID (view, remind, cancel)
        approval_group_id: Approval group ID (update_group, cancel_group)
        name: Group name (create_group, update_group)
        approver_ids: List of agent IDs (create_group, update_group)
        approval_type: 'everyone' or 'any' (create_group, update_group)
        approval_chain_type: 'parallel' or 'sequential' (set_chain_rule)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
change_idYes
approval_idNo
approver_idsNo
approval_typeNo
approval_group_idNo
approval_chain_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral impact; it lists action names and parameter bindings but does not disclose side effects (e.g., what cancel/remind do), permissions required, or whether actions are destructive. The parameter-action mapping is useful but insufficient for transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, well-structured docstring: a one-line summary followed by an aligned parameter list with inline action applicability. No filler or redundancy; every line contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, 9-action dispatcher with no annotations, the description covers action-to-parameter mapping but lacks explanation of each action's semantics (e.g., what 'remind' or 'set_chain_rule' actually do), prerequisites, and expected behavior. The presence of an output schema mitigates return-value concerns, but the description still leaves behavioral gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning absent from the schema by mapping each parameter to the actions that use it (e.g., 'approval_id: Approval ID (view, remind, cancel)') and enumerating valid string values for action, approval_type, and approval_chain_type. However, it does not specify conditional requirements or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with 'Manage approvals and approval groups for a change', a specific verb+resource, and enumerates nine distinct actions (list_groups, create_group, update_group, etc.), making it clearly distinguishable from sibling tools like manage_change_task or manage_change_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by scoping the tool to approvals and approval groups and listing the supported actions, but it does not explicitly state when to prefer this tool over alternatives or mention exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_change_noteA

Manage notes on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        note_id: Required for view, update, delete
        body: Note body HTML (create, update)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
actionYes
note_idNo
change_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses that note_id is required for view/update/delete and that body is HTML used only for create/update. However, it does not discuss side effects of delete/update, permissions, or return behavior, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, starts with the purpose, and uses a structured Args block. Every line provides value, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a CRUD tool with an output schema, the description adequately covers actions and parameters. It omits details like pagination for list or error handling, but these are likely addressed by the output schema and the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage, and the description compensates well: action lists the allowed values, change_id is identified, note_id is tied to specific actions, and body is described as HTML for create/update. This adds significant meaning beyond the raw schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages notes on a change and enumerates the supported actions (create, view, list, update, delete). It distinguishes from sibling tools by targeting change notes specifically, rather than tasks, time entries, or release notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's scope is clear from 'on a change' and the action parameter provides a set of operations. It doesn't explicitly name alternatives or exclusions, but the resource context makes its use case unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_change_taskA

Manage tasks on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        task_id: Required for view, update, delete
        title: Task title (create)
        description: Task description (create)
        task_status: Task status int (create/update)
        task_priority: Task priority int (create/update)
        assigned_to_id: Agent ID to assign (create/update)
        task_group_id: Group ID (create/update)
        due_date: ISO date (create/update)
        task_fields: Dict of fields (update — alternative to individual params)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
actionYes
task_idNo
due_dateNo
change_idYes
descriptionNo
task_fieldsNo
task_statusNo
task_group_idNo
task_priorityNo
assigned_to_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for behavioral disclosure. It only provides parameter usage notes and does not mention side effects, permissions, reversibility, or return behavior. For a mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a summary line followed by an args list, which is easy to scan. Each parameter line is concise and informative. It is slightly verbose but every line adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 11 parameters and 5 actions, the description provides solid parameter guidance. However, it lacks behavioral context (e.g., what happens on delete) and does not explain return values, though an output schema exists. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema by explaining which parameters are for which actions (e.g., task_id required for view/update/delete, title for create) and noting task_fields as an alternative to individual params for update. This compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage tasks on a change' and enumerates specific actions (create, view, list, update, delete), providing a specific verb+resource combination. It distinguishes from sibling tools like manage_change or manage_change_note by focusing on tasks within a change.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action list implies when to use the tool (e.g., to create a task) but there is no explicit guidance on when to choose this over alternatives or any exclusions. The description does not mention prerequisites or alternative tools, so usage is only implied rather than clearly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_change_time_entryA

Manage time entries on a change.

    Args:
        action: 'create', 'view', 'list', 'update', 'delete'
        change_id: The change ID
        time_entry_id: Required for view, update, delete
        time_spent: Format "hh:mm" (create/update)
        note: Work description (create/update)
        te_agent_id: Agent ID who did the work (create)
        executed_at: ISO datetime (create)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
actionYes
change_idYes
time_spentNo
executed_atNo
te_agent_idNo
time_entry_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It adds useful context such as which parameters are required per action (time_entry_id for view/update/delete) and value formats (hh:mm, ISO datetime). However, it does not disclose side effects, permissions, or error handling, and the action semantics are only inferred from the action names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses a structured Args list that is compact and front-loaded with purpose. It packs parameter semantics without unnecessary prose, although it is more detailed than a one-line summary. Every line adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, 5 actions, and zero schema descriptions, the description covers all parameter purposes and per-action requirements. The existence of an output schema reduces the need to explain return values, and the tool's CRUD nature is adequately captured. Minor gaps remain around list pagination and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description compensates thoroughly by explaining each parameter's role, when it is required (e.g., te_agent_id for create), and expected formats (time_spent as 'hh:mm', executed_at as ISO datetime). This goes well beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage time entries on a change' and enumerates supported CRUD actions (create/view/list/update/delete), making the tool's purpose distinct from sibling tools like manage_change_task or manage_problem_time_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for managing time entries on a change but does not explicitly state when to prefer it over alternative time entry tools for problems or releases. No exclusions or alternative references are provided, leaving guidance at an implied level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_departmentB

Manage Freshservice departments.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'get_fields'.
        department_id: Department ID (required for get/update/delete).
        name: Department name (required for create).
        description: Description text.
        head_user_id: User ID of department head.
        prime_user_id: User ID of department prime contact.
        domains: List of email domains for the department.
        custom_fields: Custom field values dict.
        query: Filter query string for 'filter' action
               (e.g. "name:'Engineering'").
        page/per_page: Pagination.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
queryNo
actionYes
domainsNo
per_pageNo
descriptionNo
head_user_idNo
custom_fieldsNo
department_idNo
prime_user_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing side effects and behavior. It only lists actions and parameters without explaining consequences of delete/update, permission requirements, rate limits, or whether changes are reversible. The read-only actions (list/get/get_fields) are not differentiated from mutating ones behaviorally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with a one-sentence purpose followed by a parameter list. It avoids unnecessary prose, but the parameter list is unstructured and could benefit from grouping or bolding. Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, 7 actions) and no annotations, the description is minimal. It covers all parameters and actions but lacks behavioral context such as how actions differ, pagination defaults, error handling, or what get_fields returns. The output schema exists, so return values are covered, but the description doesn't guide selection between actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description adds meaning to every parameter: it enumerates valid action values, marks required parameters for specific actions, provides a query format example, and clarifies that domains is a list and custom_fields is a dict. This goes beyond the bare schema, though some descriptions are still terse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Freshservice departments) and enumerates specific actions (list, get, create, update, delete, filter, get_fields), making it clear this is a CRUD tool for departments. However, the verb 'Manage' is generic and it does not differentiate from sibling manage_* tools beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides some context by indicating which parameters are required for which actions (e.g., department_id for get/update/delete, name for create), but it does not explicitly state when to use this tool versus other manage_* tools or when to prefer 'filter' over 'list'. Usage is largely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_locationB

Manage Freshservice locations.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete', 'filter'.
        location_id: Location ID (required for get/update/delete).
        name: Location name (required for create).
        line1/line2/city/state/country/zipcode: Address fields.
        contact_name: Contact person name.
        email: Contact email.
        phone: Contact phone.
        parent_location_id: Parent location ID for hierarchical locations.
        query: Filter query for 'filter' action (e.g. "name:'New York'").
        page/per_page: Pagination.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameNo
pageNo
emailNo
line1No
line2No
phoneNo
queryNo
stateNo
actionYes
countryNo
zipcodeNo
per_pageNo
location_idNo
contact_nameNo
parent_location_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It lists actions like delete and create but does not warn about destructive side effects, permission requirements, or whether operations are reversible. The lack of behavioral context is a significant gap for a mutation-capable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a structured docstring listing parameters with concise explanations. It is appropriately sized for a 16-parameter tool, with a clear front-loaded purpose statement followed by a logically grouped Args list. Slightly verbose but each line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex with multiple actions and 16 parameters, and the description covers the basic action-parameter mapping well. However, it lacks details on error handling, permissions, output behavior beyond what the output schema provides, and nuanced usage scenarios. Given the output schema exists, return values are covered, but behavioral expectations and limitations are under-explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description compensates excellently by explaining each parameter's role, including which actions require which parameters (e.g., 'location_id required for get/update/delete', 'query for filter'). It also clarifies grouping of address fields and hierarchical location semantics, adding meaning far beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Manage Freshservice locations' and immediately enumerates the supported actions (list, get, create, update, delete, filter), making the tool's purpose clear. However, it does not explicitly distinguish itself from sibling tools, though the name 'manage_location' already differentiates it by resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., manage_department, manage_asset). It lists actions but does not mention context, prerequisites, or alternatives. The only implicit guidance is the resource name, but the description fails to explicitly say 'use this for location operations'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_maintenance_windowA

Manage Freshservice Maintenance Windows.

    Maintenance Windows are time-based windows used to schedule planned
    maintenance. They can be associated with Changes and are REQUIRED
    to publish a maintenance on a Status Page.

    ONE-STOP WORKFLOW — Create MW + associate Change + publish on Status Page:
        Call action='create' with:
          - name, description, start_time, end_time (MW fields)
          - change_id (auto-associates MW with the Change)
          - impacted_services (triggers auto-publish on Status Page)

        This single call will:
          a) Create the Maintenance Window
          b) Associate it with the Change (if change_id provided)
          c) Publish it on the Status Page (if impacted_services provided)
          d) Return MW details, association status, and Status Page maintenance

        impacted_services format: [{"id": <service_component_id>, "status": N}]
          Status: 1=Operational, 5=Under maintenance, 10=Degraded,
                  20=Partial outage, 30=Major outage
        To find service_component IDs, use manage_status_page
          action='list_components'.

        ALTERNATIVE: You can also do each step separately:
          - manage_maintenance_window create (without impacted_services)
          - manage_change update with maintenance_window_id
          - manage_status_page create_maintenance with maintenance_window_id

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        maintenance_window_id: MW ID (required for get/update/delete).
        change_id: Change ID — if provided on 'create', the new MW
            is automatically associated with this Change.
        name: MW name (required for create).
        description: MW description.
        start_time: ISO datetime — window start (required for create).
        end_time: ISO datetime — window end (required for create).
        workspace_id: Workspace ID (required for create; auto-discovered
            if omitted).
        alert_suppression: Suppress alerts during window (default false).
        impacted_services: If provided on 'create', auto-publishes a
            maintenance on the Status Page after creating the MW.
            Format: [{"id": <service_component_id>, "status": <int>}]
            Status: 1=Operational, 5=Under maintenance, 10=Degraded,
                    20=Partial outage, 30=Major outage.
        notifications: Status Page notification triggers (optional).
            Format: [{"trigger": N, "options": {"value": V}}]
            Trigger: 1=On start, 2=Before start, 3=On complete.
        is_private: Mark the Status Page maintenance as private.
        page/per_page: Pagination (list).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
actionYes
end_timeNo
per_pageNo
change_idNo
is_privateNo
start_timeNo
descriptionNo
workspace_idNo
notificationsNo
alert_suppressionNo
impacted_servicesNo
maintenance_window_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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 transparently discloses the create-side effects: auto-association with a Change, auto-publishing on a Status Page, and workspace auto-discovery. It also mentions that the call returns MW details, association status, and Status Page maintenance. However, it does not describe update/delete behaviors (e.g., whether delete is irreversible) or any permission/rate-limit constraints, which are significant gaps for a management tool with multiple actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear sections (purpose, ONE-STOP WORKFLOW, ALTERNATIVE, Args). It is front-loaded with the core concept. Some redundancy exists, such as repeating the impacted_services format in two places, but every sentence adds value for a tool with 14 parameters. Minor conciseness penalty for the repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, multiple actions, output schema), the description covers the primary create workflow, alternatives, and parameter semantics thoroughly. The output schema handles return-value documentation. The main gap is the lack of detail on 'list', 'get', 'update', and 'delete' action specifics, but the overall context is complete enough for an agent to select and invoke the tool correctly for the most common create scenario.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully by defining every parameter, including formats and requirements. It specifies required params for create (name, start_time, end_time), explains impacted_services with status codes, and details the notifications format with trigger values. This is exemplary parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Manage Freshservice Maintenance Windows' and clearly explains what Maintenance Windows are (time-based windows for scheduled maintenance, required for Status Page publishing). It distinguishes itself from siblings like manage_change and manage_status_page by detailing the one-stop workflow that creates, associates, and publishes in a single call, making its unique purpose obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it presents the ONE-STOP WORKFLOW as the primary method and then an ALTERNATIVE step-by-step approach. It also instructs the agent to use manage_status_page action='list_components' to find service component IDs. This is clear when-to-use and when-not-to-use guidance with named alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_problemB

Manage Freshservice problems.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'close', 'restore', 'get_fields',
                'associate_tickets', 'dissociate_ticket', 'list_tickets'.
        problem_id: Problem ID (required for get/update/delete/close/restore
                    and ticket association actions).
        requester_id: Requester user ID (required for create).
        subject: Problem subject (required for create).
        description: HTML description (required for create).
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent (required for create).
        status: 1=Open, 2=Change Requested, 3=Closed (required for create).
        impact: 1=Low, 2=Medium, 3=High (required for create).
        due_by: ISO datetime due date (required for create).
        agent_id: Assigned agent ID.
        group_id: Assigned group ID.
        department_id: Department ID.
        known_error: Mark as known error (boolean).
        category/sub_category/item_category: Problem categorization.
        assets: List of associated assets [{"display_id": N}].
        analysis_fields: Analysis fields dict (problem_cause, symptom, impact).
        custom_fields: Custom fields dict.
        ticket_ids: List of ticket IDs to associate (for 'associate_tickets').
        ticket_id: Single ticket ID (for 'dissociate_ticket').
        query: Filter query for 'filter' action
               (e.g. "priority:3 AND status:1").
        page/per_page: Pagination.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
actionYes
assetsNo
due_byNo
impactNo
statusNo
subjectNo
agent_idNo
categoryNo
group_idNo
per_pageNo
priorityNo
ticket_idNo
problem_idNo
ticket_idsNo
descriptionNo
known_errorNo
requester_idNo
sub_categoryNo
custom_fieldsNo
department_idNo
item_categoryNo
analysis_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of disclosing side effects and behavioral traits. It lists actions like 'delete' and 'close' but does not explain consequences (e.g., irreversibility, status transitions, permission needs). Some parameter-level details like 'known_error: Mark as known error' add minor behavior context, but overall the description lacks critical behavioral information for a mutation-heavy tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a clear Args list, front-loaded with the action enumeration. It is lengthy due to 24 parameters, but every line adds necessary information. The formatting is consistent and scannable, though it repeats 'required for create' multiple times, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (24 parameters, many actions) and the presence of an output schema, the description is fairly complete. It specifies which parameters are required for which actions, provides value enums for priority/status/impact, and gives a filter query example. Minor gaps exist (e.g., get_fields action not explained, no detail on pagination behavior), but the essentials are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero description coverage, so the description compensates well by explaining each parameter's purpose and value mappings (e.g., priority 1=Low, 2=Medium, status values, query example, assets format, analysis_fields contents). It provides clear, actionable semantics beyond the bare schema definitions, though a few parameters like custom_fields remain generic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Manage Freshservice problems' and then enumerates a comprehensive list of actions (list, get, create, update, delete, filter, close, restore, etc.), making it clear that this tool handles a wide range of problem management operations. While 'manage' is generic, the action list provides specific resource/operation clarity and distinguishes it from sibling tools like manage_problem_note or manage_problem_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the action list and parameter requirements (e.g., 'problem_id required for get/update/delete/close/restore'), but there is no explicit guidance on when to choose this tool over related siblings such as manage_problem_note or manage_ticket. The description does not state exclusions or alternatives, so it provides only implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_problem_noteA

Manage notes on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        note_id: Note ID (required for get/update/delete).
        body: Note body HTML (required for create/update).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
actionYes
note_idNo
problem_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only enumerates parameters and actions. It does not mention side effects like deletion consequences, permissions, or modifications to the problem record, making behavioral expectations unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured as a docstring with a clear Args list. Every line carries essential information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the straightforward CRUD nature, the description covers the essential parameter semantics and actions. It lacks some context like prerequisites or error handling, but overall is adequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the schema by listing allowed action values, clarifying required fields per action (note_id for get/update/delete, body HTML for create/update), and specifying problem_id as always required. This compensates fully for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as notes on a Freshservice problem. However, it uses the generic verb 'manage' without specifying the exact operations until the Args section, and it lacks explicit differentiation from sibling tools like manage_problem_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 manage_problem or manage_problem_task. The description only lists parameters and actions, with no context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_problem_taskA

Manage tasks on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        task_id: Task ID (required for get/update/delete).
        agent_id: Assigned agent ID.
        title: Task title (required for create).
        description: Task description.
        status: 1=Open, 2=In Progress, 3=Completed.
        due_date: ISO datetime due date.
        notify_before: Hours to notify before due date.
        group_id: Assigned group ID.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
actionYes
statusNo
task_idNo
agent_idNo
due_dateNo
group_idNo
problem_idYes
descriptionNo
notify_beforeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It discloses that the action parameter controls the operation and provides required fields per action, status mapping, and date format. It does not mention side effects such as whether deletions are permanent, permission requirements, or list pagination, leaving some behavioral ambiguity for a CRUD tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a clean docstring with an Args block. It is reasonably concise, with each line earning its place, though the indentation and repeated 'required' notes add minor bulk. The primary purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters and 5 possible actions, the description covers parameter semantics and action-specific requirements well. It does not address list pagination, error handling, or permission prerequisites, but the presence of an output schema covers return values. This is a solid, adequate description for a CRUD tool in this tool family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only types and titles with zero descriptions. The description compensates thoroughly by enumerating valid action values, specifying which parameters are required per action, mapping status integers to labels, defining due_date as ISO datetime, and explaining notify_before in hours. This adds essential meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages tasks on a Freshservice problem, and the action parameter enumerates list/get/create/update/delete, making the CRUD purpose explicit. It distinguishes from sibling tools like manage_problem_note and manage_problem_time_entry by focusing specifically on tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides action-specific parameter requirements (e.g., task_id required for get/update/delete, title required for create), which gives clear context for invocation. However, it does not explicitly state when to use this tool versus other sibling task management tools, and there are no exclusionary or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_problem_time_entryA

Manage time entries on a Freshservice problem.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        problem_id: Problem ID (always required).
        time_entry_id: Time entry ID (required for get/update/delete).
        agent_id: Agent who performed the work.
        note: Description of work performed.
        time_spent: Time in "hh:mm" format (required for create).
        executed_at: ISO datetime when work was performed.
        task_id: Associated task ID.
        billable: Whether the time is billable.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
actionYes
task_idNo
agent_idNo
billableNo
problem_idYes
time_spentNo
executed_atNo
time_entry_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose safety/mutation characteristics. It does explain action-specific required parameters and formats, but it does not state whether delete is permanent, permission requirements, rate limits, or any side effects; this leaves important behavioral ambiguity for a mutating CRUD tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact docstring: a one-line purpose followed by a flat argument list. Each line adds a unique semantic: allowed action values, required IDs per operation, formats, and associations. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter CRUD tool with no annotations but an output schema, the description covers all input parameters and per-action dependencies; it lacks explicit examples or error/edge-case guidance, but the provided action/field matrix is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates fully by defining all nine parameters, including value domains (action choices), formatting ('hh:mm', ISO datetime), and action-specific requirements. This is essential semantics beyond the schema's bare names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Manage') with a clear resource ('time entries on a Freshservice problem') and enumerates supported actions, making its scope distinct from sibling tools like manage_change_time_entry or manage_problem_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage for problem time-entry CRUD operations and defines when each action requires additional arguments (e.g., time_entry_id for get/update/delete, time_spent for create), but it never explicitly contrasts with sibling time-entry tools or states when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_productA

Unified product operations.

    Args:
        action: 'create', 'update', 'get', 'list'
        product_id: Required for get, update
        name: Product name (create — MANDATORY)
        asset_type_id: Asset type ID (create — MANDATORY)
        manufacturer: Manufacturer name
        status: Product status (str or int)
        mode_of_procurement: e.g. 'buy', 'lease'
        depreciation_type_id: Depreciation type ID
        description: HTML description
        description_text: Plain text description
        page/per_page: Pagination (list)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
actionYes
statusNo
per_pageNo
product_idNo
descriptionNo
manufacturerNo
asset_type_idNo
description_textNo
mode_of_procurementNo
depreciation_type_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral disclosure. The action names (create/update/get/list) imply mutation or reads, but the description does not disclose side effects, permissions, reversibility, or response behavior. The mandatory-field notes are parameter semantics, not behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured as an Args list. Each line communicates a distinct piece of information without redundancy. The 'Unified product operations' opener is slightly generic, but the overall length is appropriate for a multi-action tool with 12 parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a CRUD tool with 12 parameters and no annotations, the description covers parameter usage well but omits broader context: it never states whether updates are partial or full, whether actions require special permissions, or how this tool relates to alternatives. An output schema exists, so return-value details are not required, but actionable guidance for tool selection and side-effect expectations is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains every parameter's role, gives mandatory flags ('create — MANDATORY'), notes action-dependent requirements, distinguishes HTML vs plain-text description, and provides examples ('buy', 'lease'). This adds substantial meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Unified product operations' and enumerates the supported actions ('create', 'update', 'get', 'list'), making it clear that this is a CRUD-style tool for products. It is distinct from the many sibling 'manage_*' tools because it names the product resource, but the term 'Unified' adds little specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Args list gives concrete usage context: which parameters are required for which actions (e.g., product_id for get/update, name and asset_type_id mandatory for create, pagination for list). It does not explicitly mention when not to use this tool or name alternatives, but the action-specific requirements are clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_projectA

Manage Freshservice Projects (NewGen).

    Projects let you plan, prioritize, manage, and track work within
    the service desk. You can associate tickets, changes, problems,
    and assets to projects.

    Args:
        action: One of 'create', 'update', 'get', 'list', 'delete',
                'archive', 'restore', 'get_fields', 'get_templates',
                'add_members', 'get_memberships',
                'create_association', 'get_associations', 'delete_association',
                'get_versions', 'get_sprints'.
        project_id: Project ID (required for most actions except create,
            list, get_fields, get_templates).
        name: Project name (create — MANDATORY, max 255 chars).
        description: Project description (HTML or plain text).
        key: Project key — starts with letter, letters+numbers, max 10 chars.
            Auto-generated from name if omitted on create.
        project_type: 0=Software, 1=Business (create — MANDATORY).
        status_id: 1=Yet to start, 2=In Progress, 3=Completed.
        priority_id: 1=Low, 2=Medium, 3=High, 4=Urgent.
        manager_id: User ID of the project manager.
        start_date: Start date (yyyy-mm-dd).
        end_date: End date (yyyy-mm-dd).
        visibility: 0=Private, 1=Public (default 1).
        sprint_duration: Sprint duration in days (default 14).
        custom_fields: Custom fields dict.
        project_template_id: Template ID (create only).
        members: List of members to add (add_members).
            Format: [{"email": "user@example.com", "role": 1}]
            role: 1 or 2 (project admin vs member).
        module_name: Association module — 'tickets', 'problems',
            'changes', or 'assets' (create/get/delete_association).
        ids: List of IDs to associate (create_association).
        association_id: Entity ID to dissociate (delete_association).
        filter: Filter for list — 'completed', 'incomplete', 'archived',
            'open', 'in_progress'. Default shows open + completed.
        page/per_page: Pagination (list, max 100 per page).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
keyNo
nameNo
pageNo
actionYes
filterNo
membersNo
end_dateNo
per_pageNo
status_idNo
manager_idNo
project_idNo
start_dateNo
visibilityNo
descriptionNo
module_nameNo
priority_idNo
project_typeNo
custom_fieldsNo
association_idNo
sprint_durationNo
project_template_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It lists actions like delete, archive, and restore, but does not disclose side effects, irreversibility, permission requirements, or rate limits. The parameter-focused text adds constraints and defaults, but stops short of explaining the consequences of actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but necessarily so, given the tool's 22 parameters and 16 actions. It is well-structured with a clear 'Args:' list and each entry adds value. It could be slightly more concise, but overall it is organized and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description is remarkably complete: it covers all actions, required vs. optional parameters, defaults, filters, pagination limits, and data formats. It also clarifies association modules and member role semantics. The presence of an output schema means return values needn't be detailed here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides exhaustive parameter semantics beyond the input schema: types, mandatory flags, max lengths, defaults, formats, and action-specific applicability. For example, it specifies that key auto-generates from name, visibility defaults to 1, and members follow a specific email/role structure. This fully compensates for the schema's 0% description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool as a comprehensive manager for Freshservice Projects, enumerating 16 distinct actions from create to delete and associations. It explicitly scopes the resource to 'Projects (NewGen)' and distinguishes from sibling tools like manage_project_task by focusing solely on project-level operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives detailed usage context, explaining which actions exist and which parameters are required for each (e.g., project_id required for most actions except create, list, get_fields, get_templates). It provides defaults and filters, but does not explicitly mention alternative sibling tools or when to avoid this tool, so it lacks the explicit exclusion guidance of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_project_taskA

Manage Freshservice Project Tasks (NewGen).

    Tasks organize project work — epics, user stories, subtasks, etc.
    Each task has a type, status, priority, assignee, and can be linked
    to sprints, versions, and parent tasks.

    Args:
        action: One of 'create', 'update', 'get', 'list', 'filter',
                'delete', 'get_task_types', 'get_task_type_fields',
                'get_task_statuses', 'get_task_priorities',
                'create_note', 'list_notes', 'update_note', 'delete_note',
                'create_association', 'get_associations', 'delete_association'.
        project_id: Project ID (required for all actions).
        task_id: Task ID (required for get/update/delete and note/association ops).
        title: Task title (create — MANDATORY).
        description: Task description (HTML or plain text).
        type_id: Task type ID — obtain via get_task_types (create — MANDATORY).
        status_id: Task status ID — obtain via get_task_statuses.
        priority_id: Task priority ID — obtain via get_task_priorities.
        assignee_id: User ID to assign the task to.
        reporter_id: User ID of the reporter (defaults to creator).
        parent_id: Parent task/epic ID for subtasks.
        planned_start_date: ISO datetime (yyyy-mm-ddThh:mm:ssZ).
        planned_end_date: ISO datetime (yyyy-mm-ddThh:mm:ssZ).
        planned_effort: Effort string, e.g. '1w 2d 3h 4m'.
        story_points: Story points for the task.
        sprint_id: Sprint ID — obtain via manage_project get_sprints.
        version_id: Version ID — obtain via manage_project get_versions.
        custom_fields: Custom fields dict.
        note_id: Note ID (update_note / delete_note).
        content: Note content — HTML (create_note / update_note).
        module_name: Association module — 'tickets', 'problems',
            'changes', or 'assets' (association operations).
        ids: Entity IDs to associate (create_association).
        association_id: Entity ID to dissociate (delete_association).
        query: Filter query for 'filter' action. Format:
            "priority_id:3 AND created_at:>'2025-01-01'"
        filter: Predefined filter for 'list' — 'all', etc.
        page/per_page: Pagination.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
pageNo
queryNo
titleNo
actionYes
filterNo
contentNo
note_idNo
task_idNo
type_idNo
per_pageNo
parent_idNo
sprint_idNo
status_idNo
project_idNo
version_idNo
assignee_idNo
descriptionNo
module_nameNo
priority_idNo
reporter_idNo
story_pointsNo
custom_fieldsNo
association_idNo
planned_effortNo
planned_end_dateNo
planned_start_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior, but it only lists actions and parameter requirements. It does not mention side effects of destructive operations (e.g., delete, delete_association), permissions required, or what the response contains, leaving significant behavioral gaps for a mutation-heavy tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with a concise context paragraph, then lists 27 parameters in a structured, readable way. While long, each parameter line carries necessary information, and the 'Args:' section prevents it from being an unstructured wall of text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (18 actions, 27 parameters, no annotations), the description covers all actions and parameters, includes a detailed query example, and explains how to fetch ID references. An output schema exists, so return values need not be in the description, but error handling, side effects, and alternative tool comparisons are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite having zero schema description coverage, the description meticulously documents all 27 parameters, including mandatory conditions ('title (create — MANDATORY)', 'type_id (create — MANDATORY)'), formats (ISO datetime, planned_effort example, query format), and how to obtain reference IDs. This adds significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage Freshservice Project Tasks (NewGen)' and enumerates the available actions (create, update, get, list, delete, etc.), making the tool's purpose explicit and specific. It distinguishes from siblings like manage_change_task by focusing on project tasks, though it does not explicitly compare with those sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context for project task management and instructs on prerequisite steps, such as 'obtain via get_task_types' for type/status/priority IDs, which implies a workflow. However, it does not explicitly state when to use this tool over alternatives like manage_change_task or manage_problem_task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_releaseA

Manage Freshservice releases.

    NOTE: Like changes, planning_fields cannot be set on create.
    If you supply them, they will be applied via a follow-up PUT
    automatically.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete',
                'filter', 'restore', 'get_fields'.
        release_id: Release ID (required for get/update/delete/restore).
        subject: Release subject (required for create).
        description: HTML description (required for create).
        priority: 1=Low, 2=Medium, 3=High, 4=Urgent (required for create).
        status: 1=Open, 2=On hold, 3=In Progress, 4=Incomplete, 5=Completed
                (required for create).
        release_type: 1=Minor, 2=Standard, 3=Major, 4=Emergency
                      (required for create).
        planned_start_date: ISO datetime for planned start.
        planned_end_date: ISO datetime for planned end.
        work_start_date: ISO datetime for actual work start.
        work_end_date: ISO datetime for actual work end.
        agent_id: Assigned agent ID.
        group_id: Assigned group ID.
        department_id: Department ID.
        category/sub_category/item_category: Categorization.
        assets: Associated assets [{"display_id": N}].
        planning_fields: Planning fields dict (build_plan, test_plan).
        custom_fields: Custom fields dict.
        query: Filter query for 'filter' action.
        page/per_page: Pagination.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
actionYes
assetsNo
statusNo
subjectNo
agent_idNo
categoryNo
group_idNo
per_pageNo
priorityNo
release_idNo
descriptionNo
release_typeNo
sub_categoryNo
custom_fieldsNo
department_idNo
item_categoryNo
work_end_dateNo
planning_fieldsNo
work_start_dateNo
planned_end_dateNo
planned_start_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses one useful non-obvious behavior: planning_fields cannot be set on create and are applied via a follow-up PUT. However, it lacks disclosure about other behavioral aspects such as destructive consequences of delete/restore, permission requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and the critical planning_fields note, followed by a well-organized Args list. It is long but every line carries necessary parameter documentation, so no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter tool with no annotations, the description covers all parameters and one key behavior, but omits query syntax, usage examples, and error handling. The output schema presumably covers return values, so that gap is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter is explained with meaningful detail beyond the schema, including numeric enum mappings (priority, status, release_type), required-on-create markers, formatting hints for assets, and the role of query for filter. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line 'Manage Freshservice releases' states a broad verb+resource, but the enumerated actions (list, get, create, update, delete, filter, restore, get_fields) clearly define the tool's scope. It is distinct from sibling tools targeting release notes, tasks, or time entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like manage_release_note or manage_release_task. It implies usage through the action list but provides no guidance on tool selection or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_release_noteB

Manage notes on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        note_id: Note ID (required for get/update/delete).
        body: Note body HTML (required for create/update).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
actionYes
note_idNo
release_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavioral traits. It mentions that body is HTML and gives required fields, but it does not disclose that delete is irreversible, whether update performs partial or full replacement, what permissions are needed, or any side effects. This is insufficient for a CRUD tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and structured, with a clear summary line followed by parameter specifics. Each sentence contributes to understanding the tool. It could be slightly more concise by merging the action list into the summary, but it is already efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the simple CRUD nature, the description covers most essentials. However, it lacks context on behavior like pagination for list, error handling, or what happens to other fields on update. It is adequate for a low-complexity tool but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description adds significant value by explaining the meaning and requirements of each parameter. It clarifies that release_id is always required, note_id is needed for get/update/delete, and body is required for create/update, which is not inferable from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('notes on a Freshservice release') and lists the supported actions. The verb 'manage' is generic, but the action list disambiguates. It distinguishes from siblings like manage_release (which manages the release itself) and manage_change_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use each action by listing required parameters per action. However, it does not explicitly discuss when to prefer this tool over alternatives like manage_change_note or manage_problem_note, nor does it state any prerequisites or contexts where the tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_release_taskA

Manage tasks on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        task_id: Task ID (required for get/update/delete).
        title: Task title (required for create).
        description: Task description.
        status: 1=Open, 2=In Progress, 3=Completed.
        due_date: ISO datetime due date.
        notify_before: Hours to notify before due date.
        group_id: Assigned group ID.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
actionYes
statusNo
task_idNo
due_dateNo
group_idNo
release_idYes
descriptionNo
notify_beforeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It enumerates all actions (list, get, create, update, delete) and provides status value mappings, thereby making clear that some operations mutate data. It does not disclose permissions or potential side effects, but the action list provides sufficient transparency for an agent to understand the tool's operational nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a well-organized docstring with a one-sentence purpose statement followed by a compact args list. Every line conveys necessary information about parameters and their requirements without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters and 5 distinct actions, the description covers all required and optional parameters, explains conditional prerequisites, and documents allowed values. An output schema is present, so return value details are not needed in the description. The tool is suitable for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the bare schema. It explains each parameter's purpose, specifies conditional requirements (e.g., task_id for get/update/delete, title for create), defines allowed action values, maps status integers to human-readable states, and clarifies format expectations for due_date and notify_before. This is high-value semantic guidance not available in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage tasks on a Freshservice release', combining a specific verb with a precise resource. It distinguishes this tool from sibling tools like manage_release, manage_release_note, and manage_release_time_entry by focusing specifically on tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly identifies the tool's scope as release tasks, which implicitly guides appropriate use. However, it does not explicitly mention alternative tools for change or problem tasks (e.g., manage_change_task, manage_problem_task), so it lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_release_time_entryA

Manage time entries on a Freshservice release.

    Args:
        action: One of 'list', 'get', 'create', 'update', 'delete'.
        release_id: Release ID (always required).
        time_entry_id: Time entry ID (required for get/update/delete).
        agent_id: Agent who performed the work.
        note: Description of work performed.
        time_spent: Time in "hh:mm" format (required for create).
        executed_at: ISO datetime when work was performed.
        task_id: Associated task ID.
        billable: Whether the time is billable.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
actionYes
task_idNo
agent_idNo
billableNo
release_idYes
time_spentNo
executed_atNo
time_entry_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only lists parameters and their roles, without explaining side effects, destruction risks, auth requirements, or what happens on success/failure. For a CRUD tool, the lack of any behavioral context is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a single declarative sentence followed by a clearly formatted Args list. Every parameter has a purpose, and the structure front-loads the tool's function before diving into parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no annotations, the description provides comprehensive parameter semantics and required-field logic, and the presence of an output schema covers return values. However, it lacks behavioral transparency and explicit usage guidance versus related tools, leaving some gaps in full contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage, so the description compensates fully by providing detailed explanations for all 9 parameters, including formats (hh:mm, ISO datetime) and conditional requirements. This goes well beyond the schema's bare type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages time entries on a Freshservice release and enumerates the supported actions (list, get, create, update, delete). However, it does not explicitly distinguish itself from sibling tools like manage_change_time_entry or manage_problem_time_entry, though the resource specification 'release' provides implicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for release time entries and details the parameter requirements for each action (e.g., time_entry_id required for get/update/delete, time_spent required for create). However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_requesterC

Unified requester operations.

    Args:
        action: 'create', 'update', 'get', 'list', 'filter', 'get_fields', 'add_to_group'
        requester_id: Required for get, update, add_to_group
        first_name: MANDATORY for create
        query: Filter query string (filter)
        include_agents: Include agents in filter results (filter)
        group_id: Group ID (add_to_group)
        page/per_page: Pagination (list)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
actionYes
addressNo
group_idNo
languageNo
per_pageNo
job_titleNo
last_nameNo
time_zoneNo
first_nameNo
location_idNo
time_formatNo
requester_idNo
custom_fieldsNo
primary_emailNo
department_idsNo
include_agentsNo
secondary_emailsNo
work_phone_numberNo
mobile_phone_numberNo
reporting_manager_idNo
background_informationNo
can_see_all_tickets_from_associated_departmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of disclosing side effects and behavior. It notes mandatory fields and required IDs per action, but it does not disclose whether updates are partial or overwrite, any permissions needed, rate limits, or what happens on invalid actions. This is minimal transparency for a multi-action mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with 'Unified requester operations,' followed by a compact Args list. It is reasonably organized, but it omits many parameters and uses informal formatting (e.g., 'MANDATORY' uppercase, 'page/per_page' as one item), which slightly hurts readability and completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 24 parameters, no annotations, and multiple action modes, the description is incomplete. It does not explain filter query syntax, update field semantics, list pagination behavior, or what get_fields returns. The output schema exists, so return values are covered, but invocation details for most actions remain unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 24 parameters with 0% description coverage, so the description must compensate. It explains a few key parameters (action, requester_id, first_name, query, include_agents, group_id, page/per_page) and their role in specific actions, but leaves the majority of fields (address, language, custom_fields, department_ids, etc.) completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies 'requester operations' as the resource and enumerates specific actions (create, update, get, list, filter, get_fields, add_to_group), making the purpose clear. It differentiates from sibling tools like manage_requester_group by focusing on the requester entity itself, though it lacks a strong verb phrase beyond the generic 'operations.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides action-specific parameter requirements (e.g., 'requester_id: Required for get, update, add_to_group'), which helps with invocation. However, it gives no guidance on when to choose this tool over sibling tools like manage_agent or manage_requester_group, and no exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_requester_groupA

Manage requester groups.

    Args:
        action: 'create', 'update', 'get', 'list', 'list_members'
        group_id: Required for get, update, list_members
        name: Group name (create — MANDATORY)
        description: Group description
        page/per_page: Pagination (list)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
actionYes
group_idNo
per_pageNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of disclosing behavior. It only names the actions and parameters; it does not mention side effects, permissions, idempotency, or response behavior. The action names imply create/update are mutating, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, uses a clear Args list, and every line adds information. There is no fluff or repetition of schema defaults, and the structure makes the conditional parameter requirements easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action tool with six parameters and no schema descriptions, the description covers action semantics and parameter constraints well. The presence of an output schema means return values need not be described. Missing are behavioral caveats and alternative tool guidance, but the core usage is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameter descriptions (0% coverage), and the description fully compensates by explaining every parameter, including conditional requirements (e.g., group_id required for get/update/list_members, name mandatory for create, page/per_page for list). This is exactly the value the description should add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the generic verb 'Manage' but specifies the resource 'requester groups' and enumerates five concrete actions (create, update, get, list, list_members). This clearly distinguishes it from sibling tools like manage_requester, though the verb itself is broad.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Args section provides clear operational guidance: which group_id is required for which actions, that name is mandatory for create, and that page/per_page apply to list. It does not explicitly discuss alternatives or exclusions, but the action-specific requirements imply appropriate usage contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_service_catalogC

Service catalog operations.

    Args:
        action: 'list_items', 'get_requested_items', 'place_request'
        ticket_id: Ticket ID (get_requested_items)
        display_id: Service item display ID (place_request)
        email: Requester email (place_request)
        requested_for: Email of person for whom request is placed (place_request)
        quantity: Number of items (place_request, default 1)
        page: Page number (list_items)
        per_page: Items per page (list_items)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
emailNo
actionYes
per_pageNo
quantityNo
ticket_idNo
display_idNo
requested_forNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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 does not disclose permissions, side effects (e.g., whether place_request creates a ticket or sends email), pagination behavior, or return values. The output schema exists, but the description adds no behavioral context beyond the arg list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact docstring with a one-line overview and an Args list. It is well-structured and not bloated, though 'Service catalog operations' is a fragment and the list largely duplicates schema property names. The mapping of params to action values is useful and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action tool with 8 parameters and zero annotations, the description is incomplete. It lacks an overall purpose statement, per-action semantics (what each action does or returns), and any prerequisites or side effects. The parameter mapping is helpful, but the tool's behavior and integration with a service catalog are left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description's Args block adds meaning by mapping each parameter to the action(s) it applies to: ticket_id to get_requested_items, display_id/email/requested_for/quantity to place_request, and page/per_page to list_items. It also defines requested_for as 'Email of person for whom request is placed' and notes quantity default. This compensates for the missing schema descriptions, though it doesn't explain validation or formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Service catalog operations,' which is vague and largely restates the tool name. The action values ('list_items', 'get_requested_items', 'place_request') clarify what the tool can do, but there is no explicit verb+resource statement or contrast with sibling manage_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 managing tickets, changes, assets, etc. The action parameter lists supported operations but does not explain the scenarios for each action or exclude alternatives. Sibling tools like manage_ticket indicate the domain, but no explicit selection guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_solutionA

Unified solution operations for categories, folders, and articles.

    Args:
        action: One of:
            Categories: 'list_categories', 'get_category', 'create_category', 'update_category'
            Folders: 'list_folders', 'get_folder', 'create_folder', 'update_folder'
            Articles: 'list_articles', 'get_article', 'create_article',
                      'update_article', 'publish_article'
        category_id: Category ID (get/update category, list folders, create folder)
        folder_id: Folder ID (get/update folder, list/create articles)
        article_id: Article ID (get/update/publish article)
        name: Name (create/update category or folder)
        title: Article title (create/update article)
        description: Description text/HTML
        visibility: Folder visibility (1=all, 2=logged-in, 3=agents, 4=depts)
        default_category: Mark as default (update_category)
        workspace_id: Workspace ID (create/update category)
        department_ids: Department IDs (create folder)
        article_type: 1=permanent, 2=workaround (create/update article)
        status: 1=draft, 2=published (create/update article)
        tags: Article tags list
        keywords: SEO keywords list
        review_date: ISO date for article review
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
titleNo
actionYes
statusNo
keywordsNo
folder_idNo
article_idNo
visibilityNo
category_idNo
descriptionNo
review_dateNo
article_typeNo
workspace_idNo
department_idsNo
default_categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for behavioral disclosure, but it only lists action names and parameter mappings. It does not explain side effects, required permissions, return behavior, or consequences of mutations like 'publish_article' or 'delete' actions. While actions imply read/write behavior, the lack of any outcome details is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into an action list followed by parameter definitions, making it easy to scan. It is lengthy due to 16 parameters, but each line adds unique value. Slight redundancy exists (e.g., repeating action names in parameter mappings) but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the parameter space and action semantics well, but for a tool with 16 parameters and multiple action families, it lacks explicit required-parameter per action and return value expectations. However, the presence of an output schema reduces the need to describe return values, so the overall completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates thoroughly by mapping each parameter to the actions it supports (e.g., 'folder_id: Folder ID (get/update folder, list/create articles)'). This adds significant value beyond the raw schema, which merely lists field names and types without usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Unified solution operations for categories, folders, and articles' and enumerates specific actions for each resource type (e.g., 'list_categories', 'publish_article'). This distinguishes it from sibling tools that target other domains like tickets, changes, or assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on which action applies to which resource and which parameters are relevant for each action (e.g., 'category_id: Category ID (get/update category, list folders, create folder)'). It does not explicitly exclude alternatives or state when not to use this tool, but the domain boundaries are implicit in 'solution operations'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_status_pageA

Unified Status Page operations: maintenance windows, incidents, components.

    IMPORTANT — Publishing a maintenance on the Status Page:
        To publish a maintenance, you MUST provide either change_id or
        maintenance_window_id. The rules are:

        1. If the Change already has a maintenance_window (check via
           manage_change action='get' → maintenance_window.id), use change_id.
        2. If the Change has NO maintenance_window (maintenance_window is
           empty {}), you MUST first create a Maintenance Window using
           manage_maintenance_window action='create' with name, description,
           start_time, end_time, AND change_id (to auto-associate the MW
           with the Change). Then use the returned maintenance_window_id here.
        3. You can also use maintenance_window_id directly if you already
           know the MW ID.

        Required fields for create_maintenance:
          - title, description, started_at, ended_at, impacted_services
          - impacted_services format: [{"id": <service_component_id>, "status": 5}]
            status values: 1=Operational, 5=Under maintenance, 10=Degraded,
            20=Partial outage, 30=Major outage
          - Get available service component IDs via action='list_components'

    Args:
        action: One of:
          Pages:        'list_pages'
          Components:   'list_components', 'get_component'
          Maintenance:  'list_maintenance', 'create_maintenance', 'update_maintenance',
                        'get_maintenance', 'delete_maintenance'
          Maintenance Updates: 'create_maintenance_update', 'list_maintenance_updates',
                        'update_maintenance_update', 'delete_maintenance_update'
          Incidents:    'list_incidents', 'create_incident', 'update_incident',
                        'get_incident', 'delete_incident'
          Incident Updates: 'create_incident_update', 'list_incident_updates',
                        'update_incident_update', 'delete_incident_update'
          Statuses:     'list_incident_statuses', 'list_maintenance_statuses'
          Subscribers:  'list_subscribers', 'get_subscriber', 'create_subscriber',
                        'update_subscriber', 'delete_subscriber'
        status_page_id: Status page ID (auto-discovered if omitted).
        change_id: Change ID — maintenance CRUD from a change. The change
            MUST have an associated maintenance_window or the API returns 404.
            Check via manage_change get → if maintenance_window is empty {},
            use manage_maintenance_window to create one first, then pass
            maintenance_window_id instead.
        maintenance_window_id: Maintenance Window ID — maintenance CRUD from a MW.
            Use this when the change has no built-in MW, or for standalone MW
            publishing. Create a MW first via manage_maintenance_window action='create'.
        ticket_id: Ticket ID — incident CRUD (required for create/update/get/delete,
            not needed for list_incidents).
        maintenance_id: Maintenance ID (get/update/delete maintenance, maintenance updates)
        incident_id: Incident ID (get/update/delete incident, incident updates)
        update_id: Update ID (update/delete maintenance/incident updates)
        component_id: Service component ID (get_component)
        subscriber_id: Subscriber ID (get/update/delete subscriber)
        title: Title (create maintenance/incident) — Mandatory
        description: HTML description
        started_at: ISO datetime — start time (maintenance/incident)
        ended_at: ISO datetime — end time (maintenance)
        impacted_services: [{id, status}] — 1=Operational, 5=Under maintenance,
            10=Degraded, 20=Partial outage, 30=Major outage — Mandatory for create_maintenance
        notifications: Array of notification dicts [{trigger, options: {value}}]
            trigger: 1=On start, 2=Before start, 3=On complete
        is_private: Private maintenance/incident (default false)
        body: Update body text (maintenance/incident updates)
        update_status: Status string for updates
        email: Subscriber email (create_subscriber — Mandatory)
        service_ids: List of service IDs the subscriber is subscribed to
        subscribe_all_services: true = notify for all services
        subscriber_type: 1=External, 2=Agent, 3=Requester
        timezone: Subscriber timezone (e.g. "UTC")
        page/per_page: Pagination
    
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pageNo
emailNo
titleNo
actionYes
ended_atNo
per_pageNo
timezoneNo
change_idNo
ticket_idNo
update_idNo
is_privateNo
started_atNo
descriptionNo
incident_idNo
service_idsNo
component_idNo
notificationsNo
subscriber_idNo
update_statusNo
maintenance_idNo
status_page_idNo
subscriber_typeNo
impacted_servicesNo
maintenance_window_idNo
subscribe_all_servicesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries a heavy burden and delivers by disclosing critical behaviors: mandatory provision of either change_id or maintenance_window_id, the 404 error when a change lacks an associated MW, auto-discovery of status_page_id, required fields, and status value mappings. It does not cover permissions, rate limits, or side effects of destructive actions, but provides substantial context beyond what annotations would normally supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a large block of text with mixed sections and noticeable redundancy, repeating the change_id/maintenance_window_id rule in both the IMPORTANT section and the parameter list. While structured with line breaks, it could be tightened with clearer headings and less duplication to improve scannability for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 26 parameters and over 30 actions, the description is exceptionally complete, covering all action categories, parameter semantics, cross-tool dependencies, required fields, and value enums. The presence of an output schema means response formats need not be described, and the provided info is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args section meticulously explains every parameter, including purpose, constraints, formats, and enum mappings (e.g., impacted_services structure, notification triggers, subscriber types). This fully compensates for the empty schema descriptions and adds critical meaning for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Unified Status Page operations: maintenance windows, incidents, components', clearly stating the tool's domain. The action list enumerates exact operations (pages, components, maintenance, incidents, etc.), distinguishing it from sibling tools like manage_change and manage_maintenance_window. Although 'operations' is a generic verb, the resource and scope are unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'IMPORTANT' section provides a clear decision tree for when to use change_id vs maintenance_window_id, including explicit instructions to create a maintenance window via manage_maintenance_window if none exists. It also lists required fields for create_maintenance and directs users to list_components, giving strong contextual guidance with references to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_ticketB

Unified ticket operations.

    Args:
        action: One of 'create', 'update', 'delete', 'get', 'list', 'filter', 'get_fields'
        ticket_id: Required for get, update, delete
        subject: Ticket subject (create)
        description: Ticket body — HTML (create)
        source: Source enum (1=Email,2=Portal,3=Phone…) (create)
        priority: 1=Low,2=Medium,3=High,4=Urgent (create/update)
        status: 2=Open,3=Pending,4=Resolved,5=Closed (create/update)
        email: Requester email (create — required if no requester_id)
        requester_id: Requester ID (create — required if no email)
        custom_fields: Key-value custom field pairs
        ticket_fields: Dict of fields to update (update action)
        query: Filter query string, e.g. "priority:3 AND status:2" (filter)
        page: Page number (list/filter)
        per_page: Items per page 1-100 (list)
        workspace_id: Workspace filter (filter)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
emailNo
queryNo
actionYes
sourceNo
statusNo
subjectNo
per_pageNo
priorityNo
ticket_idNo
descriptionNo
requester_idNo
workspace_idNo
custom_fieldsNo
ticket_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It fails to mention side effects (e.g., delete permanence, update semantics), permissions required, or rate limits. It only covers parameter constraints, not the operational behavior or consequences of invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single block with a tagline and a long Args list. It is appropriately sized for a 15-parameter tool, but the lack of separation between the high-level purpose and parameter details makes it slightly unstructured. The 'Unified ticket operations' tagline is concise but adds little semantic weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers most parameter semantics and conditional requirements, which is crucial given zero schema descriptions. However, it does not explain the distinction between 'get_fields' and 'list'/'filter', nor does it address error conditions or permission requirements. The presence of an output schema offloads return value documentation, reducing the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description's detailed parameter documentation is essential. It provides action-specific meaning for each parameter (e.g., 'email: required if no requester_id'), enum values for priority/status/source, and example query syntax. This goes far beyond the bare schema, which has empty descriptions and no enum information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Unified ticket operations' which is vague as a verb phrase, but the Args list enumerates specific actions (create, update, delete, get, list, filter, get_fields) that clarify the tool's scope. It does not explicitly state it's for managing tickets, though the resource is implied. Sibling tool names like manage_ticket_conversation help differentiate, but the description itself lacks a crisp verb+resource formulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 vs alternatives. It implies usage through the action list (e.g., use for ticket create/update/delete/get/list/filter), but no exclusions or alternative tool references are provided. The sibling tools suggest this is for tickets, but there is no comparison or guidance on selecting among them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_ticket_conversationA

Manage ticket conversations — replies, notes, updates.

    Args:
        action: 'reply', 'add_note', 'update', 'list'
        ticket_id: Required for reply, add_note, list
        conversation_id: Required for update
        body: HTML body content (reply, add_note, update)
        from_email: Sender email (reply)
        user_id: Agent user ID (reply)
        cc_emails: CC email list (reply)
        bcc_emails: BCC email list (reply)
    
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
actionYes
user_idNo
cc_emailsNo
ticket_idNo
bcc_emailsNo
from_emailNo
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must disclose side effects. It fails to mention that replies send emails or that updates modify existing conversations, nor does it discuss permissions or reversibility. It only notes that body is HTML, which is a format detail, not a behavioral trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single summary line followed by a compact arg list. It is well-structured, front-loaded with the purpose, and every line provides actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all the main operational aspects of the tool, including action-specific parameters. It does not discuss return values, but the presence of an output schema mitigates this. It also doesn't mention error handling or edge cases, but these are less critical given the clear action breakdown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no schema descriptions, the description is essential. It comprehensively explains each parameter's purpose and its applicability to specific actions, filling the gap left by the schema's 0% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages ticket conversations, and enumerates the supported actions (reply, add_note, update, list). This distinguishes it from sibling tools like manage_ticket, which focuses on ticket-level operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides action-specific parameter requirements, indicating when each action is appropriate (e.g., reply requires ticket_id, from_email, etc.). However, it doesn't explicitly compare to alternative tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_workspaceA

Manage workspaces.

    Args:
        action: 'list', 'get'
        workspace_id: Required for get
    
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
workspace_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It reveals the tool is read-only by listing only non-mutating actions, but it does not mention permissions, error handling, or side effects. The absence of explicit safety notes is partially mitigated by the action set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the tool's purpose. The Args section is structured for readability, but 'Manage workspaces' is a generic opener that adds little value. No wasted words, but it could be more direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema presumably covers return values, and the description covers parameters and actions. However, it lacks examples, permissions, or edge cases (e.g., behavior when workspace_id is omitted). For a simple read-only tool, it is adequate but leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema lacks descriptions for both parameters (0% coverage), so the description compensates by clarifying valid action values ('list', 'get') and noting that workspace_id is required for get. This adds meaningful semantics beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as managing workspaces and explicitly lists the supported actions ('list', 'get'), distinguishing it from sibling 'manage_*' tools by resource. It avoids tautology and provides a specific verb-resource pair, though it could be more explicit about the overall purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing actions, but it does not specify when to use this tool over alternatives, nor provides exclusions or context. The listing of 'list' and 'get' suggests read-only scenarios, but there is no explicit 'use this when...' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 36 tool updatesv1.1.0
    • First observedclear_field_cache
    • First observeddiscover_form_fields
    • First observedget_me
    • First observedmanage_agent
    • First observedmanage_agent_group
    • First observedmanage_asset
    • First observedmanage_asset_details
    • First observedmanage_asset_relationship
    • First observedmanage_canned_response
    • First observedmanage_change
    • First observedmanage_change_approval
    • First observedmanage_change_note
    • First observedmanage_change_task
    • First observedmanage_change_time_entry
    • First observedmanage_department
    • First observedmanage_location
    • First observedmanage_maintenance_window
    • First observedmanage_problem
    • First observedmanage_problem_note
    • First observedmanage_problem_task
    • First observedmanage_problem_time_entry
    • First observedmanage_product
    • First observedmanage_project
    • First observedmanage_project_task
    • First observedmanage_release
    • First observedmanage_release_note
    • First observedmanage_release_task
    • First observedmanage_release_time_entry
    • First observedmanage_requester
    • First observedmanage_requester_group
    • First observedmanage_service_catalog
    • First observedmanage_solution
    • First observedmanage_status_page
    • First observedmanage_ticket
    • First observedmanage_ticket_conversation
    • First observedmanage_workspace

TDQS

A3.5/5.0

Scored across 36 tools

Disambiguation4/5

Most tools are clearly scoped to a single entity or sub-resource, but there is overlap between manage_status_page and manage_maintenance_window for publishing maintenance, and between discover_form_fields and get_fields actions on manage_ticket and manage_change. These overlaps could cause an agent to select the wrong tool for the same logical operation.

Naming Consistency5/5

Every tool follows the consistent 'manage_<entity>' or 'manage_<entity>_<subresource>' pattern, using snake_case throughout. No mixed conventions or verb variations, making the naming highly predictable.

Tool Count4/5

36 tools is on the high side, but the server covers a broad Freshservice domain including tickets, changes, problems, releases, assets, projects, status pages, and administrative entities. Each tool addresses a distinct resource cluster, so the count is reasonable despite being above the typical 15-tool threshold.

Completeness3/5

The tool surface is extensive, covering CRUD for most core entities, but notable gaps exist: solution articles have no delete action, canned responses are read-only only, and ticket tasks are not represented. These missing operations can force agents into workarounds or cause failures on complete workflow execution.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to interact with Freshservice IT service management platform, allowing automated ticket management, change requests, asset tracking, and solution article operations through natural language commands.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to connect with Freshservice ITSM for managing tickets, assets, agents, and organizational data through natural language. It provides a comprehensive set of tools for performing CRUD operations on service desk records and searching across the Freshservice platform.
    53
    69 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A comprehensive MCP server that provides 159 tools for interacting with the Freshservice ITSM platform, covering modules such as tickets, assets, and project management. It enables users to manage service desk operations and configuration through the Model Context Protocol.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to interact with ServiceNow through MCP, providing schema inspection, record CRUD, attachments, audit, Flow Designer, and platform investigations with policy-guarded access.
    15
    4
    MIT