Redmine MCP Server
This server provides an MCP interface to the Redmine REST API, letting AI agents read and modify Redmine data with optional safety controls.
Issues: list, show, create, update, delete issues; add/remove watchers; add/remove related issues
Projects: list, show, create, update, delete, archive, unarchive, close, reopen projects
Project memberships: list, show, create, update, delete memberships
Users and groups: list, show, create, update, delete users/groups; get current user; manage group memberships
Time entries: list, show, create, update, delete time entries
Wiki pages: list, show (including by version), create/update, delete wiki pages
News: list, show, create, update, delete news (global or per project)
Files and attachments: list files, create files, upload/download attachments and thumbnails (local file or Base64)
Relations and versions: manage issue relations and project versions
Queries and enumerations: run saved queries; list issue statuses, trackers, priorities, categories, roles, custom fields
Search: perform cross-resource searches
My account: show and update current user account settings
Journals: update journal notes/private flags
Safety controls: read-only mode, allow/deny tool filtering by regex, and read-only hints on tools
Provides comprehensive access to the Redmine REST API, enabling operations on issues, projects, users, time entries, wiki, news, files, attachments, queries, custom fields, roles, trackers, issue statuses, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Redmine MCP Servershow me all issues with high priority"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Redmine MCP Server
Model Context Protocol (MCP) server for Redmine that provides comprehensive access to the Redmine REST API.
Overview
This project is an MCP server that comprehensively covers Redmine's REST API. It allows you to operate Redmine from MCP clients (such as Claude Desktop).
Related MCP server: Redmine MCP Server
Demonstration
Here are example videos showing how to use the Redmine MCP server with Claude Desktop:
Creating an Issue
https://github.com/user-attachments/assets/075fb079-104c-404d-91f5-755b3882853b
This demonstration also uses the Playwright MCP for browser automation alongside the Redmine MCP server.
Getting Issue Information
https://github.com/user-attachments/assets/8f551082-6982-4513-8fe7-b0f111be982d
Features
📋 Comprehensive API Coverage: Supports all functions available in Redmine's REST API
🔒 Read-Only Mode: Supports safe data reference mode
🔧 Tool Filtering: Control which tools are available using regex patterns
🏷️ Tool Annotations: Declares
readOnlyHintso clients can tell read operations from write ones
Prerequisites
Getting Redmine API Key
Log in to Redmine with administrator privileges
Go to "Administration" → "Settings" → "API" tab
Check "Enable REST web service"
Generate "API access key" in personal settings
For details, refer to Redmine REST API documentation.
Configuration
Environment Variables
The following environment variables are required (specified in MCP client configuration files):
REDMINE_URL (Required): Base URL of the Redmine instance
Example:
https://redmine.example.com
REDMINE_API_KEY (Required): API key generated in Redmine
Set the API key obtained in prerequisites
REDMINE_MCP_READ_ONLY (Optional): Enable read-only mode
true: Read-only mode (disables data modification operations)falseor unset: Allow all operations (default)
REDMINE_MCP_TOOLS_ALLOW_PATTERN (Optional): Regex pattern to allow only matching tools
Example:
^get(enable only tools starting with "get")If unset, all tools are allowed (subject to other settings)
REDMINE_MCP_TOOLS_DENY_PATTERN (Optional): Regex pattern to disable matching tools
Example:
^delete(disable all tools starting with "delete")If unset, no tools are denied (subject to other settings)
Deny pattern takes priority over allow pattern
MCP Client Configuration
Using npx (Recommended for quick start)
Add the following as MCP configuration for your AI agent:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@onozaty/redmine-mcp-server"],
"env": {
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here",
"REDMINE_MCP_READ_ONLY": "true"
}
}
}
}Using Docker (Alternative)
If you prefer using Docker:
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "REDMINE_URL=https://your-redmine.example.com",
"-e", "REDMINE_API_KEY=your-api-key-here",
"-e", "REDMINE_MCP_READ_ONLY=true",
"ghcr.io/onozaty/redmine-mcp-server:latest"
]
}
}
}When to use Docker:
Enterprise environments requiring container isolation
Reproducible deployments across different systems
Environments where Node.js installation is restricted
Below are specific configuration methods for several MCP clients:
Claude Desktop
Add the following to claude_desktop_config.json:
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "@onozaty/redmine-mcp-server"],
"env": {
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here",
"REDMINE_MCP_READ_ONLY": "true"
}
}
}
}Claude Code
In Claude Code, you can add MCP servers using the following commands:
Local configuration:
claude mcp add redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @onozaty/redmine-mcp-serverProject configuration:
claude mcp add -s project redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @onozaty/redmine-mcp-serverUser configuration (global):
claude mcp add -s user redmine -e REDMINE_URL=https://your-redmine.example.com -e REDMINE_API_KEY=your-api-key-here -e REDMINE_MCP_READ_ONLY=true -- npx -y @onozaty/redmine-mcp-serverVisual Studio Code
Project configuration (.vscode/mcp.json):
{
"servers": {
"redmine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@onozaty/redmine-mcp-server"],
"env": {
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here",
"REDMINE_MCP_READ_ONLY": "true"
}
}
}
}User configuration (settings.json):
{
"mcp": {
"servers": {
"redmine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@onozaty/redmine-mcp-server"],
"env": {
"REDMINE_URL": "https://your-redmine.example.com",
"REDMINE_API_KEY": "your-api-key-here",
"REDMINE_MCP_READ_ONLY": "true"
}
}
}
}
}Available Features
This MCP server comprehensively supports the functions provided by Redmine's REST API:
Main Features
Issues: Create, update, delete, search, and manage related issues
Projects: Create, update, delete, archive, and manage memberships
Users: Create, update, delete, and manage groups
Time Entries: Record, update, and delete time entries
Wiki: Create, update, delete pages, and manage versions
News: Create, update, and delete news
Files: Upload and download files
Attachments: Upload, download files, and get thumbnails
Queries: Execute saved queries
Custom Fields: Get and manage custom fields
Roles: Get and manage roles
Trackers: Get and manage trackers
Issue Statuses: Get and manage issue statuses
Search: Cross-search functionality
Read-Only Mode
By setting REDMINE_MCP_READ_ONLY=true, you can disable data modification operations. This allows safe data reference.
Tool Filtering
You can control which tools are available using the following environment variables:
REDMINE_MCP_TOOLS_ALLOW_PATTERN: Only tools whose names match this regex are enabled.Example:
^getenables only read-oriented tools likegetIssues,getProjects, etc.
REDMINE_MCP_TOOLS_DENY_PATTERN: Tools whose names match this regex are disabled.Example:
^deletedisables all delete operations.
When both are set, deny takes priority. These can also be combined with REDMINE_MCP_READ_ONLY.
Example: Allow only issue-related tools
"env": {
"REDMINE_MCP_TOOLS_ALLOW_PATTERN": "Issue"
}Example: Disable all delete and archive operations
"env": {
"REDMINE_MCP_TOOLS_DENY_PATTERN": "^(delete|archive)"
}Tool Annotations
Every tool declares the readOnlyHint annotation, so clients do not have to guess from the tool name whether a call modifies data: it is true for read operations (getIssues, getProjects, ...) and false for the ones that create, update or delete. Clients that honour the annotation can, for instance, run read operations without asking the user for confirmation.
Available Tools
The following tools are available (based on Redmine REST API categories):
Category | Tools |
Issues | getIssues, getIssue, createIssue, updateIssue, deleteIssue, addWatcher, removeWatcher, addRelatedIssue, removeRelatedIssue |
Projects | getProjects, getProject, createProject, updateProject, deleteProject, archiveProject, unarchiveProject, closeProject, reopenProject |
Project Memberships | getMemberships, getMembership, createMembership, updateMembership, deleteMembership |
Users | getUsers, getUser, createUser, updateUser, deleteUser, getCurrentUser |
Time Entries | getTimeEntries, getTimeEntry, createTimeEntry, updateTimeEntry, deleteTimeEntry |
News | getNewsList, getNewsListByProject, getNews, createNews, updateNews, deleteNews |
Issue Relations | getIssueRelations, getIssueRelation, createIssueRelation, deleteIssueRelation |
Versions | getVersionsByProject, getVersions, createVersion, updateVersion, deleteVersion |
Wiki Pages | getWikiPages, getWikiPage, getWikiPageByVersion, updateWikiPage, deleteWikiPage |
Queries | getQueries |
Attachments | getAttachment, updateAttachment, deleteAttachment, uploadAttachmentFromLocalFile, uploadAttachmentFromBase64Content, downloadAttachmentToLocalFile, downloadAttachmentAsBase64Content, downloadThumbnailToLocalFile, downloadThumbnailAsBase64Content |
Issue Statuses | getIssueStatuses |
Trackers | getTrackers |
Enumerations | getIssuePriorities, getTimeEntryActivities, getDocumentCategories |
Issue Categories | getIssueCategories, getIssueCategory, createIssueCategory, updateIssueCategory, deleteIssueCategory |
Roles | getRoles, getRole |
Groups | getGroups, getGroup, createGroup, updateGroup, deleteGroup, addUserToGroup, removeUserFromGroup |
Custom Fields | getCustomFields |
Search | search |
Files | getFiles, createFile |
My Account | getMyAccount, updateMyAccount |
Journals | updateJournal |
License
MIT License
Author
Acknowledgments
OpenAPI specification: d-yoshi/redmine-openapi
Code generation: Orval - TypeScript client and schema generator from OpenAPI
Available Tools
90 toolsaddRelatedIssueD
Add related issue
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses nothing beyond the fact that it adds a related issue. Annotations indicate readOnlyHint=false, so it's clear this is a mutation, but the description adds no context about side effects, required permissions, response behavior, or reversibility. It fails to inform the agent of any behavioral nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (three words), but it is under-specified rather than concise. It omits essential information about the operation, parameters, and usage. A concise description earns its length by packing meaning; this one packs almost none.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, two required parameter groups, no output schema), the description is completely inadequate. It does not specify what 'related issue' means, how the path parameters identify the target, what formats are accepted, or what the response looks like. An agent has nearly no information to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the input schema provides no explanations for any parameters. The description does not compensate by explaining what 'related issue', 'issue_id', 'projectId', 'repositoryId', 'revision', or 'format' mean. The agent must guess semantics from names alone, which is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add related issue' is essentially a restatement of the tool name with spacing. It does not specify what kind of relation is added, how it relates to existing issue relations, or distinguish it from siblings like createIssueRelation. It is a tautology rather than a meaningful purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as createIssueRelation or removeRelatedIssue. The description provides no context about prerequisites, conditions, or exclusions. The agent is left without any direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addUserToGroupD
Add user to group
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint: false, indicating a write operation. The description adds no behavioral details beyond that—it does not state whether the operation is idempotent, what the response looks like, whether it can raise errors, or any side effects. With minimal annotation coverage, the description carries the full burden and fails to disclose any behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) but severely under-specified. It does not provide the necessary context for a tool with two nested objects and three parameters. It is not efficiently front-loaded because it omits critical details; it is simply too short to be useful. Overly brief descriptions that sacrifice all substance are not considered good conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two required parameter objects, an enum for format, and no output schema), the description is wholly inadequate. It does not explain the purpose of the 'format' parameter, the structure of the request, or any expected behavior. An agent cannot correctly invoke this tool based on the provided information without additional schema insights or external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters. It does not explain that user_id is in the body and groupId is in the path, nor what the 'format' parameter controls (json/xml). The agent must infer parameter meanings solely from the schema, which lacks descriptions. The description adds no value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Add user to group') with a verb and resource, so it is not a pure tautology. However, it is extremely vague—it does not specify which parameters represent the user or group, nor any constraints. It also does not distinguish itself beyond the obvious action, though there is a sibling removeUserFromGroup that differs. Thus it meets a basic but not detailed clarity level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, prerequisites, or exclusion criteria. The description provides no context about typical scenarios or when not to use it. The only implicit signal is the tool's name, which is insufficient for an agent to decide between this and other membership-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addWatcherC
Add watcher
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false indicates mutation, and 'Add' implies a write operation, so there is no contradiction. However, the description discloses nothing beyond the bare action—no mention of side effects, authorization requirements, idempotency, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal but not effectively concise—it omits necessary context. A single sentence can be concise and informative, but 'Add watcher' is under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nested parameters, no output schema, and no enrichment from annotations beyond the mutation hint. The description does not explain what is being modified, how parameters relate, or what the caller should expect, leaving the agent to infer critical details from parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for explaining parameters. It does not clarify that bodyParams.user_id is the user being added or that pathParams.issueId identifies the target issue. The description adds no value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add watcher' is essentially a restatement of the tool name, providing no additional meaning. It does not state that the watcher is added to an issue, which would require consulting the schema to infer from the 'issueId' path parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like removeWatcher. The description does not mention any context, prerequisites, or scenarios where adding a watcher is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archiveProjectD
Archive project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false indicates a mutation, and the description 'Archive project' implies a state change. However, it does not disclose any behavioral details such as whether archiving is reversible, what side effects occur (e.g., hiding the project, freezing changes), or what the response includes. The description adds no information beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse—two words—which is under-specification rather than effective conciseness. It lacks any structure or front-loading of key information. While it is not verbose, it fails to earn its place by providing any useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested input schema, no output schema, and no parameter documentation, the description is wholly inadequate. It provides no information about the expected format, the meaning of projectId, the response structure, or any side effects. An agent cannot make an informed decision to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. The inputs (format, projectId) are undocumented in the text. The description conveys nothing about how format affects the response or what projectId refers to, leaving the agent without essential parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Archive project' restates the tool name without adding any detail. It identifies the verb 'archive' and resource 'project' but does not differentiate from sibling tools like unarchiveProject, closeProject, or deleteProject. The purpose is minimally clear but lacks substance beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to use it, or how it relates to alternatives. The description offers no context about prerequisites, typical use cases, or scenarios that would favor this tool over sibling operations like unarchiveProject or closeProject.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
closeProjectD
Close project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates a mutating operation, and the description's 'close' implies a state change, but it discloses no additional behavioral detail. It does not explain whether the action is reversible, what side effects occur, or what happens to associated resources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While undeniably short, the description is under-specified rather than concise. It contains exactly two words that repeat the tool name and provides no front-loaded information, so it does not meet the bar for appropriate sizing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested pathParams object and the large sibling set, this description is grossly incomplete. It omits parameter syntax, the meaning of closing a project, and any relationship to other lifecycle operations, making it impossible for an agent to invoke the tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears the full burden of explaining parameters. It mentions none of them: format (json/xml) and projectId are entirely unaddressed, leaving the agent without any semantic guidance for constructing the required pathParams.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close project' is a tautology that restates the tool name without adding any specificity. Among many project-related siblings (archiveProject, deleteProject, reopenProject, etc.), it does not distinguish what 'close' means or how it differs from these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus similar project-lifecycle tools. An agent cannot determine whether closeProject is synonymous with archiving, deleting, or something else, and no alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createFileD
Create file
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false, signaling a write operation, but the description adds no behavioral context such as what 'creating a file' entails, whether it overwrites existing files, what the token represents, or what side effects occur. It does not contradict the annotations, but it also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but this is under-specification rather than effective conciseness. 'Create file' is one empty sentence that carries no explanatory value beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameter documentation, no usage guidance, and a complex nested input schema with required tokens, formats, and project IDs, the description is severely incomplete. There is no way for an agent to confidently construct a valid call based solely on this definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation for parameters like pathParams.format, pathParams.projectId, or bodyParams.file.token. Given nested required parameters and a non-obvious 'token' field, the complete absence of semantic guidance makes it impossible to understand the intended inputs from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Create file' is essentially a tautology of the tool name 'createFile' and adds no new information about what kind of file, in what context, or how it differs from file-related siblings like uploadAttachmentFromLocalFile or downloadAttachmentToLocalFile. It states a verb and resource but provides no distinguishing detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as uploadAttachmentFromLocalFile or uploadAttachmentAsBase64Content. No context is given about prerequisites, typical scenarios, or situations where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createGroupD
Create group
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: false, indicating a mutation. The description confirms creation but adds no further behavioral context—e.g., whether the operation is reversible, what happens to existing groups, or if it returns the created group. It does not contradict annotations but provides minimal value beyond the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single brief phrase, but brevity here is under-specification, not effective conciseness. It contains no front-loaded key details and every sentence (there is one) adds no value beyond the tool name. It is not structured to aid agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex schema with nested objects and custom fields, alongside a large sibling set with many group-related operations, this description is grossly inadequate. It does not cover required fields, typical usage patterns, or any behavior that would help an agent use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter information whatsoever. It fails to explain the required pathParams (format enum) or the bodyParams group object, including fields like name, user_ids, custom_fields, and custom_field_values. An agent would have no insight into what these parameters mean or how to construct them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create group' is essentially a restatement of the tool name. It names a verb and resource but provides no elaboration on what a group is or what distinguishes creation from updating or deletion. It does not explicitly differentiate from siblings like updateGroup or deleteGroup, relying solely on the verb to imply purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives such as updateGroup, deleteGroup, or addUserToGroup. No context is given about typical scenarios, prerequisites, or conditions that would make this the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createIssueD
Create issue
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint: false, indicating the tool is a write operation. The description 'Create issue' merely reiterates this without adding any new behavioral context such as required permissions, side effects, or reversibility. It does not contradict the annotations, but provides no extra value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this reflects under-specification rather than effective conciseness. It does not front-load any useful information and offers no structure beyond a single verb phrase. While it is brief, it fails to be informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex input schema with many nested objects and required fields, yet the description provides no explanation of these requirements or expected inputs. There is no output schema, so the description should at least hint at return values or behavior, but it does not. The description is grossly inadequate for an agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter explanations. The description does not mention any parameters at all, failing to compensate for the lack of schema descriptions. The agent must rely entirely on field names like project_id and subject, which are not self-evident without context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Create issue', which directly restates the tool name without adding any differentiation from sibling tools like createProject or createNews. It uses a clear verb and resource, but it is essentially a tautology and does not clarify what an 'issue' is in this context or what distinguishes it from other creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as updateIssue or getIssues. It does not mention any prerequisites, exclusions, or context for when creating an issue is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createIssueCategoryC
Create issue category
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates this is a write operation, and the description's 'Create' is consistent with that. However, the description adds no additional behavioral context, such as irreversibility, permission requirements, or side effects like overwriting existing data. Since the annotation covers the read-only aspect, the description fails to add any further transparency value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse, consisting of only three words. While it is concise in wording, it is under-specified and lacks any structured information or front-loading of critical constraints. It is not an example of efficient, valuable conciseness but rather of insufficient elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (nested body object, path params, required fields, no output schema), the description is severely incomplete. It does not mention return values, error conditions, or any validation requirements. The absence of parameter descriptions and behavioral context makes this definition inadequate for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for any parameters. The description 'Create issue category' does not explain any parameter semantics, such as what 'format', 'projectId', 'issue_category', 'name', or 'assigned_to_id' mean or how they relate. Without compensation from the description, an agent has no guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create issue category'), which distinguishes it from sibling tools like getIssueCategory, updateIssueCategory, and deleteIssueCategory based on the action. However, it provides no additional detail about what the category entails, so it lacks the richness expected for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or conditions that would help an agent decide between creating, updating, or deleting a category. No exclusions or recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createIssueRelationC
Create issue relation
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is readOnlyHint=false, which implies a write operation. The description does not add any behavioral context beyond that—no mention of side effects, required permissions, idempotency, or what happens on duplicate relations. Since the description carries the burden (only one annotation), it falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise—a single short sentence. However, it is under-specified and lacks any structure that would help the agent parse intent. It is not overly verbose, but its brevity comes at the cost of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, an enum for relation_type, and no output schema), the description is grossly incomplete. It does not explain the meaning of fields, allowed values, or the effects of creating a relation, leaving the agent without critical context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It does not mention pathParams or bodyParams at all, nor the required fields like relation_type or issue_to_id. The agent is left to infer everything from the raw schema, which lacks textual meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Create issue relation'), but it does not specify the scope or distinguish it from closely related siblings like addRelatedIssue. It is not a tautology, but it lacks any detail about what kind of relation or context, making it only minimally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as addRelatedIssue or deleteIssueRelation. The description does not mention any prerequisites, conditions, or exclusions, leaving the agent without directional help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createMembershipC
Create membership
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates a mutation, and the description's 'Create' is consistent. However, the description adds no extra behavioral context such as side effects, required permissions, idempotency, or what happens if the membership already exists. With annotations present, credit is given for additional context, but none is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse—a single phrase. While concise, it is under-specified for the tool's complexity (nested required objects, two path parameters). The lack of detail makes it more of an under-specification than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a 0% schema description coverage, the description must carry the full load. It does not explain what a membership is, how it relates to projects, users, and roles, or what a successful creation returns. The agent is left guessing beyond the field names, making this inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description offers no explanation of parameters like projectId, user_id, role_ids, or format. While field names are somewhat self-explanatory, the description does not clarify their purpose, relationships, or any constraints beyond the schema's enums and types. It fails to compensate for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create membership' clearly states the verb (create) and resource (membership), which distinguishes it from sibling tools like getMemberships, updateMembership, and deleteMembership. It is unambiguous though terse; it does not elaborate on what a membership is but that is already implied by the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as updateMembership or getMemberships. There is no mention of scenarios, prerequisites, or exclusions, leaving the agent to infer that this is for creating a new membership without knowing when a membership already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createNewsD
Create news
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits. Annotations only include readOnlyHint: false, which already indicates a write operation, but the description adds nothing about side effects, required permissions, validation rules, or response behavior. For a mutation tool with minimal annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It does not earn its place by conveying any meaningful information beyond the tool name. A single vague phrase without substance is not appropriately sized for a tool with this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested object structure, required parameters, and absence of an output schema, the description is wholly inadequate. It provides no context about what the news object requires, what format means, or how the tool behaves. An agent cannot reliably call this tool correctly with the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters. It fails to compensate for the lack of schema documentation. The agent must infer the meaning of pathParams, bodyParams, and the nested news object structure entirely from the schema, which provides field names but no semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create news' is essentially a tautology that restates the tool name. It identifies a verb and resource but provides no details about what 'news' means or how this differs from sibling operations like updateNews or deleteNews. It fails to differentiate from other news-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is zero guidance on when to use this tool versus alternatives. No mention of prerequisites, conditions for choosing createNews over updateNews or deleteNews, or any context for when creation is appropriate. The description gives no usage context whatsoever.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createProjectD
Create project
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false annotation, the tool is known to be a mutation, but the description offers no additional behavioral context such as permissions, side effects, or success/failure semantics. It adds nothing beyond what the annotation and name already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It omits critical information and does not earn its place by adding value; it simply restates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested objects, many project fields, and no output schema, a one-line description is wholly inadequate. There is no explanation of required fields, optional parameters, or expected behavior, making this definition incomplete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. However, the description says nothing about the required parameters (pathParams and bodyParams) or the project object fields. It provides zero semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create project' is essentially a restatement of the tool name 'createProject'. It does not add any specificity beyond the name, and while it implies a clear verb-resource relationship, it fails to provide any distinguishing details. This is a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool relative to sibling tools like updateProject, deleteProject, or createIssue. There are no mention of alternatives, prerequisites, or contexts. The agent is left without any selection help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createTimeEntryC
Create time entry
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false indicates a write operation, and the description 'Create' aligns with this. However, the description adds no further behavioral context such as required permissions, idempotency, or error behavior. With minimal annotations, the description does not compensate for missing disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, earning its place by stating the core action. However, it is under-specified, providing only the verb and object without any elaboration, making it more of a placeholder than a useful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—two required top-level parameters, nested objects, many optional fields, and no output schema—the description is severely inadequate. It offers no information about parameter structure, required fields, or expected behavior, leaving the agent unable to construct a valid request without consulting other sources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. The nested bodyParams object contains many fields (hours, user_id, comments, etc.) with no descriptions, and the description provides no hints about their meaning or relationships. The agent must rely solely on field names, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'Create' and a specific resource 'time entry', making the action unambiguous. However, it does not differentiate from sibling tools like updateTimeEntry or deleteTimeEntry, relying solely on the verb to signal intent. This is clear but minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description neither mentions prerequisites nor excludes scenarios, leaving the agent to infer usage from the verb alone. No explicit when/when-not context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createUserC
Create user
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotation readOnlyHint: false. It doesn't disclose side effects, permission requirements, validation rules, or the shape of the response, so the description carries minimal transparency burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with no wasted words. However, it is too sparse to provide meaningful structure or guidance, making it minimally adequate at best.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (nested objects, required fields, no output schema), the description is heavily under-specified. It omits essential details about the format parameter, the required user fields, or expected behavior, making it incomplete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not explain any parameters. Nested fields like 'user', 'pref', and 'send_information' remain opaque, and the description fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create user' clearly states the verb and resource. While it doesn't explicitly differentiate from other create tools (like createProject), the resource 'user' is unambiguous among siblings such as updateUser, deleteUser, and getUsers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like updateUser or deleteUser. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createVersionD
Create version
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include readOnlyHint=false, which already indicates a write operation. The description adds no further behavioral context—no side effects, required permissions, implications for existing data, or response details. Since the description is so minimal, it fails to carry the burden of behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While 'Create version' is extremely short, this is under-specification rather than conciseness. The description has no structure, no key information, and is effectively a placeholder. It does not earn its place because it communicates nothing beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool involves a complex nested schema with multiple optional fields, no output schema, and minimal annotations. The description is completely inadequate for an agent to understand how to call it correctly, what parameters are required, or what constitutes a valid request. It fails to provide any of the context necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the parameters. The schema contains many nested fields (name, status, sharing, due_date, etc.) and path params (format, projectId), but the description provides no hints about their meaning, format, or usage. The agent is left entirely to infer from raw JSON Schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create version' states a clear verb and resource, which is enough to distinguish it from other create tools like createIssue or createProject. However, it lacks any detail about what a version is in this context or what the tool specifically does beyond the literal name, so it's minimally adequate but not informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like updateVersion or deleteVersion. It doesn't mention contexts, prerequisites, or related operations. The description provides zero usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteAttachmentC
Delete attachment
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond what the name implies and what annotations already provide. The annotation readOnlyHint:false signals mutation, and 'Delete' confirms it, but there is no disclosure of permanence, side effects, or required permissions. The description does not contradict annotations, but it also adds nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (two words), but this is under-specification rather than efficient conciseness. It lacks any informative content, making it ineffective despite being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested object parameter with a required format enum, yet the description explains nothing about the operation's effects, return value, or error conditions. Given the complexity of the schema and the absence of an output schema, this description is critically incomplete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers no explanation of parameters. The required 'format' parameter is particularly puzzling (why does deletion need a response format?), but this is not addressed. The agent receives no help understanding what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Delete') and resource ('attachment'), which makes the primary purpose obvious. It is distinct from sibling tools like 'updateAttachment' or 'downloadAttachment', though it doesn't explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or any conditions for deletion. With many sibling tools, this omission leaves an agent without direction on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteGroupD
Delete group
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint: false, implying a mutation. The description 'Delete group' confirms deletion but offers no additional behavioral context such as whether deletion is permanent, cascades to related entities, requires specific permissions, or has any irreversible consequences. With annotations being minimal, the description carries the full burden and fails to disclose anything beyond the obvious mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (two words), but this is under-specification rather than concise efficiency. It lacks any structure or front-loading of critical information. While there is no verbosity, the brevity results in significant information loss, so it does not meet the standard of good conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a nested object parameter, no output schema, and no parameter descriptions, the description is completely inadequate. An agent would need to guess the meaning of format and groupId, and how to structure the pathParams object. The description adds zero helpful context beyond the tool's name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (pathParams) containing format (enum json/xml) and groupId (number), but schema description coverage is 0% (no descriptions in JSON Schema). The description mentions nothing about these parameters, their purpose, or their constraints. The agent cannot infer how to fill pathParams from the description alone, making this a severe gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete group' states a verb and resource, but it is essentially a restatement of the tool name 'deleteGroup' and adds no specific detail. It lacks any distinction from sibling delete tools (e.g., deleteIssue, deleteProject) other than the resource name, which is already in the name. This is borderline tautology, only slightly better than a pure restatement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no information about when to use this tool versus alternatives. It does not mention any prerequisites, side effects, or context that would help an agent decide when to call deleteGroup instead of other delete operations. There is zero guidance on usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteIssueD
Delete issue
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already communicates that this is a mutating operation, and the description's 'Delete' aligns with that. However, the description adds no additional behavioral context—such as irreversibility, cascading effects, or required permissions—beyond what the annotation already states. It neither enriches nor contradicts the structured information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but constitutes under-specification rather than conciseness. It repeats the tool name verbatim, adding zero informational value. A concise description would front-load essential facts while avoiding fluff; this has no content to evaluate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested pathParams object and no output schema, the description leaves everything to inference. It does not mention what happens upon success, error conditions, or the role of the 'format' parameter. An agent would be guessing at the request structure and effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It does not. The pathParams object with 'format' and 'issueId' is not explained at all; the agent must infer from naming alone, and 'format' especially has ambiguous meaning (likely response format) that should be clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete issue' is a tautology—it restates the tool name 'deleteIssue' without adding any specificity or nuance. It does not distinguish this deletion from other delete tools (e.g., deleteProject, deleteMembership) beyond the resource, which is already obvious from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, prerequisites, or alternatives. The description provides no context about scenarios where deletion is appropriate or how it compares to related issue tools like updateIssue or getIssue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteIssueCategoryD
Delete issue category
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already signals a write operation, and the description 'Delete' is consistent with that. However, the description adds no behavioral details beyond the basic action — such as irreversibility, impact on dependent issue categories, or requirements for the reassign_to_id parameter. With annotations present, the description fails to add any value on top of them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, so it is concise, but it is under-specified. It contains only the bare action and resource, offering no structural breakdown or additional context. It does not earn its place because it provides no information beyond the tool name, making it effectively unnecessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation (delete) with two required parameters that are undocumented, the description is completely inadequate. There is no output schema to fall back on, and the description fails to explain the purpose of reassign_to_id, the required format choices, or the consequences of deletion. An agent has no way to correctly invoke this tool based on the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — the description mentions none of the parameters. The schema defines pathParams (format, issueCategoryId) and queryParams (reassign_to_id), but neither the description nor the schema provides explanatory text. The description does nothing to clarify the meaning, purpose, or expected format of these parameters, and it does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete issue category' simply restates the tool name in plain English. It names a verb and resource but adds no additional specificity or distinction from siblings like deleteIssue or deleteProject. It is a tautology that provides no new information beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, no mention of associated operations (e.g., reassigning issues via reassign_to_id), and no indication of constraints like whether deletion fails if the category still contains issues. The description offers zero usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteIssueRelationC
Delete issue relation
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only indicate readOnlyHint=false, so the description should disclose behavioral aspects like permanence of deletion, required permissions, or impact on related data. It does none of this, merely restating that it deletes without any additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, but this is over-conciseness rather than efficient structure. It adds no value beyond the tool name, so it is not well-structured or informative. There is no front-loading of key details because there are no details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested pathParams, lack of output schema, and minimal annotations, the description is wholly inadequate. It provides no information about return values, side effects, or usage conditions, making it impossible for an agent to use this tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It does not mention format or issueRelationId at all, leaving the agent to infer their meanings from names alone. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'Delete' and the resource 'issue relation' clearly. However, it does not differentiate from sibling tools like removeRelatedIssue or provide any context about what an issue relation is, so it scores a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as removeRelatedIssue or when not to use it. There is no mention of prerequisites, side effects, or context that would help an agent decide to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteMembershipC
Delete membership
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint: false indicates a mutation, but the description adds nothing about consequences (e.g., permanent deletion, cascading effects, required permissions, reversibility). For a destructive operation, this is a significant gap. The description doesn't contradict the annotation, but it also provides no behavioral detail beyond what the annotation already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short ('Delete membership'), which is concise but restsates the tool name with minimal added value. It's under-specification rather than effective conciseness—no front-loading of important constraints or context. Every word is wasted because it adds no new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with one nested parameter, no output schema, and no behavioral annotations beyond readOnly false, this description is grossly incomplete. An agent needs to know the effect of deletion, the meaning of format, and any side effects—all missing. Even minimal context like 'permanently removes membership' or 'requires admin rights' would improve it, but there's nothing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description makes no mention of parameters (pathParams, format, membershipId). The agent must rely entirely on the schema, which provides field types and enums but no semantic meaning. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Delete') and resource ('membership'), which is specific and distinguishes it from other delete tools like deleteIssue or deleteProject. However, it does not elaborate on what the membership refers to or differentiate it from the many sibling delete operations beyond the resource name, so it's clear but not outstanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, prerequisites, or alternatives. The agent gets no help in deciding between this and related tools like deleteMembership vs. other deletes, or whether confirmation or specific conditions apply. There is no mention of usage context at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteNewsC
Delete news
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates the tool performs a write operation, and the description is consistent with that. However, the description adds no additional behavioral context such as irreversibility, authorization requirements, or side effects, which would be valuable for a destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (two words), which is under-specification rather than effective conciseness. It fails to convey essential information and does not front-load any helpful detail for the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with nested parameters (newsId, format) and no output schema, the description offers no operational context. It does not explain what happens on success, error handling, or any effects on related data, leaving the agent without sufficient information to invoke the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention newsId or the format field, nor clarify what these parameters control. The description provides no semantic value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete news' uses a specific verb (delete) and a specific resource (news), clearly distinguishing it from siblings like deleteIssue and deleteProject. It exactly matches the tool's function with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, no mention of alternatives, and no conditions or exclusions. The description simply states the action without any context about when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteProjectD
Delete project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, indicating mutation, but the description adds nothing about the consequences of deletion (e.g., irreversibility, cascading deletions, access requirements). Since there is no destructiveHint annotation, the description carries the full burden of disclosure, and it fails to provide any behavioral context beyond what the name already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It provides no structure or front-loaded information that aids agent comprehension. Every useful detail is absent, so the brevity does not serve a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with nested parameters and no output schema, this description is wholly inadequate. It lacks any mention of effects on related resources, required permissions, or return values. The agent has no guidance beyond the minimal schema, making the tool very difficult to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description must compensate for the lack of parameter documentation. However, the description mentions no parameters at all. It does not explain the purpose of pathParams, the format enum, or projectId, leaving the agent to infer them solely from the schema structure and property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete project' is essentially a restatement of the tool name 'deleteProject' with no additional specificity. It identifies the resource but does not elaborate on scope, cascade behavior, or any details that would distinguish it from other delete tools beyond the name itself. This falls into the tautology category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions, alternatives like closeProject or archiveProject, or circumstances that would make this the appropriate choice. An agent would have to infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteTimeEntryC
Delete time entry
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint:false already indicates a mutation. The description adds no additional behavioral context, such as whether the deletion is irreversible, the scope of deletion, or any side effects. With no extra context provided, the description does not go beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks any additional structure. It does front-load the key action, but it also omits any guidance or context that would aid an agent. It is not verbose, but it could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested parameter object and no output schema, the description is insufficiently detailed. It does not explain what the format parameter controls, what a valid timeEntryId is, or what the tool returns. The agent would need to rely on the schema alone, which is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents two parameters, format and timeEntryId, but the description does not explain their purpose or format constraints. With 0% schema coverage, the description fails to compensate for the missing parameter documentation, leaving the agent to infer meaning from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'time entry', which differentiates it from sibling tools like getTimeEntry, updateTimeEntry, and createTimeEntry. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, what prerequisites exist, or when to prefer alternatives. The description provides no contextual information about when a time entry should be deleted or any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteUserC
Delete user
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint: false, which already indicates mutation. The description adds nothing beyond that—it does not disclose side effects, irreversibility, or permission requirements. For a destructive operation, the description should offer more context, but it stays at the bare minimum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While 'Delete user' is extremely brief with no redundancy, it is under-specified to the point of being unhelpful. The description is too sparse to earn its place; it provides no practical value beyond the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested parameter object, no output schema, and minimal annotations, the description is grossly incomplete. It does not explain the parameters, the response, the impact of deletion, or any error conditions. An agent would struggle to use this tool correctly with only this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the pathParams, format, or userId parameters. The agent cannot infer what format or userId mean or what values are valid beyond the schema's enum and type. The description completely fails to compensate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (user). It is specific enough to distinguish from other user-related tools like getUser or updateUser, and no sibling tool duplicates the delete-user function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention permanence, prerequisites, or situations where deletion might be inappropriate. The agent is given no context to decide if this is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteVersionC
Delete version
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral traits beyond the verb 'delete', which inherently implies a destructive action. Annotations already indicate readOnlyHint=false, so the description adds no new information about side effects, irreversibility, permissions, or consequences. It neither contradicts annotations nor enriches them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but this brevity results from under-specification rather than efficiency. It lacks any structure or front-loaded key information. While it is concise, it does not effectively communicate necessary details for an agent to understand scope or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested parameter structure and no output schema, yet the description provides no context about expected outcomes, error conditions, or related operations. It does not explain what happens on successful deletion, any restrictions, or how this fits into the broader version lifecycle. The description is inadequate for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention parameters at all. The agent must rely solely on the schema properties (pathParams.format, pathParams.versionId) with no explanation of what these mean or how they affect the deletion. The description fails to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete version' clearly states the action (delete) and resource (version). It is unambiguous about the operation, but it does not differentiate from sibling tools that delete other resources (e.g., deleteIssue, deleteProject). The resource type is implied by the name, but the description adds little beyond that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, constraints, or conditions (e.g., whether a version can be deleted if it has associated issues). The description is purely a statement of function with no contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deleteWikiPageC
Delete wiki page
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint: false, indicating a mutating operation, which the description aligns with. However, the description adds no behavioral context—it does not mention whether deletion is permanent, cascades to attachments/versions, requires specific permissions, or can be undone. Given the sparse annotation coverage, the description should carry this burden but fails to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, 'Delete wiki page', which is concise and front-loaded. However, it is so minimal that it borders on under-specification, offering no additional context or structure. It is efficient but not sufficiently informative relative to the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutating operation with a nested object parameter and no output schema, the description is entirely inadequate. It does not explain what happens on success or failure, the effects of deletion, or any constraints. An agent receives no guidance on return values, side effects, or conditions, making the tool very difficult to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the parameters (format, projectId, wikiPageTitle). It does not mention any of them, leaving the agent to infer semantics from names alone. The nested pathParams object and format enum are undocumented in the description, providing no added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (wiki page), using a specific verb and resource combination. This distinguishes it from sibling tools like getWikiPage, updateWikiPage, and getWikiPageByVersion, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as prerequisites, conditions, or exclusions. While the action itself implies a clear scenario, there is no explicit context or mention of alternative tools or edge cases where deletion might be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
downloadAttachmentAsBase64ContentBRead-only
Download attachment file from Redmine as Base64 encoded content
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds the Base64 output format, which is important for handling the result. However, it does not disclose other behaviors like size limits or how the content is returned (e.g., as a string in the result). The description adds some value beyond annotations but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and format. No wasted words, and the key information is presented efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but with no output schema, the description should specify the return structure more clearly. It mentions Base64 content but not how it is packaged (e.g., a string field in the result). It also lacks usage guidance and parameter semantics, which are necessary for correct invocation. Given its simplicity, a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the parameters. The parameter names are self-explanatory (attachmentId and filename), but the description does not clarify their relationship or how the filename is used. With low schema coverage and no additional explanation, the agent may not know the specific requirements for invoking the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), the resource (attachment file from Redmine), and the output format (Base64 encoded content). This differentiates it from siblings like downloadAttachmentToLocalFile and downloadThumbnailAsBase64Content based on the output format distinctly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternatives such as downloadAttachmentToLocalFile or downloadThumbnailAsBase64Content. It provides no selection criteria, exclusions, or context for choosing between similar download tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
downloadAttachmentToLocalFileARead-only
Download attachment file from Redmine to local file system
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true is consistent with the 'download' action. The description adds little beyond the annotation, only specifying the source and destination. It doesn't disclose potential side effects like file overwriting or permission requirements, but given the read-only nature, this is acceptable. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no redundancy. It front-loads the core action and resource, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download operation with a well-documented schema and no output schema, the description is sufficient. It doesn't cover usage context like when to prefer this over base64 variants, but that is a matter of usage guidelines rather than completeness. The description adequately covers what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters (attachmentId, filename, outputDir), so schema coverage is effectively 100% despite the context signal indicating 0%. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), the resource (attachment file from Redmine), and the destination (local file system). It distinguishes from siblings like downloadAttachmentAsBase64Content and downloadThumbnailToLocalFile by specifying 'to local file system' and 'attachment file'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as downloadAttachmentAsBase64Content or downloadThumbnailToLocalFile. It also doesn't mention any prerequisites or conditions (e.g., file size limits, authentication).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
downloadThumbnailAsBase64ContentARead-only
Download thumbnail from Redmine as Base64 encoded content
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the Base64 encoding behavior but does not disclose details like error handling, size limits, or the exact response structure. Given the annotation coverage, the added value is modest but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and format, with no extraneous words. It efficiently conveys the essential purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only operation with one parameter and no output schema, the description is mostly complete. It lacks explicit return value details (e.g., whether the Base64 string is wrapped in JSON), but the core behavior is clear enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for attachmentId ('Redmine attachment ID to download thumbnail for'), so schema coverage is essentially high. The tool description does not add any parameter-specific information beyond this, so it stays at the baseline without going higher.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Download'), a clear resource ('thumbnail from Redmine'), and the output format ('Base64 encoded content'). This distinguishes it from sibling tools like downloadAttachmentAsBase64Content (full attachment) and downloadThumbnailToLocalFile (local file), so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a thumbnail is needed as Base64 content. It does not explicitly name alternatives or exclusions, but the format distinction ('Base64 encoded content' vs. local file) provides clear context. There's no misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
downloadThumbnailToLocalFileCRead-only
Download thumbnail from Redmine to local file system
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the key behavior of writing to the local file system, which goes beyond the readOnlyHint annotation. However, it does not disclose file naming, overwrite behavior, or error conditions. The readOnlyHint aligns with the download action, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, but it sacrifices essential content for brevity. The structure is acceptable, though it omits important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a required attachmentId and an optional output directory, the description leaves critical gaps: what happens if outputDir is omitted, how the file is named, and any potential side effects. With no output schema, these details are entirely absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation for attachmentId or outputDir. The agent is left to infer parameter meanings solely from the schema, which is minimal and does not convey defaults or constraints beyond types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Download' and the specific resource 'thumbnail from Redmine to local file system'. It distinguishes the destination from the base64 variant, but does not explicitly name sibling tools or edge cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives like downloadThumbnailAsBase64Content or downloadAttachmentToLocalFile. There is no mention of typical use cases, prerequisites, or when the optional outputDir should be set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAttachmentDRead-only
Show attachment
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already tells the agent this is a safe read operation. The description adds no behavioral detail—it does not explain what the attachment display entails, whether it returns content or metadata, or any side effects. It fails to leverage the annotation by adding useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (two words), but this is under-specification rather than conciseness. There is no structure or front-loading of key information; it fails to earn its brevity by being unhelpfully minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the abundance of attachment-related sibling tools and no output schema, the description is critically incomplete. The agent cannot determine what the tool returns, how it differs from download operations, or when to invoke it, making it inadequate for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage and a description that only says 'Show attachment,' the agent gets no explanation of the pathParams (format and attachmentId). The description does not compensate for the lack of parameter documentation, leaving the agent to guess what format and attachmentId mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show attachment' states a verb and resource but is vague—it doesn't clarify whether it returns metadata, binary content, or a preview. It fails to distinguish from sibling tools like downloadAttachmentAsBase64Content or getAttachment-related operations, leaving ambiguity about what 'show' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many attachment-related siblings (e.g., downloadAttachmentToLocalFile, downloadAttachmentAsBase64Content). There is no mention of alternatives, exclusions, or context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCurrentUserCRead-only
Show current user
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already declares this is a read-only operation. The description merely repeats 'Show', adding no extra behavioral context such as response format, auth requirements, or side effects. With annotations present, the description fails to add any value beyond what the annotation already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse—just three words. While it is concise in the sense of few words, it is under-specified for a tool with two parameters and no other context. It lacks any structure, front-loading of key constraints, or elaboration. This is under-specification, not effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters (one required), no output schema, and no usage guidance, the description is woefully incomplete. An agent cannot determine how to specify the format or include options, what response to expect, or when to choose this over getMyAccount. Essential information for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for the parameters (format and include). The description does not compensate by explaining what these parameters mean, how they should be used, or their allowed values. Given the low coverage, the description must supply this meaning and fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show current user' clearly states the action (show) and the resource (current user). It is unambiguous about what the tool does. However, it does not differentiate from the sibling tool 'getMyAccount', which likely serves a similar purpose. A clear purpose but no sibling differentiation means a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getMyAccount' or 'getUser'. There is no mention of context, prerequisites, or exclusions. The agent is left to guess which tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCustomFieldsCRead-only
List custom fields
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation includes readOnlyHint=true, which covers the safety profile. However, the description adds no extra behavioral context such as response format, pagination, or whether it lists all custom fields. Since annotations already primarily convey the read-only nature, the description contributes minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—three words with no redundant text. It is appropriately front-loaded and every word contributes to the purpose. There is no filler or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one parameter and no output schema, the description is minimally sufficient. The schema covers the parameter, and the annotation covers the safety profile. However, it lacks any information about the return value or potential limits, which could be expected but is not critical for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the single parameter 'pathParams.format'. While the schema itself documents the enum (json/xml) and required status, the description adds no semantic guidance about the parameter's purpose or usage. With zero coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'custom fields', making the tool's purpose unambiguous. It is distinct from sibling tools, none of which mention custom fields. However, it does not explicitly differentiate itself from any similar list tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Although no sibling tool directly competes with it, there is no mention of context, prerequisites, or exclusions. The usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDocumentCategoriesCRead-only
List document categories
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description's 'List' verb is consistent with that, so no contradiction. However, the description adds no behavioral context beyond what the annotation already provides—it doesn't mention that the format parameter controls serialization output (json vs xml), response structure, or any constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words with zero fluff and the key purpose front-loaded. It is appropriately brief for a simple list operation, though it borders on under-specification by being the entirety of the behavioral guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no pagination info, no description of what a 'document category' contains, and no explanation of how the format parameter alters the response, the definition is incomplete. The single sentence leaves an agent guessing about return values and format semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining the format parameter but provides nothing. The only parameter, format (enum json/xml), is self-documenting via its enum values, but the description still fails to clarify how format affects the result or why it exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List document categories' provides a clear verb ('List') and specific resource ('document categories'), distinguishing it from sibling category tools like getIssueCategories by the 'document' qualifier. It states what the tool does unambiguously, though it doesn't explicitly differentiate itself from similar category-listing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when this tool should be used versus alternatives. There are no usage conditions, prerequisites, or exclusions mentioned, and no sibling alternatives are referenced. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilesCRead-only
List files
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe read-only nature is known. The description adds no behavioral details such as scoping to a project, pagination, or response format. It doesn't contradict annotations but provides minimal added value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the core action and is appropriately terse, though it does not expand on anything else.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a nested parameter object, no output schema, and zero schema descriptions, the description is far from complete. It lacks crucial details like what files are listed, the default behavior, return format, and any constraints. An agent would struggle to use this correctly without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter explanations. It fails to do so entirely, providing no meaning for 'format' or 'projectId' beyond what the schema's type and enum already convey. The nested structure with required fields is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('files'), making the basic purpose unambiguous. However, it does not differentiate from sibling tools like getAttachment or other list operations, and the term 'files' is somewhat ambiguous without context about what kind of files (project files? attachments?). It is clear but not fully distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as getAttachment or other listing tools. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer when this should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getGroupDRead-only
Show group
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already declares the read-only nature, so the description does not contradict it. However, the description adds no behavioral detail beyond that—it doesn't state what the response contains, whether it returns a single object, or how the include parameter affects the result. With no output schema, the description fails to carry the burden of explaining the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which might be seen as concise, but it is under-specified to the point of uselessness. There is no front-loading of key information, no structure, and the brevity reduces clarity rather than enhancing it. It is not appropriately sized because it omits essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, zero parameter descriptions, and a two-word description, the tool definition is completely inadequate. An agent cannot know what parameters to supply, what each parameter means, or what the response will look like. The tool is indistinguishable from many siblings and lacks even basic context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description 'Show group' provides no explanation of the parameters. It doesn't clarify that groupId is required, what format (json/xml) means, or what include options (users, memberships) do. The description entirely fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show group' is a tautology that restates the tool name without specifying that it retrieves a single group by ID. It fails to distinguish from sibling tool 'getGroups' or mention the inclusion of users/memberships. No verb-resource clarity is provided beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'getGroups'. The description does not mention the required groupId parameter, the optional include parameter, or any context for selecting this tool over others. No conditions, exclusions, or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getGroupsCRead-only
List groups
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already covers the read-only nature, and the description's 'List' is consistent with that. However, the description adds no behavioral detail such as pagination, ordering, response format, or whether all groups or only visible groups are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded with no filler or redundancy. It is efficient, though its brevity sacrifices useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only list tool with one required parameter that is documented in the schema. However, with no output schema and no description of return structure, pagination, or usage context, the definition is only minimally viable and leaves notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the required pathParams.format or explain the json/xml alternatives. It adds no meaning beyond what the input schema already shows, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List groups' uses a specific verb and resource, clearly indicating this is a read operation for multiple groups. It distinguishes from siblings like getGroup, createGroup, and deleteGroup, though it does not elaborate on scope or variant behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use getGroups versus getGroup, getMemberships, or search. The description provides no context for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssueDRead-only
Show issue
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, which the description aligns with ('Show' implies read), so no contradiction. However, the description adds no behavioral context beyond that, such as whether the response includes included resources (e.g., children, attachments) based on query parameters, or any consequences of the call. With no output schema, the description fails to disclose what an agent should expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. It contains a single sentence that adds no information beyond the tool name. There is no front-loading of critical details; the space is wasted on a tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nested objects, many parameters, and no output schema, making it moderately complex. The description provides no information about return format, pagination, error conditions, or how to combine parameters. Even with the read-only annotation, an agent cannot safely or correctly invoke this tool based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate by explaining the meaning of parameters (pathParams with format and issueId, queryParams with include). The description mentions none of these, leaving the agent without any semantic guidance beyond the raw schema types and enums. This is a complete failure to add value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show issue' is a tautology of the tool name 'getIssue'. It does not state what resource is retrieved, what fields or format are returned, or how it differs from siblings like getIssues. An agent cannot infer the tool's specific function from this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it retrieves a single issue by ID or that getIssues handles collections. There are no explicit use cases, exclusions, or 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.
getIssueCategoriesCRead-only
List issue categories
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares the tool is read-only, which lowers the bar. However, the description adds no behavioral context at all—no mention of what is returned, whether authentication is needed, if it requires a project, or how format/nometa affect the response. It contributes nothing beyond what the annotation already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, which is appropriate for conciseness. However, it is minimal to the point of under-specification; still, for the conciseness dimension alone, it is efficient and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool requires two path parameters (format and projectId) and has a nested schema, and there is no output schema to aid understanding, the description is completely inadequate. An agent cannot determine how to invoke the tool correctly, what the response looks like, or why the query parameter exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention projectId, format, or nometa, leaving the agent unaware of the required path parameters and the optional query parameter. This is a critical failure for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List issue categories' states a clear verb and resource, so an agent understands the basic action. However, it fails to mention that categories are scoped to a project (as required by the projectId parameter), and it does not differentiate from the singular 'getIssueCategory' sibling, leaving some ambiguity about scope and cardinality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as getIssueCategory, createIssueCategory, or getIssueStatuses. The description does not mention any context, prerequisites, or exclusions, so the agent has no basis to select this tool over its siblings beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssueCategoryDRead-only
Show issue category
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates safe read behavior, and the description merely repeats this with 'Show' without adding context about response format, pagination, or error behavior. With annotations present, the description adds no extra disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three words long, but this is under-specification rather than conciseness. There is no front-loading of important constraints or details; it fails to earn its minimal length with necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, a nested parameter object, and zero guidance in the description, the agent lacks essential context about expected return values and parameter semantics. This is inadequate for a tool that requires two parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the required parameters format or issueCategoryId. The schema defines an enum for format and a numeric ID, but the description provides no assistance in understanding their usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show issue category' uses a verb and resource, indicating a retrieval operation, but it lacks specificity about what information is returned or how it differs from getIssueCategories. It's minimally adequate but not clearly distinguishing beyond singular vs plural.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like getIssueCategories or updateIssueCategory. The description offers no context or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssuePrioritiesCRead-only
List issue priorities
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already tells the agent this is a safe read operation, so the bar is lower. The description adds no extra behavioral context, such as the output format (JSON/XML) or that it returns a list of priorities. It does not contradict the annotation, so a middle score is appropriate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (three words), which is concise, but it is under-specified rather than efficiently structured. It supplies almost no information beyond the name, so the brevity harms clarity rather than helping it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with no output schema, the description should at least mention the required parameter and what the returned list looks like. It also lacks any context about the format toggle. The given description is inadequate for an agent to know how to invoke it correctly beyond guessing from the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema requires a pathParams object with a nested required 'format' enum (json/xml), but the description makes no mention of this parameter or its purpose. With schema description coverage at 0%, the description must compensate and explain parameter semantics, but it eliminates all possibility of understanding the format requirement. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List issue priorities' clearly states the verb (list) and the resource (issue priorities), which is specific enough to distinguish it from the many sibling tools that concern other entities (statuses, trackers, categories). However, it does not add any further clarification about scope (e.g., all priorities or per project), so it lacks explicit differentiation 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.
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. For example, the sibling list includes getIssueStatuses and getTrackers, which are similar lookup tools; the description offers no context on how issue priorities differ or when one would choose this over those. No exclusions or alternative tool mentions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssueRelationCRead-only
Show issue relation
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's 'Show' is consistent with that, so there is no contradiction. However, the description adds no behavioral context beyond what the annotation provides—no mention of error handling, response format, or any side effects. With annotations present, the description is minimally adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it is under-specified rather than efficiently structured. It lacks crucial details about parameters and behavior, so the brevity is a deficiency, not a virtue. There is no front-loading of key constraints or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with two parameters and no output schema, the description is too sparse. It does not explain the purpose of the 'format' parameter, what the issueRelationId refers to, or what the response contains. An agent without prior knowledge would be unable to call this tool correctly based on the description alone. The annotations cover only read-only status, leaving major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter information. The schema defines 'format' (json/xml) and 'issueRelationId' (number), but the description does not explain what these mean, how they affect the call, or which is required. The description completely fails to compensate for the missing schema descriptions, leaving the agent to guess at parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Show') and a specific resource ('issue relation'), indicating a read operation. It distinguishes from siblings by resorting to the singular/plural naming (getIssueRelation vs getIssueRelations), but the description itself does not explicitly differentiate it from the plural listing tool. It is clear enough for a basic get-by-id operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention that it retrieves a single relation by ID, nor does it contrast with getIssueRelations or create/delete relation tools. An agent would have to infer the intended use from the name and schema, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssueRelationsCRead-only
List issue relations
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a non-mutating operation, and the description's 'List' aligns with that. However, the description adds no extra behavioral context, such as pagination, sorting, or scope of results (e.g., whether it returns all relations for an issue). With the annotation covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource. However, it is so brief that it sacrifices useful detail, though conciseness itself is well-handled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what the return value represents, but it does not. It also omits any parameter details or usage context. While the operation appears simple, the lack of any explanation of the expected result or how to invoke it leaves the description incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning the description provides no explanation of the parameters (pathParams with format and issueId). The description 'List issue relations' does not hint at how to specify the issue or output format. With zero schema coverage, the description must compensate, but it fails to do so, leaving the agent to guess parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List issue relations' states a specific verb ('list') and resource ('issue relations'), making the core purpose clear. It also distinguishes from the singular sibling 'getIssueRelation' by implying a collection operation, though it does not explicitly name the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like getIssueRelation (singular), createIssueRelation, or deleteIssueRelation. There is no mention of use cases, prerequisites, or conditions that would select this tool. The agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssuesCRead-only
List issues
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this is a safe read operation, and the description is consistent with that. However, the description adds no behavioral context beyond 'list'—no mention of pagination, filtering capabilities, response format, or any important constraints. With no extra behavioral disclosure, this is a minimal and underinformative description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but brevity here results in under-specification rather than concise utility. It is a fragment that omits critical detail, and it does not provide a complete or informative summary of the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has a large, nested queryParams schema, no output schema, and many closely related sibling tools. A two-word description is wholly inadequate for an agent to correctly select and invoke it. It fails to mention filtering, pagination, included resources, or how it differs from getIssue and search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It provides no explanation of the required 'format' path parameter or the extensive queryParams filter object. The agent is left with dozens of undocumented parameter names and no semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List issues'. It clearly identifies a read/list operation and is distinguishable from getIssue (single issue) and createIssue/updateIssue/deleteIssue. However, it does not explicitly differentiate from related search or getQueries tools, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use getIssues versus getIssue, search, or getQueries. No context is given about filtering, pagination, or common use cases. The agent must infer usage entirely from the schema and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIssueStatusesCRead-only
List issue statuses
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals the read-only nature, and the description only adds 'List', which repeats that without providing extra behavioral detail. It does not mention the required 'format' parameter, pagination, ordering, or what the response contains. With the annotation covering safety, the description adds minimal transparency beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (four words) with no wasted words, but it is under-specified. A good description balances brevity with necessary detail; here, the lack of any parameter or behavior explanation makes it feel incomplete rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a required format parameter and no output schema, the description fails to explain how format affects the output or what the statuses are. It does not mention any side effects, but readOnlyHint covers safety. Overall, an agent would struggle to call this correctly without opening the schema or guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters, but it completely ignores the only parameter 'format' (json/xml). The description offers no hint about the format parameter's role, leaving the agent to infer from the schema enum alone. This is a significant gap given the parameter is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List issue statuses' clearly states a specific verb and resource, making the tool's goal obvious. However, it does not differentiate from sibling tools like getTrackers or getIssuePriorities, so it misses the top score. The name itself also reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like getTrackers or getIssuePriorities. No context is provided about typical scenarios, prerequisites, or when to avoid it. The description gives zero usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMembershipDRead-only
Show membership
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, but the description adds no additional behavioral context beyond that. It does not disclose what the function returns, whether it throws errors for invalid IDs, or any special handling. Since annotations already cover read-only, the description should add more depth but fails to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested parameter object, no output schema, and zero description coverage, the description is completely inadequate. An agent cannot determine what the response looks like, what to pass for format, or what membershipId refers to. There is no context to guide usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the parameters. The schema shows pathParams with required format (enum json/xml) and membershipId, but the description gives no hint about what these mean or why format matters. The tool description adds zero value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show membership' is essentially a tautology of the tool name 'getMembership'. It does not specify what membership means, what resource it operates on, or how it differs from the sibling 'getMemberships'. The verb 'show' is vague and provides no additional clarity over the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention when to use getMembership rather than getMemberships (plural) or any other related tool. No context about prerequisites, filters, or the difference between singular and plural retrieval is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMembershipsCRead-only
List memberships
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description does not contradict it. However, the description adds no behavioral context beyond that, such as the pagination parameters (limit, offset) or the ability to omit metadata via nometa. It is neutral but uninformative, so a 3 is appropriate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, so it is concise in length. However, it is so minimal that it fails to convey essential details, and the key information (such as the project requirement) is not front-loaded. It is concise but not effectively structured for utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has nested objects, multiple parameters with no descriptions, and no output schema. The description 'List memberships' does not cover any of the necessary context: no explanation of the return format, no mention of pagination or filtering, and no indication of the required projectId. It is grossly incomplete for an API of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions exist in the schema. The description itself does not explain any parameter (format, projectId, limit, nometa, offset). This leaves the agent with no understanding of how to set these values, making the tool effectively unusable without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('list') and resource ('memberships'), which distinguishes it from single-membership operations like getMembership. However, it lacks any qualifier such as 'for a project' even though projectId is required in the schema, so the scope is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that getMembership is for fetching a single record, nor does it explain the context of project-based listing. The sibling names hint at distinctions, but the description itself offers no explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMyAccountCRead-only
Show my account
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates this is a read-only operation, and the description's verb 'show' aligns with that. However, the description adds no additional behavioral context, such as authentication requirements, rate limits, or return format specifics, beyond what the annotation provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it is under-specified to the point of being insufficient, trading depth for brevity, so it is not optimally structured for the tool's informational needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is incomplete: it does not explain the format parameter's role, clarify what 'my account' entails, or describe the expected response structure. The agent would be left with significant gaps for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter pathParams with a required format enum (json/xml), but the description does not explain the purpose or impact of this format parameter. With 0% schema description coverage, the description carries the full burden of parameter explanation but fails to provide any, leaving the agent to guess what 'format' controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show my account' uses a specific verb and resource, clearly indicating it retrieves the current user's account information. However, it does not differentiate it from sibling getCurrentUser, which likely serves a similar purpose, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool or how it differs from alternatives like getCurrentUser or getUsers. No context on typical use cases or prerequisites is given, leaving the agent to infer appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNewsDRead-only
Show news
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates the operation is read-only, so the description does not need to repeat that. However, beyond that, the description adds no behavioral context at all – it does not mention that it retrieves a single item, that format can be json or xml, or that the include parameter controls additional content. With zero behavioral disclosure in the description, and only the annotation covering safety, the description fails to convey anything about side effects, prerequisites, or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short ('Show news'), which at first seems concise, but it is under-specification rather than efficient communication. It provides no actionable information, front-loaded or otherwise. A concise description should pack useful details into a few sentences; this one offers nothing beyond a generic verb and resource name, so it fails the structure requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (nested pathParams and queryParams, enums, multiple sibling tools for news), the description is grossly inadequate. It does not explain what a news item is, how newsId is used, what the response looks like, or how this differs from getNewsList and getNewsListByProject. The agent has no way to correctly select and invoke this tool without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description provides no explanation of the pathParams or queryParams. The schema itself defines required fields (format, newsId) and enums (json/xml, attachments/comments), but the description adds no meaning or context to these parameters. In this low-coverage scenario, the description was supposed to compensate but does not, leaving the agent to guess parameter semantics from names and enums alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show news' is vague and fails to distinguish this tool from its many news-related siblings such as getNewsList, getNewsListByProject, and createNews. It does not state that this fetches a single news item by ID, nor does it specify what is returned. It only identifies the resource domain (news) without clarifying the exact operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus any of the alternative news tools. The description does not mention conditions like needing a specific newsId, format selection, or when to prefer getNewsList over getNews. An agent is left to infer usage from the schema alone, which is insufficient given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNewsListDRead-only
List news
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the read-only nature, so the description need not repeat that. However, it adds no behavioral context such as pagination, default limits, or response structure. Since annotations carry the safety profile, the description provides minimal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than appropriate conciseness. It consists of two words and conveys almost no information. It is not well-structured for an agent to extract actionable details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested objects, 0% schema coverage, no output schema, and related siblings, this description is wholly inadequate. It does not explain what a 'news list' contains, how parameters work, or how it differs from similar tools. An agent cannot reliably select or call this tool based on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not. The schema itself lists properties (format, limit, nometa, offset) but without descriptions, their semantics remain unclear. The description offers zero parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List news' states a verb and resource but is extremely vague. It does not specify scope (all news, per project, etc.) or differentiate from siblings like getNewsListByProject or getNews. It is barely more specific than a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as getNewsListByProject or getNews. The description fails to mention any context, prerequisites, or exclusions, leaving the agent to guess which listing operation to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNewsListByProjectCRead-only
List news by project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the tool is already known to be read-only and the description aligns with that. However, the description adds no additional behavioral context beyond 'list', such as output format, pagination behavior, or the purpose of the 'nometa' parameter. With annotations covering the safety profile, the description contributes minimal extra value, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no waste or unnecessary words. It is efficiently short, though it lacks any structure like examples or parameter notes. Given its brevity, it is appropriately sized but could benefit from a bit more detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested pathParams/queryParams structure with no descriptions, no output schema, and no parameter guidance. The description is far too incomplete for an agent to know how to invoke it correctly, especially the required format enum and the meaning of query parameters. With zero schema coverage and no return-type information, this is severely deficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% — none of the five parameters (format, projectId, limit, nometa, offset) are described in the schema. The description only hints that projectId scopes the list, but gives no meaning for format, limit, offset, or the const nometa. Since there are no schema descriptions, the description must carry the full burden and it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'List', resource 'news', and scoping 'by project', which is clear. However, it does not explicitly differentiate from sibling getNewsList (which likely returns all news) or getNews (single item). The 'by project' phrase implies the distinction but doesn't state it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention getNewsList as a broader alternative, nor any exclusions. The agent must infer based solely on the 'by project' phrasing, with no explicit context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectDRead-only
Show project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this as a read operation, so the description needs to add behavioral context beyond that. It does not mention that the 'format' parameter controls response serialization, that 'include' can expand related resources, or any details about response shape or error behavior. No value is added beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification, not conciseness. The single sentence 'Show project' merely restates the tool name and provides no structured or front-loaded information. It does not earn its place because it adds zero useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two required nested parameters, enums, and no output schema, but the description offers nothing about the return value, parameter semantics, or relationship to sibling tools. An agent cannot accurately invoke this tool or interpret its response from the given definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema leaves every parameter undocumented. The description must compensate by explaining what projectId, format, and include do, but it does not mention any of them. An agent has no guidance on how to construct valid calls or what values like 'trackers' or 'issue_categories' mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show project' is essentially a restatement of the tool name getProject, providing no additional specificity about what the project representation includes. It does not distinguish from sibling tools like getProjects or getIssue, nor does it mention any filtering or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as getProjects for listing or getIssue for a different resource type. The description gives no context about prerequisites, typical use cases, or conditions that would make this tool more appropriate than its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProjectsCRead-only
List projects
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates a read-only operation, so the description adds no further behavioral context. It does not disclose default behaviors (e.g., pagination limits, response format, or how query parameters affect results). The description is too sparse to provide transparency beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two words), but it is underspecified rather than efficiently composed. It lacks valuable information that would justify its brevity, making it more of a placeholder than a well-crafted concise description. The front-loading of the core verb is good, but the absence of any supporting details undermines its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the schema (nested objects, many query parameters, and no output schema), the description is grossly incomplete. It does not convey how to use the tool for filtering, what the format parameter does, or what the response looks like. An agent would struggle to invoke this tool correctly without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides no descriptions for any parameters. The description itself says nothing about the meaning or usage of pathParams or queryParams. The agent is left completely uninformed about parameter semantics, which is a critical failure given the number of optional filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List projects' specifies the verb 'list' and the resource 'projects', making the core purpose clear. It distinguishes from getProject (singular retrieval) but does not explicitly mention scope like filtering or pagination. It is sufficiently clear for an agent to know it retrieves multiple projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no mention of when to use this tool versus alternatives. It does not state that it is for listing all projects or filtering, nor does it reference siblings like getProject for single-item retrieval. The guidance is entirely implicit in the name and description, which is insufficient for complex decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getQueriesDRead-only
List queries
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, and the description's 'List' is consistent with a read-only operation, so there is no contradiction. However, the description adds no behavioral context beyond the annotation—no mention of pagination limits, response format, or side effects. With annotations present, the bar is lower, but the description contributes nothing extra, warranting a 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks structure and front-loads no useful information. Every word is wasted; there is no effort to organize content. The minimum viable length for a tool with multiple parameters would be several sentences, so this is inadequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no explanation of parameters, and no mention of response format or pagination, the description is severely incomplete. An agent has no idea what the tool returns or how to construct a valid request. Given the tool's moderate complexity (nested objects, required params), this is completely insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not explain any of the parameters. The schema exposes pathParams.format (json/xml) and queryParams (limit, nometa, offset), but the description gives no hint about their meaning, usage, or constraints. Since schema coverage is zero, the description must compensate but fails entirely, scoring 1.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List queries' is a verb+resource phrase but lacks specificity. It doesn't clarify what kind of queries (e.g., saved queries, search queries, or system queries) are being listed, nor does it distinguish itself from sibling list tools like getIssues or getProjects. It essentially restates the tool name in a minimal way, bordering on tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description provides no context about prerequisites, scope, or scenarios where getQueries is appropriate with respect to the many sibling tools. This is a complete absence of usage direction, scoring a 2 per the 'no guidance' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRoleDRead-only
Show role
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent with the description. However, the description adds no behavioral context—no mention of what happens if roleId is missing, response format, or any side effects. It merely restates the read-only nature already indicated by the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness—it does not earn its place by adding value. A single phrase with no structure or front-loading of essential information fails to be 'appropriately sized' for a tool with required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter (roleId) and no output schema, the description leaves out essential information: how to specify the role, what format expects, and what the response contains. The agent cannot correctly call this tool based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema itself documents the parameters (format and roleId) but the description does not provide any additional meaning. The description says nothing about what format does, what roleId represents, or how to use them. This is a critical gap given the nested object structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show role' uses a verb and resource, but it is extremely vague—it does not indicate how a role is identified (by ID?) or what is returned. It does not differentiate from the sibling tool 'getRoles' which likely lists roles, and it lacks any detail about the specific role resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'getRoles' or when to use a specific role ID. No context about selection criteria or exclusions is provided, leaving the agent without any direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRolesCRead-only
List roles
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already communicates that this is a read-only operation. The description adds no additional behavioral context, such as authentication requirements, pagination, or what data is returned. Since the annotation covers the basic safety profile, the lack of extra disclosure limits the value to the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two words—and the key information (action and resource) is front-loaded. It is not verbose, but it is also under-specified for a tool with a required parameter. It earns a 4 for efficiency but loses a point for missing context that could fit in the same length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the required 'format' parameter, the existence of sibling tools like getRole, and the absence of an output schema, the description is incomplete. It does not explain what roles are, how the format parameter works, or what response to expect. A more complete description would at least hint at the role object structure or the format's role in serialization.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema includes a required 'format' parameter with enum values 'json' and 'xml', but the description provides no explanation of why the format is needed or how it affects the output. With 0% schema description coverage, the description should compensate by explaining parameter meaning, but it does not. The agent is left to infer from the schema, which is explicit but not enriched by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List roles' uses a clear verb (List) and resource (roles), and the plural form contrasts with the sibling tool getRole, so the agent can infer it returns multiple roles. However, it does not explicitly note scope (e.g., all roles) or differentiate from other list tools like getIssues, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of whether to call getRoles versus getRole, or any context about filtering or prerequisites. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTimeEntriesCRead-only
List time entries
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's 'list' aligns with that. However, the description adds no behavioral context beyond the annotation—no mention of pagination, date ranges, default limits, or response structure. Since the annotation covers the core safety, the bar is lower, but still the description contributes little beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence is concise, but it is underspecified for a tool with a rich parameter schema. The description front-loads nothing about key filters or output format. It is brief, but brevity here comes at the cost of usefulness, so it is not 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large sibling list and the extensive query parameters, the description is severely incomplete. It provides no information on how to filter, the meaning of the format path parameter, or any usage context. An agent cannot infer correct invocation (e.g., which query fields are relevant) from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers zero explanation of the two required parameters (pathParams.format, queryParams) or the many optional query filters (from, to, user_id, project_id, etc.). The agent must rely entirely on the schema, which for arrays and enums is not self-explanatory. The description fails to compensate for the lack of schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'List time entries' clearly identifies the verb (list) and resource (time entries), distinguishing it from the singular 'getTimeEntry' and sibling create/update/delete operations. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of filtering scope, required context, or when getTimeEntry might be preferred. The description does not help an agent choose among the many time-entry-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTimeEntryCRead-only
Show time entry
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, so the agent knows this is a read-only operation. However, the description adds no behavioral context beyond that—no mention of required timeEntryId, return format, or any side effects. It adds zero value beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (five words), but it is under-specified. It lacks essential information about parameters and usage. This is not effective conciseness; it is a failure to provide necessary context. The structure is minimal but not informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with two required parameters and no output schema, the description should at least mention that it retrieves a single time entry by ID. It does not. The tool has moderate complexity due to nested pathParams, but the description provides almost no contextual detail, leaving the agent to rely solely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters, but it does not. The description 'Show time entry' does not mention that timeEntryId is required, nor does it clarify the format parameter. An agent cannot infer parameter meaning from this description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show time entry' clearly identifies the action (show) and resource (time entry), so an agent understands it retrieves a time entry. However, it does not differentiate from the sibling getTimeEntries, which likely retrieves a list. The clarity is adequate but lacks explicit distinction from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is for a single time entry by ID, nor does it exclude contexts where getTimeEntries or other tools should be used. There is no context or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTimeEntryActivitiesDRead-only
List time entry activities
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already declares this a read-only operation, so that is covered. However, the description adds no further behavioral context—no mention of output format, pagination, or the nature of 'activities'. With annotations present, the description provides minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is technically concise, but it omits essential information. It is under-specified rather than appropriately concise, lacking any detail beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, no output schema, and sits among many similar siblings, the description should clarify what 'time entry activities' are and when to use this tool. It provides none of that, leaving the agent without enough context to select or invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents a single 'format' parameter with an enum of json and xml, but the description does not mention it. With schema description coverage at 0%, the description fails to compensate by explaining the parameter's meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List time entry activities' states a clear verb and resource, but it does not distinguish what 'activities' means relative to the sibling 'getTimeEntries'. While it names the operation, it is vague about the specific entity being listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like getTimeEntries or other listing tools. There is no mention of context, exclusions, or prerequisites, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTrackersCRead-only
List trackers
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, and the description's 'List' is consistent with a read operation. However, the description adds no extra behavioral context beyond what annotations already provide. It doesn't mention the output format, pagination, or any side effects, so it doesn't compensate for the lack of detail beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, but it is under-specified rather than concise. It lacks essential details about the tool's behavior and parameters, making it too terse to be genuinely helpful. Conciseness should not sacrifice necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested object parameter and no output schema, the description is critically incomplete. It doesn't clarify what 'trackers' are, what the format parameter does, or what the response will contain. The agent has very little information to correctly invoke the tool beyond guessing, making this definition inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (pathParams) with a required nested 'format' enum (json/xml), and schema description coverage is 0%. The description does not mention or explain this parameter at all, leaving the agent without any understanding of what 'format' controls or why it's required. Since the schema has no descriptions, the description needed to compensate but didn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List trackers' uses a clear verb and resource, specifying an action (list) and an object (trackers). It is not a tautology since it expands on the tool name with a verb. However, it doesn't define what a tracker is or distinguish it from other list operations like getIssues or getProjects, but since there are no sibling tracker tools, this is acceptable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions. While the tool is straightforward, the description does not help an agent decide when to call it compared to other similar list operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUserDRead-only
Show user
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint: true already indicates this is a safe read operation, and the description does not contradict that. However, the description adds no behavioral context beyond the annotation—no mention of response format, pagination, permission requirements, or what happens with includes. It fails to provide any extra transparency that would help the agent predict side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two words), but conciseness is not the same as usefulness. While there is no wasted text, the single phrase fails to earn its place because it provides almost no substantive information. It is under-specified rather than elegantly brief, lacking any structured detail that would aid comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity—nested objects, required parameters, no output schema, and a schema with zero descriptions—the description is severely inadequate. An agent cannot infer what the tool returns, what the include parameter controls, or how format affects the response. Nothing about the tool's behavior or data shape is communicated, making it nearly impossible to call correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameters are completely undocumented in both the schema and description. The description 'Show user' gives no indication of what userId, format, or include mean, nor which are required. Since the description must compensate for the schema gaps and does not, parameter semantics are effectively absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show user' is a minimal restatement of the tool name and doesn't clarify which user is meant. It doesn't specify that it fetches a single user by ID, nor does it differentiate from sibling tools like getUsers (list) or getCurrentUser (current authenticated user). The verb 'show' is vague and lacks the specificity needed for an agent to know exactly what action occurs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description doesn't mention that it's for retrieving a specific user by ID, nor does it contrast with listing users or fetching the current user. Agents are left without any decision-making information, making it impossible to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUsersCRead-only
List users
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and 'List users' is consistent with a read-only operation. However, the description adds no additional behavioral context such as pagination via limit/offset, default result limits, or the response format. It provides no value beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two words, making it extremely concise. However, it is under-specified rather than appropriately concise. While there is no wasted text, the extreme brevity leaves out essential information, so it's not well-structured for a tool with this many parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters (one nested object with required format and another with optional filters) and no output schema, the description is severely incomplete. It doesn't explain the format parameter, filtering, pagination, or what the response contains. An agent cannot call this tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema itself has no descriptions for parameters. The description does not mention the required 'format' path parameter or any of the query parameters (name, limit, offset, etc.). It adds no semantic meaning to aid an agent in parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'List' and resource 'users', which clearly indicates a listing operation. While it doesn't explicitly distinguish from sibling tools like getUser or getCurrentUser, the plural form implies retrieving all users, and the action is unambiguous. Not a tautology, but could be more descriptive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like getUser or getCurrentUser. No mention of filtering, scoping, or conditions that would make this tool appropriate. The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getVersionsDRead-only
Show version
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is true, but the description adds no behavioral context beyond that. It does not disclose what the tool returns, whether it lists versions or retrieves one, or any side effects. Since the description carries the burden of behavioral disclosure (annotations are minimal), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified rather than concise. Every sentence should earn its place; this single sentence fails to provide any meaningful information. It is tautological with the tool name, not an efficient summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has nested objects, required parameters, and no output schema, the description is completely inadequate. It provides no information about what the tool does, what it returns, or how to use it correctly. An agent would have no idea how to invoke it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no descriptions in the schema), so the description must explain the parameters. However, it does not mention 'format' or 'versionId' at all. The meaning of these parameters (e.g., what format implies, what versionId refers to) is completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show version' states a verb and a resource, but it is extremely ambiguous. It does not specify what kind of version (e.g., a wiki page version, a version of a project, or a list of versions), and it fails to distinguish it from siblings like getVersionsByProject or getWikiPageByVersion. The purpose is not clearly scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, context, or exclusions. The description offers zero information on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getVersionsByProjectCRead-only
List versions by project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, covering the read-only nature. The description adds no supplemental behavioral context such as pagination, result ordering, or what fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is technically concise, but it is under-specified rather than concise. It lacks substance and does not earn its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description is incomplete. It does not describe the response format, potential errors, or any special behavior, leaving the agent to infer essential details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation of format, projectId, or nometa. The schema itself is somewhat self-evident, but the description fails to compensate for the coverage gap, offering zero semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (versions) with a scope qualifier (by project). It distinguishes from the sibling getVersions by implying project-specific filtering, though it doesn't name the alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus getVersions or other version-related tools. Lacks mention of prerequisites or scenarios where this is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWikiPageDRead-only
Show wiki page
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Show wiki page' is consistent with the readOnlyHint annotation, so no contradiction. However, it adds no behavioral detail beyond that trivial read action. It does not disclose that the response format is determined by the 'format' parameter (json/xml), or that query param 'include' can fetch attachments. Annotations cover safety only, so the description should provide context about output and optional behavior; it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three words ('Show wiki page') and is under-specified, not concisely informative. It is a fragment, not a complete sentence, and while it is short, it does not earn its place because it conveys almost no useful information. Structure is front-loaded but the content is minimal to the point of being unhelpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has nested objects, required parameters, enums for format and include, and no output schema, the description is severely incomplete. It does not mention that it retrieves a specific page by title and project, that format controls the response serialization, or that include can return attachments. An agent would need to inspect the entire schema to understand how to call it correctly, and even then the description provides no context on expected behavior. This is far from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate by explaining the parameters. It does nothing of the sort. It does not mention projectId, wikiPageTitle, format, or include. While parameter names are somewhat self-explanatory, the description adds zero meaning beyond the schema, and the nested required structure (pathParams/queryParams) is not addressed. This is a serious gap for a 2-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show wiki page' is extremely terse and does not distinguish this tool from siblings like getWikiPages (plural) or getWikiPageByVersion. It states a verb and a resource but lacks specificity about which page (by title and project) and how it differs from listing or version retrieval. This is minimal and vague, not a clear, specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention that it fetches a single page by project and title, nor does it reference getWikiPages for listing or getWikiPageByVersion for historical versions. No usage context or exclusions are provided, so the agent receives no help in selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWikiPageByVersionBRead-only
Show wiki page by specific version
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description 'Show' aligns with that. However, the description adds no behavioral detail beyond what the annotation provides—no mention of response format, error behavior, or how versionId is used. With annotations present, the baseline of 3 is appropriate as descriptions are not expected to repeat annotation info, but here no additional context is offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loading the core action. It contains no fluff or redundancy. For a tool with a simple purpose, this level of conciseness is ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With multiple required parameters, nested objects, and no output schema, the description is inadequate. It doesn't explain the expected response, how the version is selected, or any constraints on format/include. An agent cannot confidently call this tool without additional documentation or inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It fails to mention what format, projectId, wikiPageTitle, or versionId mean, or that queryParams can include attachments. The agent must rely entirely on the schema, which provides enums but no semantic meaning. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Show' and resource 'wiki page by specific version', clearly indicating retrieval of a specific historical version. It differentiates from siblings like getWikiPage and getWikiPages by the version focus, though it doesn't explicitly name them. The purpose is immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It doesn't mention that this is for retrieving a specific historical version, nor does it contrast with getWikiPage (current version). The agent would have to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWikiPagesBRead-only
List wiki pages
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description does not contradict it. However, the description adds no behavioral context beyond the annotation, such as scope, return shape, or pagination behavior, so it provides only minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler, and the action verb is front-loaded. It is concise, though the brevity partly reflects under-specification rather than deliberately compact completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a required nested parameter object and no output schema, the description is too thin: it does not state that projectId is required, that format can be json or xml, or what the list operation returns. The schema provides parameter mechanics, but the agent gets no broader context about scope or output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about pathParams, projectId, or format. The agent must rely entirely on the raw schema for parameter semantics, which is a significant gap for a required nested parameter object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource 'wiki pages', making the basic operation clear. The plural 'pages' distinguishes it from singular sibling tools like getWikiPage and getWikiPageByVersion, even though project scope is not mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of getWikiPage, getWikiPageByVersion, or other list-style tools. The description does not mention that projectId is required or that format should be chosen, leaving usage decisions entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeRelatedIssueC
Remove related issue
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, which is consistent with a mutation operation. However, the description adds no behavioral context—it doesn't disclose side effects, reversibility, or what precisely happens to the related issue. Beyond the annotation, the agent learns nothing about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short ('Remove related issue'), which is concise but at the expense of essential information. It under-specifies rather than efficiently communicating necessary details. This is under-specification, not effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (nested object with five required fields) and the absence of an output schema, the description is grossly incomplete. It provides no information about how to construct the request, what the parameters mean, or what the response will look like. Essential for agent success, all of this is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It doesn't mention any parameters, leaving the agent to infer from parameter names alone. The nested pathParams object has five required fields, but the description offers no explanation of their meaning or format, making correct invocation uncertain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Remove') and resource ('related issue'), but the resource is ambiguous without context. It doesn't clarify what a 'related issue' is or distinguish it from other removal tools like deleteIssue or removeWatcher. It's not a tautology, but it lacks specificity to differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or scenarios where this tool is appropriate. The agent receives no instructional context beyond the bare action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeUserFromGroupC
Remove user from group
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates this is a mutating operation, and the description aligns with that. However, the description adds no additional behavioral context such as permission requirements, reversibility, side effects, or failure modes. With annotations only covering the read-only hint, the description carries responsibility for deeper disclosure and fails to provide it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and efficiently phrased, but the brevity crosses into under-specification. It is not a model of concise clarity; it omits critical usage and parameter information, making it more of a placeholder than a helpful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested parameter structure and no output schema, the description is grossly incomplete. It does not explain the meaning of format, how to provide identifiers, or what the response looks like. Even basic operational context is missing, leaving an agent without sufficient information to succeed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters, but it does not. The schema requires format, groupId, and userId inside pathParams, none of which are mentioned. An agent relying on the description alone would have no idea how to construct the call correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove user from group' uses a specific verb and resource, clearly distinguishing the core action from siblings like addUserToGroup. It is not a tautology and immediately conveys the operation's intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when this tool should be used versus alternatives. The sibling list includes addUserToGroup and getGroup, but the description does not mention any conditions, prerequisites, or exclusions that would help an agent choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeWatcherD
Remove watcher
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false is consistent with the mutating nature of 'remove'. Beyond that, the description does not disclose any side effects, authorization requirements, or failure behaviors. It adds no behavioral context beyond what the annotation already implies, so the description carries little of the burden and provides minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceedingly short, which is not true conciseness but under-specification. It lacks any structure or detail about the operation, and every meaningful piece of information is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has a nested object parameter with three required sub-fields, no output schema, and no additional context. The description fails to explain the purpose, parameters, or operational behavior, making it wholly inadequate for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it mentions none of the parameters. It gives no hint that pathParams contains issueId, userId, or format, meaning the agent gets no help understanding what identifiers are needed or how they relate to the action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove watcher' provides a verb and a resource, but it is too vague to distinguish from other remove operations in the sibling list (e.g., removeUserFromGroup, removeRelatedIssue). It does not specify what a watcher is or what it is being removed from (likely an issue, given addWatcher exists), leaving the agent to infer context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, what prerequisites exist, or why it might be preferred over alternatives. The description gives zero context about the appropriate scenario 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.
reopenProjectD
Reopen project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already indicates a mutating operation, and the description's 'Reopen' is consistent with that. However, the description adds no behavioral detail beyond the annotation—no mention of side effects, permissions, or state requirements. It does not contradict the annotation, but it contributes minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is not concise but under-specified; 'Reopen project' is a fragment that omits essential context. While it is short, the brevity comes at the cost of clarity, leaving the agent with little actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested parameter structure, no output schema, and no parameter descriptions, the description must compensate but fails to do so. It does not explain what 'reopen' entails, how it relates to closeProject, or what the format parameter controls, making the tool practically unusable without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the parameters 'format' or 'projectId'. The nested structure is opaque, and the description provides no meaning beyond what the property names imply. This is a significant gap for a tool with undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Reopen project' clearly states a verb and resource, so it is not a tautology. However, it lacks any differentiation from sibling tools like unarchiveProject or closeProject; an agent cannot tell what 'reopen' specifically does or how it differs from similar actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as unarchiveProject or closeProject. No context about prerequisites (e.g., project must be closed) or exclusions is provided, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchDRead-only
Search
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes | ||
| queryParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true provides some behavioral signal, but the description itself adds nothing beyond the word 'Search'. It does not disclose that this is a read-only global search operation, nor any traits like pagination, result scoping, or permission requirements. While there is no contradiction with annotations, the description carries almost no behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single word is under-specification, not conciseness. The description does not front-load any differentiating or scoping information; it merely echoes the tool name. Given the complexity of the schema, this is severely inadequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has a complex schema with nested objects, multiple scoping options, and many boolean-like flags, and no output schema. The description provides none of the context an agent would need to form a correct query or interpret results. It is entirely incomplete for the tool's actual complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides zero explanation for any of the parameters. With 2 required parameters and numerous optional flags (news, nometa, all_words, titles_only, attachments with enum '0','1','only'), the description must compensate for the schema's silence on semantics, but it does not. Parameter names like q and limit are self-evident, but many others are cryptic without explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of whether it covers global search across projects, issues, wiki pages, etc., nor any exclusions or preferred use cases. The sibling list includes many resource-specific getters, but the description gives no hint about how search relates to them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchiveProjectD
Unarchive project
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint: false, indicating a mutation. The description implies a change of state but provides no details about what unarchiving does (visibility, status, side effects, reversibility). It adds no behavioral context beyond the annotation and the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks any structure to convey purpose, parameters, or usage. A single vague phrase cannot be considered appropriately sized for a tool with nested parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter with nested fields, no output schema, and no behavioral hints beyond annotations. The description provides none of this context, leaving an agent without essential information to call the tool correctly or understand its effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions none of the parameters (pathParams with format and projectId). It does not explain the purpose of format or projectId, nor the constraints (enum for format, required fields). The agent gets no help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unarchive project' simply restates the tool name with no added detail. It is a tautology: the name already conveys the same verb-resource pairing. It does not distinguish itself from sibling archiveProject or explain any scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of archiveProject or any context such as project status, prerequisites, or effects. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateAttachmentC
Update attachment
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation `readOnlyHint: false` already indicates this is a write operation, but the description adds no further behavioral context. It does not mention permissions required, whether the update is partial or full replacement, or any side effects. Given the low annotation coverage (only readOnlyHint), the description should carry more weight but doesn't.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (two words), which is concise but at the expense of clarity and informativeness. It is not well-structured because it omits essential details; this is under-specification, not effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 required parameters, a nested attachment object, an enum for format, no output schema, and no descriptions in the schema, the description is completely inadequate. There is no explanation of return values, error conditions, or how the request is structured. An agent cannot reliably use this tool based on the provided description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It provides none: the description says nothing about `pathParams` (format, attachmentId) or `bodyParams` (attachment with filename, description). An agent would have to infer parameter semantics entirely from the schema property names, which is insufficient for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update attachment' states a specific verb and resource, clearly distinguishing it from sibling tools like getAttachment and deleteAttachment. However, it doesn't specify what aspects of the attachment are updated (e.g., filename, description), leaving some ambiguity about its exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as uploadAttachmentFromLocalFile or updateIssue. There is no mention of prerequisites (e.g., attachment must exist) or the typical context for invoking an update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateGroupC
Update group
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false, conveying it's a write operation, but the description adds no behavioral context. It does not disclose whether updates are partial or replace the entire group, what happens to omitted fields, or any authorization requirements. For a mutation tool with minimal annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse but this is under-specification, not effective conciseness. It duplicates the tool name and provides no additional structured information. An appropriately concise description should convey core purpose and behavior in a few sentences without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nested objects, two parameters, and no output schema. The description is completely inadequate for an agent to call it correctly. It omits which fields can be updated, the meaning of format, how groupId is used, and any behavioral expectations. This is insufficient for a resource of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description 'Update group' provides zero information about parameters. The schema itself lacks descriptions for properties like groupId, format, and the group object's fields. The description does not compensate for the lack of schema descriptions, leaving agents to guess from property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update group' clearly states the verb (update) and resource (group), distinguishing it from sibling tools like createGroup, deleteGroup, and getGroup. However, it is terse and does not add specifics about what aspects of a group can be updated, relying on the schema for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., createGroup, addUserToGroup). It lacks context about prerequisites, such as whether the group must already exist, or any exclusions. Agents are left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateIssueD
Update issue
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already signals that this is a mutating operation. The description adds no behavioral detail beyond that—no mention of side effects, reversibility, authorization requirements, or what happens on partial updates. With annotation coverage, the bar is lower but still unmet; the description contributes no extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but this is under-specification, not conciseness. There is no useful structure or front-loading of key information. It fails to convey even the basic operation's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex schema (nested objects, many optional fields, no output schema, no descriptions), this description is grossly inadequate. An agent has no idea what fields are expected, what the response looks like, or what constraints apply. The complete lack of context makes this tool nearly impossible to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions no parameters at all. The tool has a nested bodyParams object with many fields (status_id, priority_id, custom_fields, etc.) but none are explained. The agent must rely solely on parameter names, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update issue' is essentially a tautology that restates the tool name. It provides no specificity about what kind of issue, which fields can be updated, or how this differs from createIssue. An agent cannot infer the actual operation beyond the name, making it nearly useless for disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like createIssue or other sibling tools. There is no mention of required context, prerequisites, or scenarios where this tool is appropriate. The description offers zero steerage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateIssueCategoryD
Update issue category
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint: false indicates a write operation, which aligns with 'Update'. However, the description adds nothing beyond that—it does not disclose side effects, permission requirements, idempotency, or what happens to existing data. Since the annotation carries the only behavioral signal, the description contributes minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, so it is concise in length, but it is under-specified rather than efficiently structured. It omits all actionable detail, making it more of a placeholder than a useful definition. Brevity here results from absence, not careful editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters (one nested), a required write operation, and no output schema, this description is grossly incomplete. It does not explain what fields can be updated, whether the update is partial or full, what the response looks like, or any constraints. An agent would be unable to invoke this tool correctly based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning all parameters are undocumented in the schema itself. The description offers no explanation of pathParams (format, issueCategoryId) or bodyParams (issue_category object with name and assigned_to_id). The agent has no semantic guidance beyond raw property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update issue category' is a near-verbatim restatement of the tool name 'updateIssueCategory', offering no additional detail about the operation. It fails to differentiate from sibling tools like createIssueCategory or deleteIssueCategory, and provides no specifics about what updating entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus other category-related operations. No mention of prerequisites (e.g., that the category must already exist), no comparison to alternatives, and no context about typical use cases. The agent receives no direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateJournalC
Update journal
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'update', which is consistent with readOnlyHint=false, but it adds no additional behavioral context such as permissions, side effects, or reversibility. With sparse annotations, the description fails to disclose any behavioral traits beyond the implied mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but that brevity is due to under-specification rather than efficient writing. It lacks essential structured information and thus is not appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has nested objects, an enum, required parameters, and no output schema, the description is severely incomplete. It does not explain the request structure, field semantics, or expected outcome, making it inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of any parameters. The agent cannot infer the meaning of 'format', 'journalId', 'notes', or 'private_notes' from the description, so it fails to compensate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'update' and the resource 'journal', so the core purpose is clear. However, it provides no detail about what aspects of the journal are updatable or any specific scope, making it minimally informative but not misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites or context. While the resource name distinguishes it from sibling update tools, the description gives no explicit direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateMembershipC
Update membership
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Update membership', which is a mutation consistent with the annotation readOnlyHint=false. However, it discloses no additional behavioral traits such as side effects, permission requirements, or what data is modified. It adds no value beyond the annotation and the tool name itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short phrase, but it is under-specified rather than concise. It lacks essential details, making it unhelpful. While it is front-loaded (the only content is the purpose), it does not earn its place because it adds almost no informative value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (nested objects, required fields) and the absence of an output schema, the description is completely inadequate. It does not explain what the tool does beyond the generic verb, nor does it clarify the required context like the meaning of membershipId or the structure of the body. This is a severely under-specified tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining the parameters. It does not even mention pathParams, bodyParams, or the role_ids field. The description provides no meaning beyond what the schema already encodes, failing to compensate for the lack of parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Update') and a resource ('membership'), but it is extremely terse and does not specify which aspects of the membership are updated. It does distinguish from sibling tools like createMembership, getMembership, and deleteMembership, but lacks the specificity that would help an agent understand the exact operation (e.g., updating role IDs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical scenarios, or contrast with updateIssue or other update tools. There is no contextual information to help an agent decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateMyAccountC
Update my account
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint: false, meaning it is a write operation. The description aligns with this by saying 'update', but it adds no further behavioral context—such as whether changes are immediately visible, if certain fields are protected, or if admin privileges are required. With no extra disclosure and no contradictions, the description barely covers the behavioral baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no wasted words. It is front-loaded with the essential action. However, its brevity edges toward under-specification, which costs it a 5, but it is still appropriately sized for the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the highly nested schema with many update options and no output schema, the description is severely incomplete. It gives no indication of what can be updated, how to structure the request, or any prerequisites. An agent would need to infer everything from the schema, which is complex and not self-explanatory. This is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters, while the schema has a complex bodyParams object with many nested fields (pref, user, etc.). Schema coverage is 0%, so the description should compensate by explaining what parameters exist or what they control, but it fails to do so. The agent must rely solely on the schema, which the description does not help map to real-world usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update my account' clearly states the verb (update) and resource (my account), which is sufficient for a basic understanding. It is not a tautology and distinguishes itself from siblings like 'getMyAccount' or 'updateUser' by implying the current user's account, but it lacks specificity about what fields are modifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as 'updateUser' (for other users) or 'getMyAccount' (for reading). It does not mention context like authentication requirements or that it modifies only the current user's account, leaving the agent to infer this from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateNewsD
Update news
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation), and the description's 'Update' is consistent. However, the description adds no behavioral details beyond the name—nothing about whether it does partial or full replacement, effects on existing data, required permissions, or response format. With no other annotations, the description fails to disclose any behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but conciseness is not about being minimal; it's about being efficiently informative. Two words ('Update news') are under-specified, not concise. There is no front-loading of key information because there is no information beyond the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, required params, enum format, no output schema), the description is completely inadequate. It lacks any context about usage semantics, parameter responsibilities, or expected outcomes, making it impossible for an agent to call correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameter meaning and relationships, but it says nothing about pathParams (format, newsId) or bodyParams (news object with title, summary, uploads, description). The nested structure and required fields are completely unexplained, leaving the agent without semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update news' is essentially a tautology of the tool name, lacking any specific verb+resource clarity beyond the name itself. It does not distinguish from sibling update tools like updateIssue or updateProject, and gives no indication what aspects of news can be updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g., needing an existing news ID or format), and no mention of any conditions that would select this tool over others. The description provides zero usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateProjectD
Update project
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: false, implying a write operation, which the description 'Update' aligns with. However, the description adds no behavioral context beyond that—no mention of side effects, partial vs. full updates, authorization requirements, or response details. With annotations covering the read-only distinction, the description still fails to disclose any additional behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (two words) but not appropriately sized for the complexity of the tool with two required parameters, one being a nested object with many properties. This is under-specification, not conciseness—the minimal text does not convey necessary information and fails to front-load any useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex schema (nested objects, many optional fields), no output schema, and no annotations beyond readOnlyHint, the description must carry significant explanatory weight. It provides none—no context about the nature of the update, how the project identifier works, or expected outcomes. This is completely inadequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description provides no information about the parameters. It does not mention pathParams (format, projectId) or bodyParams (project object with numerous fields). Since the schema gives no descriptions and the tool description is silent, an agent has no clue what each parameter means or how to construct valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update project' is a near-verbatim restatement of the tool name 'updateProject' with a space. It adds no specificity about what can be updated or how it differs from related project actions like archiveProject, closeProject, or deleteProject. This is a tautology rather than a purposeful clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as createProject, archiveProject, or the various update tools for other resources. The description does not mention target audience, prerequisites, or circumstances that select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTimeEntryD
Update time entry
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint: false, which is consistent with the 'update' verb, so no contradiction. However, the description adds zero behavioral context beyond the name: it does not state whether updates are partial or full replacements, whether hours is mandatory, what happens to unmentioned fields, or any authorization requirements. Since schema coverage is 0%, the description carries the full burden and fails to deliver.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It has no front-loaded key information, no structure, and every possible sentence is absent. It does not earn its place because it adds no value over the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with a complex nested schema (time_entry object, custom_fields, custom_field_values), no output schema, and no annotation beyond readOnlyHint false. The description provides none of the contextual detail needed to call it safely: no clarification of required fields, no mention of response format, no indication of side effects. Completely inadequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameter semantics, but it mentions nothing about pathParams (format, timeEntryId) or the bodyParams time_entry object with its multiple optional fields. The agent is left to interpret the schema without any guidance on how to construct a valid update request or what values like activity_id or custom_fields mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update time entry' is a tautology — it merely restates the tool name without any specification of what fields can be changed, what resource is affected, or how it differs from createTimeEntry or deleteTimeEntry. With 80+ sibling tools, including several time-entry operations, this provides no discriminating information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like createTimeEntry or deleteTimeEntry. No mention of prerequisites, typical use cases, or exclusions. An agent has no clues about whether to call update versus create based on existing state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateUserD
Update user
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=false already signals a write operation, and the description simply repeats this implication without adding substantive behavioral detail. It does not disclose side effects, permission requirements, update semantics (partial vs. full), or response behavior. The description contributes nothing beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While brief, 'Update user' is under-specification, not effective conciseness. There is no structure, no front-loading of critical details, and every word adds minimal value. A single verb-noun phrase is insufficient for a complex tool with two required parameters and nested objects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested bodyParams with many preferences, user fields), the description is completely inadequate. It does not explain the purpose beyond the obvious, does not clarify update behavior, and fails to provide the context needed to invoke it correctly. No output schema means the description should have explained return values, but it is silent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries no parameter information. The schema itself is rich with nested properties, but the description adds no meaning to help an agent understand parameter purpose, constraints, or relationships. It fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update user' is a tautology that merely restates the tool name (updateUser). It provides no detail about what fields can be updated, the resource context, or how it differs from sibling tools like createUser, deleteUser, or updateMyAccount.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, exclusions, or scenarios. The agent is left to infer when 'Update user' is appropriate, and the description offers no help in disambiguating from similar CRUD operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateVersionD
Update version
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint: false, indicating a mutation. The description adds no behavioral disclosure beyond the verb 'update' – no mention of side effects, permissions, irreversibility, or any operational nuances. With minimal annotation coverage, the description fails to inform the agent about the tool's behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified rather than concise. It front-loads nothing useful and omits essential detail, making it an inefficient use of the two words. It does not earn its place because it adds no value over the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested body parameters, multiple enums, and mandatory path parameters, a two-word description is utterly inadequate. There is no indication of what payload to construct, what the response might be, or any constraints. The output schema is absent, and the description provides no guidance, leaving the agent without the information needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two complex parameters (pathParams and bodyParams) with nested objects and enums, but schema description coverage is 0%. The description 'Update version' provides no information about parameter meaning, required fields (e.g., versionId, format), or what properties can be updated (name, status, sharing, etc.). It does not compensate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update version' repeats the tool name 'updateVersion' verbatim, offering no additional specificity about what updating a version entails or what fields are affected. It is a tautology that barely clarifies the tool's purpose beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No context is given about when to use this tool versus alternatives like createVersion, deleteVersion, or getVersions. There is no mention of prerequisites, typical use cases, or any guidance to aid tool selection among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateWikiPageD
Create or update wiki page
| Name | Required | Description | Default |
|---|---|---|---|
| bodyParams | Yes | ||
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the description's 'Create or update' adds no new behavioral insight. There is no mention of version handling, idempotency, or error conditions. For a mutation tool with no output schema, this is insufficient disclosure beyond what structured annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (single phrase), but it is under-specified rather than efficiently informative. It front-loads the core action but lacks any useful detail. It is not verbose, but the brevity works against it because it omits critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, required path and body parameters, an enum, and no output schema), the description is vastly incomplete. It does not explain the workflow, the role of each parameter, or expected behavior. An agent cannot correctly construct a valid call without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter explanations. It does not clarify the meaning of pathParams (format, projectId, wikiPageTitle) or bodyParams (wiki_page with text, version, comments). With zero compensation for the missing schema descriptions, the description adds no value on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create or update wiki page'. It distinguishes itself from read-only sibling tools like getWikiPage and deleteWikiPage, but does not explicitly differentiate from other write operations. It is not a tautology, but it is minimal and lacks specificity about the unique behavior of this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., existing project), conditions for create vs update, or any exclusions. An agent would have no idea whether to pick this over other wiki or project tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadAttachmentFromBase64ContentA
Upload attachment file from Base64 encoded content to Redmine and get upload token
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint: false already indicates a write operation, and the description states 'upload' which aligns with that. The description adds the behavioral detail that the operation returns an upload token, which is useful for downstream steps. However, it does not mention any side effects, authentication needs, or token lifespan, so it adds minimal context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that conveys all essential information without redundancy. It is front-loaded with the action and resource, and the token outcome is mentioned. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and output (token) adequately for a simple upload operation. It clearly identifies the input format, which differentiates it from the local-file sibling. It does not mention that the token is typically used in subsequent operations, but that is arguably implied by the Redmine workflow. Given the tool's simplicity and the clarity of the description, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add meaning beyond the input schema. The schema already provides descriptions for 'content' (Base64 encoded file content) and 'filename' (Filename to use in Redmine). The description merely repeats 'Base64 encoded content' without further elaboration. Since schema coverage is low (0% in tool description), the description should compensate, but it does not, though the schema itself is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (upload), the resource (attachment file), the source (Base64 encoded content), the destination (Redmine), and the result (get upload token). It immediately distinguishes this from the sibling uploadAttachmentFromLocalFile by naming the input encoding, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying the input type (Base64), so an agent can infer this tool is for Base64 content rather than local files. However, it does not explicitly state when to use this versus alternatives like uploadAttachmentFromLocalFile, nor does it give any exclusions or prerequisites. The context is clear but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadAttachmentFromLocalFileC
Upload attachment file from local file system to Redmine and get upload token
| Name | Required | Description | Default |
|---|---|---|---|
| pathParams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=false, indicating a write operation, and the description matches by saying 'upload'. However, the description adds no additional behavioral details such as whether the upload is permanent, what happens to the local file, authentication requirements, or rate limits. It only states the action and result, leaving the agent without knowledge of side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It front-loads the primary action and key differentiator (local file system) and includes the outcome. It is appropriately concise for a straightforward upload tool, with no filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits crucial context for correct usage. It does not explain that the returned upload token is meant for subsequent operations (e.g., attaching to issues), nor does it mention any prerequisites or dependencies. With no output schema and no usage guidelines, an agent is left without essential information about how to apply the token or when this tool is appropriate, making it incomplete for complex workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the tool description does not elaborate on any parameters. The schema itself provides descriptions for filePath and filename ('Path to the file to upload' and 'Optional filename to use in Redmine (defaults to basename of filePath)'), which are helpful, but the tool description adds no extra meaning. It fails to compensate for the low coverage, leaving the description's contribution to parameter understanding negligible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Upload attachment file from local file system to Redmine and get upload token'. It specifies the source (local file system) and the outcome (upload token), distinguishing it from sibling tools like uploadAttachmentFromBase64Content which uses base64 content instead of a local file. The verb 'upload' and resource 'attachment' are explicit, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the base64 alternative or other attachment-related tools. The description gives no context on typical use cases, prerequisites, or exclusions. An agent would have to infer usage from the name and sibling tools, which is insufficient for effective selection.
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.
90 tool updates
v1.2.0- First observed
addRelatedIssue - First observed
addUserToGroup - First observed
addWatcher - First observed
archiveProject - First observed
closeProject - First observed
createFile - First observed
createGroup - First observed
createIssue - First observed
createIssueCategory - First observed
createIssueRelation - First observed
createMembership - First observed
createNews - First observed
createProject - First observed
createTimeEntry - First observed
createUser - First observed
createVersion - First observed
deleteAttachment - First observed
deleteGroup - First observed
deleteIssue - First observed
deleteIssueCategory - First observed
deleteIssueRelation - First observed
deleteMembership - First observed
deleteNews - First observed
deleteProject - First observed
deleteTimeEntry - First observed
deleteUser - First observed
deleteVersion - First observed
deleteWikiPage - First observed
downloadAttachmentAsBase64Content - First observed
downloadAttachmentToLocalFile - First observed
downloadThumbnailAsBase64Content - First observed
downloadThumbnailToLocalFile - First observed
getAttachment - First observed
getCurrentUser - First observed
getCustomFields - First observed
getDocumentCategories - First observed
getFiles - First observed
getGroup - First observed
getGroups - First observed
getIssue - First observed
getIssueCategories - First observed
getIssueCategory - First observed
getIssuePriorities - First observed
getIssueRelation - First observed
getIssueRelations - First observed
getIssues - First observed
getIssueStatuses - First observed
getMembership - First observed
getMemberships - First observed
getMyAccount - First observed
getNews - First observed
getNewsList - First observed
getNewsListByProject - First observed
getProject - First observed
getProjects - First observed
getQueries - First observed
getRole - First observed
getRoles - First observed
getTimeEntries - First observed
getTimeEntry - First observed
getTimeEntryActivities - First observed
getTrackers - First observed
getUser - First observed
getUsers - First observed
getVersions - First observed
getVersionsByProject - First observed
getWikiPage - First observed
getWikiPageByVersion - First observed
getWikiPages - First observed
removeRelatedIssue - First observed
removeUserFromGroup - First observed
removeWatcher - First observed
reopenProject - First observed
search - First observed
unarchiveProject - First observed
updateAttachment - First observed
updateGroup - First observed
updateIssue - First observed
updateIssueCategory - First observed
updateJournal - First observed
updateMembership - First observed
updateMyAccount - First observed
updateNews - First observed
updateProject - First observed
updateTimeEntry - First observed
updateUser - First observed
updateVersion - First observed
updateWikiPage - First observed
uploadAttachmentFromBase64Content - First observed
uploadAttachmentFromLocalFile
TDQS
Scored across 90 tools
Most tools target distinct resources and actions, but there are notable overlaps: getMyAccount and getCurrentUser appear to serve the same purpose, and addRelatedIssue/removeRelatedIssue overlap with createIssueRelation/deleteIssueRelation. The attachment upload/download tools also come in pairs differentiated only by input/output format, which could cause misselection.
All tool names follow a consistent camelCase verb+noun pattern (e.g., deleteIssue, getProjects, createTimeEntry). Derived operations like addWatcher, removeWatcher, and uploadAttachmentFromLocalFile maintain the same style. The few exceptions (getNewsList, getVersions) are minor and still readable within the pattern.
At 90 tools, this is far beyond the typical 3-15 range. While the Redmine API is broad, the sheer number makes the tool surface unwieldy for an agent to navigate efficiently. Many tools could be consolidated or made optional, and the count borders on excessive for a usable MCP server.
The tool set covers nearly every major Redmine resource: issues, projects, users, time entries, news, relations, versions, wiki, attachments, plus configuration entities like statuses, trackers, roles, groups, and custom fields. The lifecycle (CRUD) is complete for most resources, and even advanced operations like archiving projects, adding users to groups, and uploading/downloading attachments are included.
Maintenance
Related MCP Connectors
An MCP server that provides access to Testiny projects, test cases and test runs
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for Linear project management and issue tracking
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server for interacting with Redmine using its REST API, enabling the management of tickets, projects, and user data through integration with LLMs.78MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables Claude Code to directly interact with Redmine project management systems, supporting issue management, project operations, and search features.229MIT
- AlicenseCqualityDmaintenanceModel Context Protocol (MCP) server for Redmine that provides comprehensive access to the Redmine REST API, enabling users to operate Redmine from MCP clients such as Claude Desktop.9020 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides an MCP server for interacting with Redmine's REST API, enabling LLMs to manage issues, projects, users, and time entries.MIT