Redmine MCP Server
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 Serverlist my open issues"
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
stdio-based Model Context Protocol server that wraps a Redmine instance through its REST API (*.json endpoints). It runs as a separate Node.js process; no changes to the Redmine Rails app are required.
Requirements
Node.js 20+
A Redmine user with an API access key (My account → Show API access key)
Network access from this process to your Redmine
REDMINE_BASE_URL
Related MCP server: Redmine MCP Server
Install
No install needed for normal use — coding agents launch it on demand via npx:
npx -y redmine-mcp-connectorSee CONNECTING.md for exact setup instructions for Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed, and any other MCP client, plus a local-build and Docker alternative.
To hack on the server itself, clone this repo instead:
npm install
npm run buildConfiguration
Environment variables (see .env.example):
Variable | Required | Description |
| yes | Base URL, e.g. |
| yes |
|
| no | Sets |
| no | If |
| no | If |
| no | Default |
| no | Max pages when using |
| no | Cap for |
Run
REDMINE_BASE_URL=https://your-redmine.example.com REDMINE_API_KEY=secret npm start
# or during development:
REDMINE_BASE_URL=... REDMINE_API_KEY=... npm run devConnecting to a coding agent
Full per-client instructions (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code, Zed, and generic MCP clients) live in CONNECTING.md. Quick example (Claude Desktop / Cursor / Windsurf all share this shape):
{
"mcpServers": {
"redmine": {
"command": "npx",
"args": ["-y", "redmine-mcp-connector"],
"env": {
"REDMINE_BASE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your_api_key_here"
}
}
}
}MCP resources (read-only)
URI | Description |
|
|
|
|
|
|
|
|
Tools overview
Naming: redmine_<resource>_<action>.
Issues: redmine_issues_list, redmine_issue_get, redmine_issue_create, redmine_issue_update, redmine_issue_add_comment, redmine_issue_delete (requires confirm: true), watchers add/remove, relations list/add/remove.
Projects: redmine_projects_list, redmine_project_get, create/update/archive/unarchive/delete (confirm for delete).
Users: redmine_current_user, redmine_users_list, redmine_user_get, create/update/delete (confirm for delete).
Time entries: list/get/create/update/delete (confirm for delete).
News: list/get/create/update/delete (confirm for delete).
Wiki: list pages, get page, create/update (PUT), delete (confirm).
Versions & categories: versions CRUD (confirm on delete), issue categories CRUD (confirm on delete).
Queries & metadata: redmine_queries_list, redmine_enumerations_list, redmine_trackers_list, redmine_issue_statuses_list, redmine_roles_list, redmine_role_get, redmine_custom_fields_list.
Groups (read-only): redmine_groups_list, redmine_group_get.
Memberships: list/create/update/delete (confirm on delete).
Attachments & search: redmine_search, attachment get/update/delete/upload/download (download returns base64, size-capped).
Repository (limited REST in stock Redmine): redmine_repository_revision_link_issue, redmine_repository_revision_unlink_issue (confirm). Listing repositories/revisions over JSON is not exposed by core Redmine; use redmine_request if you enable it, or plugins.
Escape hatch: redmine_request — only if REDMINE_ALLOW_RAW_REQUEST=true; DELETE requires confirm: true.
Safety
Destructive tools require explicit
confirm: truewhere noted.Set
REDMINE_READONLY=truefor read-only deployments.API keys are never logged by this server.
Docker
Build a local image:
docker build -t redmine-mcp-server:local .Run it (stdio MCP server):
docker run --rm -i -e REDMINE_BASE_URL="https://redmine.example.com" -e REDMINE_API_KEY="your_api_key_here" redmine-mcp-server:localUse this image in MCP config:
{
"mcpServers": {
"redmine": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "REDMINE_BASE_URL",
"-e", "REDMINE_API_KEY",
"docker.io/<docker-user>/redmine-mcp-server:latest"
],
"env": {
"REDMINE_BASE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your_api_key_here"
}
}
}
}Publish to Docker Hub Catalog
Login:
docker loginCreate and use a buildx builder (one-time):
docker buildx create --name redmine-mcp-builder --use --bootstrapBuild and push multi-arch image:
export IMAGE=docker.io/<docker-user>/redmine-mcp-server
export TAG=1.0.0
docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE:$TAG -t $IMAGE:latest --push .In Docker Hub, set your repository description from this README and mark it as public for catalog discovery.
Development
npm run lint
npm testContributing
Contributions are welcome.
See
CONNECTING.mdfor detailed client setup instructions.Read
CONTRIBUTING.mdfor local setup, coding expectations, and PR workflow.Follow
CODE_OF_CONDUCT.mdto keep collaboration respectful and inclusive.Use
SUPPORT.mdfor help channels and what details to include.Report vulnerabilities privately following
SECURITY.md.For public distribution templates (Docker + MCP directories), see
REGISTRY_PUBLISHING.md.
License
GPL-2.0-or-later (same family as Redmine).
Available Tools
69 toolsredmine_attachment_deleteA
Delete attachment (DELETE /attachments/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden of disclosing destructive behavior. It does this by showing the DELETE method and requiring confirm: true, which clearly signals an irreversible action. It does not mention permissions, side effects, or error behavior, but the confirm requirement is the most critical safety trait.
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, dense sentence conveys the operation, endpoint, and mandatory confirmation. There is no filler or 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 two-parameter destructive call with no output schema, the essential invocation details are present: resource, endpoint, and required confirm flag. It could add a note about irreversibility or permission requirements, but nothing critical is missing for calling 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 coverage is 50%; confirm is fully documented in the schema, while id has only type information. The description adds the endpoint template showing id is the path parameter and reiterates that confirm must be true, providing modest 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 states the exact operation ('Delete attachment') and the REST endpoint (DELETE /attachments/:id.json), making the tool's purpose immediately clear. This clearly distinguishes it from sibling attachment tools like redmine_attachment_get, redmine_attachment_update, and redmine_attachment_upload.
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 operation is unambiguous: use this tool to delete a specific attachment by ID. The endpoint and confirm requirement establish clear context, though it does not explicitly name alternatives or state 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.
redmine_attachment_downloadA
Download attachment binary (GET /attachments/download/:id.json or .bin). Returns base64 and content_type; size capped by REDMINE_MAX_DOWNLOAD_BYTES.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and discloses meaningful behavior: HTTP method, response format (base64 and content_type), and the REDMINE_MAX_DOWNLOAD_BYTES size cap. It does not mention auth, error handling, or cap-overflow behavior, but the disclosed details are substantive.
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 tight sentences with no filler. The core action is front-loaded, and every clause adds useful information: endpoint, response format, and size limit.
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 one-parameter GET operation, the description covers purpose, method, response shape, and a hard limit, which is largely sufficient to call the tool. The remaining gaps are authentication details and explicit positioning relative to redmine_attachment_get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is one required id parameter. The description does not directly define id as the attachment ID, but the /attachments/download/:id endpoint makes this inferable. This is acceptable for a single simple integer parameter but does not fully compensate for the missing schema 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 states the specific action ('Download attachment binary') and gives the exact GET endpoint, making the tool's purpose clear. It is distinguishable from attachment upload/update/delete siblings, though it does not explicitly contrast itself with redmine_attachment_get.
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 use case is implied: use this when you need the raw attachment binary or its base64 representation. The description does not name alternatives like redmine_attachment_get or provide explicit when-to-use / when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_attachment_getA
Get attachment metadata (GET /attachments/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It explicitly identifies the HTTP method as GET, signaling a read-only operation, and states that the result is metadata rather than binary content. It does not mention error behavior or auth, but those are less critical for this simple read.
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 entire description is one focused sentence that front-loads the action and result. The endpoint notation adds precision without extra 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?
For a one-parameter GET-by-id tool, the description covers what the tool returns (metadata) and the exact endpoint. There is no output schema, so a reader might want a few example fields, but nothing needed to invoke the tool correctly 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%, and the description does not explicitly describe the id parameter. However, the single required parameter is named 'id' and the description and endpoint make clear it is the attachment ID, so an agent can resolve its meaning without additional 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 names a specific verb ('Get'), a clear resource ('attachment'), and the result kind ('metadata'), with the REST endpoint. This distinguishes it from siblings like redmine_attachment_download and redmine_attachment_upload without needing to open their 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?
No explicit when-to-use or when-not-to-use statement is present. The word 'metadata' implies it is for retrieving attachment info rather than file content, but it never names alternative tools such as redmine_attachment_download.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_attachment_updateC
Update attachment metadata (PUT /attachments/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| attachment | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a mutating operation (PUT) but does not disclose side effects, whether metadata is overwritten in whole or part, authentication requirements, or any consequences. It does not even explicitly state that it modifies an existing attachment. This lack of behavioral context for a mutation tool 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 a single clean sentence that starts with the action and includes the endpoint. It has no wasted words and is well-front-loaded. While it is under-specifying, the conciseness itself is appropriate for the information provided.
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 an open-object parameter and no output schema, this description is severely incomplete. It does not explain the valid metadata fields, the response format, error conditions, or even whether the operation is partial or full replacement. The agent is left without critical information needed to 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?
The schema description coverage is 0%, and the description provides zero parameter information. The 'attachment' parameter is an open object (additionalProperties: {}), so the agent has no idea what properties are valid or expected. The description does nothing to clarify the structure or purpose of the attachment object, making it nearly impossible to construct a correct request 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 action: 'Update attachment metadata' and specifies the HTTP endpoint. It distinguishes itself from siblings like redmine_attachment_upload (which would handle file content) and redmine_attachment_delete. However, it doesn't explicitly name any sibling or contrast with them, so it earns a 4 rather than 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?
There is no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, required permissions, or typical scenarios. The description only states what it does, leaving the agent to infer from the sibling list. This is below the minimum viable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_attachment_uploadA
Upload a file to Redmine (POST /uploads.json). Returns upload token; attach via issue/wiki update using uploads array.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| content_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the return value (upload token) and its intended use, which is helpful. However, it does not state that this is a write operation, any authentication requirements, potential size limits, or error behavior. The description adds some value but is not rich enough for a higher score.
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 the action, endpoint, return value, and next step. It is front-loaded with the core purpose and wastes no words. Every piece of information is essential and directly useful to an 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 simple two-parameter tool with no output schema and no annotations, the description covers the essential elements: what it does, what it returns, and how to use the result. It lacks details like error handling or constraints, but the complexity is low and the provided workflow guidance is sufficient 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 covers both parameters (filename and content_base64) with minLength constraints, but the description provides zero additional meaning about them. Schema description coverage is 0%, so the description must compensate, but it does not mention parameters at all. The parameter names are self-explanatory, but the description adds no clarification on format, encoding, or constraints beyond what the schema already states.
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 a file to Redmine' and specifies the endpoint (POST /uploads.json). It also distinguishes from sibling attachment tools (get, download, delete, update) by focusing on the upload step and the token return. This is a specific verb+resource 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?
The description gives clear context for when to use it (when you need to upload a file) and even explains the follow-up workflow ('attach via issue/wiki update using uploads array'). However, it does not explicitly mention when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_current_userC
Current user (GET /users/current.json).
| Name | Required | Description | Default |
|---|---|---|---|
| include | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining behavior. It only restates the endpoint; GET implies a read, but it does not mention that authentication is required, what kind of user object is returned, or how the 'include' parameter affects the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repetition. It is appropriately terse for a simple tool, though it errs slightly toward under-specification rather than crisp 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?
For a simple one-parameter read operation this could be enough, but with no annotations and no output schema, the agent has no explanation of the return value or the include parameter's effect. Given the large sibling set and lack of routing guidance, the description is only complete for an agent already familiar with Redmine's /users/current.json endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description does not mention the optional 'include' parameter at all. The enum values in the schema give some hint, but the agent is left to infer what memberships, groups, api_key, and auth_source actually control.
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 identifies the resource ('Current user') and the exact endpoint ('GET /users/current.json'), making it clear this retrieves the authenticated user's own record. It does not explicitly contrast itself with the sibling redmine_user_get, but the special 'current' endpoint is specific enough to avoid most confusion.
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 this tool versus redmine_user_get or redmine_users_list. The endpoint implies 'current user' usage, but the description never states that this is for the currently authenticated account or that other user lookup tools should be used for arbitrary user IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_custom_fields_listB
List custom fields (GET /custom_fields.json).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden; mentioning 'GET /custom_fields.json' does convey a read-only operation. However, it does not disclose authentication needs, response shape, pagination, or the effect of the optional type filter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler; it communicates the operation and the underlying endpoint 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?
Adequate for a simple, optional-parameter list tool, since the core operation is clear. But the opaque 'type' parameter and lack of return-value/pagination context leave gaps an agent may need to resolve.
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 only defines 'type' as a string with no description, and schema description coverage is 0%. The description does not compensate by explaining valid values or filtering behavior, so an agent cannot know how to use the only parameter 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?
States a specific action ('List') on a distinct resource ('custom fields') and gives the canonical endpoint. This clearly distinguishes it from the many sibling list tools for issues, projects, users, and other resources.
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?
Provides no guidance on when to use this tool versus alternatives or how the optional 'type' parameter affects the result. The resource name makes basic use obvious, but explicit usage conditions and exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_enumerations_listA
List enumeration values (GET /enumerations/:type.json) e.g. issue_priorities, time_entry_activities, document_categories.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Enumeration type slug, e.g. issue_priorities, time_entry_activities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does state 'GET', which signals a read-only operation without destructive side effects, and the examples give some context. However, it fails to disclose response format, pagination, permission requirements, error behavior, or the fact that this tool only lists and cannot modify enumerations.
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, efficient sentence with the action first, the endpoint in parentheses, and three concrete examples. Every element earns its place; there is no filler, repetition, or redundant restatement of 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?
Given the tool's low complexity (one parameter, no output schema), the description covers the essential purpose and parameter usage. The endpoint and examples round out the picture. It omits return-value details, but the word 'list' makes it clear an array is returned, and there are no annotations to conflict.
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 100%-coverage description for the single 'type' parameter, including examples. The description adds the endpoint template showing 'type' as a path segment, but that is already implicit. Since the schema covers the parameter fullyahan, the baseline 3 is appropriate and the description does not add material new 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 uses a specific verb ('List') and resource ('enumeration values'), names the endpoint, and gives concrete examples (issue_priorities, time_entry_activities, document_categories). This clearly tells the agent what the tool does and distinguishes it from other list tools like redmine_trackers_list because it points to the enumeration API and the 'type' 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?
The description implies usage for retrieving enumerations and the examples hint at common types, but it does not explicitly state when to use this versus other list tools, nor does it mention any exclusions or alternatives. There is no guidance on validating the type against a known set or handling invalid types, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_group_getC
Get group (GET /groups/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral aspects. It does not mention authentication requirements, possible errors (e.g., 404 for missing group), or whether the response includes members or other details. The description is purely a functional statement without behavioral 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 very short and front-loaded with the action, but it is overly terse, omitting even a hint about the parameter or usage. While concise, it sacrifices useful context; a single sentence that only repeats the name and endpoint is borderline under-specification rather than effective 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 simple GET by ID, the description is minimally adequate but lacks key context such as when to use it, what it returns, and how it relates to listing groups. Given the large sibling set, the absence of any routing guidance reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, id, is documented in the schema but the description adds no additional meaning. It does not clarify that id refers to the group's numeric identifier or that it must be a positive integer (already in schema). With 0% schema description coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get group' and provides the exact HTTP endpoint. This distinguishes it from sibling list operations like redmine_groups_list and other group-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 no explicit guidance on when to use this tool versus alternatives. It does not mention that redmine_groups_list should be used to enumerate groups before fetching by ID, nor does it specify any prerequisites. Usage is only implied by the verb and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_groups_listB
List groups (GET /groups.json). May require admin permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| fetch_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose that this is a read-only GET operation and warns that admin permissions may be required, which is meaningful context. However, it omits pagination behavior, what happens when called without admin rights, and 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?
Two short clauses with zero wasted words; the purpose is front-loaded and the permission caveat follows. 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?
Given zero annotations, no output schema, and three undocumented parameters, the description is too thin. It covers purpose and a permission caveat but not pagination semantics, the meaning of fetch_all, or what the returned group list contains, leaving an agent to guess at 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 compensate, but it adds nothing about limit, offset, or fetch_all. The schema's defaults and min/max values give some meaning, yet the semantics of fetch_all and how pagination interacts with the admin requirement are left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List groups') and augments it with the exact API endpoint (GET /groups.json). With a sibling tool redmine_group_get present, an agent can immediately distinguish listing from fetching a single group. Purpose 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 given on when to use this tool versus alternatives such as redmine_group_get, redmine_users_list, or redmine_search. The admin-permission caveat hints at a prerequisite but does not explain when the tool is appropriate, when it is not, or what conditions should select another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_add_commentA
Add a journal note to an issue (same as update with notes only).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| notes | Yes | ||
| private_notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. The description only states it adds a note, which implies a mutation, but does not mention whether it is reversible, requires specific permissions, or what happens to the issue beyond the note. It also doesn't disclose any potential side effects or rate limits. For a write operation, 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 a single concise sentence that front-loads the primary purpose and includes a useful comparison. There is no wasted words or redundant information. It is appropriately sized for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, no output schema, and no schema descriptions, the description is too sparse. It does not explain what a 'journal note' is, how the parameters interact, or any behavioral expectations. An agent might not know whether the operation is atomic, what the response looks like, or if there are any constraints (e.g., note length limits). It is incomplete for a mutation 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 has no descriptions (0% coverage), so the description must explain the parameters. It does not elaborate on 'id' (beyond being an issue ID), 'notes' (the note content), or 'private_notes' (its effect). While the parameter names are somewhat self-explanatory, the description fails to add meaning beyond the schema's type and requirement information. It does not even mention that private_notes controls visibility, which is crucial 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 clearly states a specific action ('Add a journal note') on a specific resource ('an issue'). It also explicitly differentiates from the sibling tool by noting it is 'same as update with notes only', which tells an agent this is a focused subset of redmine_issue_update. This leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'same as update with notes only' implicitly tells the agent to use this when the sole intent is to add a note, rather than the broader update tool. However, it does not explicitly state 'use this when you only need to add notes' nor does it mention any exclusions or prerequisites. Still, the comparison to update provides clear enough guidance for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_add_relationC
Add a relation between issues (POST /issues/:id/relations.json).
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | ||
| relation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description implies a mutation via POST but does not state side effects, idempotency, permission requirements, or return format. For a write operation with zero annotation coverage, this is insufficient.
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, which is concise. However, it is under-specified to the point of being almost minimal, and it does not front-load any important usage constraints. It earns a middle score because brevity is appropriate, but substance is lacking.
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, a mutation behavior, and no output schema, so the description needs to explain more about the relation types, constraints, and response. The current description only states the endpoint and a generic action, leaving the agent without enough information 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?
Schema description coverage is 0% and the description adds no information about parameters. The nested 'relation' object with required fields 'issue_to_id' and 'relation_type' is only in the schema, and the description does not clarify their meaning, accepted values, or how they relate to the action. The description 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 clearly states the action: 'Add a relation between issues' with the specific endpoint POST /issues/:id/relations.json. This is a clear verb+resource. However, it does not differentiate from sibling tools like redmine_issue_remove_relation or redmine_issue_relations_list, so it misses the top score for sibling distinction.
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 removing a relation or listing relations. No context is given about prerequisites, typical use cases, or exclusions, so an 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.
redmine_issue_add_watcherB
Add a watcher to an issue (POST /issues/:id/watchers.json).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| issue_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the operation is a POST and adds a watcher, but it does not explain permission requirements, whether duplicate watchers are rejected or ignored, or whether the action is reversible. For a mutation tool, this is a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action and includes the endpoint. There is no wasted text or repetition of schema 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?
The tool is simple with only two required integer parameters and no output schema, so the description is largely adequate for basic invocation. However, the lack of usage guidance and behavioral context, especially with no annotations, leaves the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters at all. It does not explicitly map issue_id to the endpoint's :id or user_id to the watcher being added. While the parameter names are relatively self-explanatory, the description adds no semantic value beyond the bare 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 with a specific verb and resource: 'Add a watcher to an issue.' It also includes the exact API endpoint, making the operation unambiguous and easy to distinguish from siblings like redmine_issue_remove_watcher.
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 this tool versus alternatives. It does not mention exclusions, prerequisites, or relationships to related tools such as redmine_issue_remove_watcher, redmine_issue_update, or redmine_membership_update. The only implied usage is the literal 'add a watcher' action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_categories_listA
List issue categories for a project (GET /projects/:id/issue_categories.json).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It communicates a read-only GET operation through the endpoint specification, which is useful, but it does not mention pagination, ordering, permissions, or the exact shape of the returned list. This is adequate for a simple fetch but not rich.
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 concise sentence states the action, resource, scope, and endpoint with no filler. Every part earns its place and the key information is front-loaded.
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 definition is functional for invoking the tool: one clearly documented parameter and an explicit endpoint. However, with no output schema and no annotations, it omits potentially important operational context such as whether results are paginated or what the response objects contain, so it is not fully 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 fully documents the sole parameter project_id as 'project id or identifier', covering the meaning. The description adds only the path variable :id linkage, which mirrors the schema rather than introducing substantial new semantic 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 uses a specific verb and resource: 'List issue categories for a project', and reinforces it with the exact REST endpoint. This clearly distinguishes it from sibling tools such as redmine_issue_category_get and redmine_issues_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a project' implies the tool is used when all issue categories of a given project are needed, and the project_id parameter confirms the input. However, it does not explicitly contrast with alternatives like redmine_issue_category_get or state 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.
redmine_issue_category_createC
Create issue category (POST /projects/:project_id/issue_categories.json).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | project id or identifier | |
| issue_category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only states that the operation creates a category via POST. It does not disclose idempotency, error behavior, authentication needs, duplicate handling, or what the response contains.
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 filler, and the endpoint is useful context. It is economical, though the extreme brevity leaves out important operational details that other dimensions must penalize.
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 create operation with a nested payload, no annotations, and no output schema, the description is materially incomplete. It does not explain how to construct issue_category, what will be returned, or any constraints, so an agent cannot confidently invoke it correctly from 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 coverage is 50%: project_id is documented as 'project id or identifier', but issue_category is an opaque additionalProperties object with no field definitions. The description adds no meaning to the payload, so an agent cannot know what fields to include.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('issue category'), and includes the exact API endpoint. It is distinguishable from sibling category tools like list/get/update/delete, though it does not explicitly contrast against them.
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, nor any prerequisites like project existence or permission requirements. Usage must be inferred entirely from the word 'Create' and the endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_category_deleteA
Delete issue category (DELETE /issue_categories/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It reveals the destructive nature by requiring 'confirm: true' and the endpoint, which implies deletion. However, it doesn't state side effects (e.g., what happens to issues in that category), permissions required, or reversibility. The description is adequate for a simple delete but could be more transparent about consequences.
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 the essential action, endpoint, and confirmation requirement. It is front-loaded with the verb and resource. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a simple delete with only two params, the description is mostly adequate but lacks mention of any side effects or return format. There is no output schema, but the tool likely returns a success status. Still, for a destructive action, more context (e.g., what happens to associated issues) would be beneficial.
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 50%, with 'confirm' documented in the schema as 'Must be true to perform destructive action'. The description reinforces 'confirm: true', adding no new meaning. The 'id' parameter is not described in the schema or description, but its meaning is obvious. Overall, the description adds marginal value beyond the schema for 'confirm' but leaves 'id' unspecified.
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 'issue category', and includes the exact endpoint (DELETE /issue_categories/:id.json). It is unambiguous and distinguishes from sibling tools like update or create. The 'confirm: true' requirement is immediately highlighted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool (to delete an issue category), but does not explicitly state when not to use it or mention alternatives. The 'confirm: true' requirement could be considered a usage guideline, but there is no explicit guidance on selecting this over other deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_category_getB
Get issue category (GET /issue_categories/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The explicit HTTP GET signals a read-only, non-destructive operation, which is meaningful because no annotations are provided. However, it does not mention not-found behavior, permissions, or side effects, so the description carries only partial behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The action and endpoint are exactly what an agent needs for a simple one-parameter GET, so 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 trivial single-parameter read, the description plus schema provide the essential resource, method, and required parameter. It leaves usage-selection and response-shape details implicit, but those gaps are relatively minor given the 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 provides no explanation that 'id' is the identifier of the issue category to fetch; it only echoes ':id' in the endpoint. With no schema descriptions, the description needed to compensate and does not.
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 action, 'Get', on a specific resource, 'issue category', and the endpoint makes the target unambiguous. It does not explicitly contrast a sibling tool, but it is still clear enough to distinguish from the list/create/update/delete category 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 gives no guidance on when to use this tool versus redmine_issue_categories_list or the issue-category mutation tools. Usage is only implicitly suggested by the verb and resource, with no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_category_updateC
Update issue category (PUT /issue_categories/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| issue_category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it updates a category via PUT, implying a write operation, but says nothing about side effects, permissions, error handling, or what happens on invalid IDs. The minimal disclosure leaves the agent guessing about operational 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 a single concise sentence that front-loads the action. It is not verbose, but its brevity comes at the cost of necessary detail. The structure is clean but under-specified for 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?
The tool has an open object parameter, no output schema, and no annotations. The description does not cover the expected request body, possible response, or any operational context. An agent would struggle to construct a correct request without additional documentation. This is severely incomplete for an update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation of the parameters. While 'id' is self-explanatory, the 'issue_category' object is an open schema (additionalProperties: true) and the description gives no hint about required fields or structure. An agent cannot know what to put inside the object 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 clearly states the verb 'Update' and the resource 'issue category', and includes the HTTP method and endpoint, which distinguishes it from create/get/delete siblings. However, it doesn't specify what fields can be updated or provide any additional context beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like redmine_issue_category_create or redmine_issue_category_delete. It doesn't mention prerequisites, such as requiring an existing category ID, or when not to use it. The context is purely implied by the verb 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_createC
Create an issue (POST /issues.json). Body uses Redmine issue JSON shape.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue attributes, e.g. { project_id, tracker_id, subject, description } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects. It only says 'create an issue', implying mutation, but doesn't state what happens on success (e.g., returns created issue ID), whether the operation is idempotent (likely not), or any permissions required. The endpoint mention gives a technical hint but lacks behavioral detail.
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 that directly states the purpose, and the technical note about the JSON shape is useful. It is concise and front-loaded with the action. 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 tool has one nested object parameter with 100% schema coverage, but no output schema. The description is minimal and doesn't explain the required structure of the 'issue' object beyond a vague example. For a creation operation, the lack of behavioral detail (e.g., what happens on success, required fields) makes it incomplete 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?
The schema covers 100% of parameters, and the description references the Redmine issue JSON shape, which adds some meaning. However, the description doesn't elaborate on required fields or provide examples beyond what the schema description already gives (e.g., project_id, tracker_id, subject). It adds minimal 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 clearly states the action (create an issue) and the resource (issue), and mentions the HTTP endpoint, which distinguishes it from sibling tools like update or delete. However, it doesn't explicitly contrast with create variants for other resources (e.g., project_create), but the resource is clear enough.
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 redmine_issue_update for modifications or redmine_issue_add_comment for adding comments. No prerequisites or context (e.g., required project/tracker IDs) are mentioned, so the agent is left to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_deleteB
Delete an issue (DELETE /issues/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions the HTTP DELETE method and the confirm requirement, but it does not state that the deletion is permanent and irreversible, nor does it describe potential cascading effects on related data (e.g., comments, relations). This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately conveys the action and the critical safety requirement. It contains no filler or redundant information, and the confirm requirement is placed prominently.
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 delete tool with two parameters and no output schema, the description covers the core action and the confirm safeguard. However, it omits warnings about irreversibility and side effects, which are important for an agent to understand before invoking a destructive tool. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the id parameter beyond the schema, and it only restates the confirm requirement that is already captured in the schema's description ('Must be true to perform destructive action'). With schema description coverage at 50%, the description does not compensate for the missing documentation of the id parameter, though its meaning is intuitive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes an issue, names the specific HTTP endpoint (DELETE /issues/:id.json), and distinguishes it from the many sibling tools (e.g., redmine_project_delete, redmine_user_delete). The verb 'Delete' and resource 'issue' are explicit, leaving no ambiguity about the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the requirement for confirm:true, which is a usage guideline for the confirm parameter. However, it does not provide context on when to use this tool versus alternatives (e.g., when to archive vs. delete) or any exclusions. The name and endpoint imply it is the permanent-delete operation, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_getB
Get a single issue (GET /issues/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| include | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only shows the HTTP method (GET), implying read-only, but doesn't describe return format, error behavior (e.g., 404), authentication needs, or any side effects. The information provided is minimal and largely derivable from the name and HTTP verb, offering little 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 a single, focused sentence that front-loads the core purpose and the REST endpoint. There is no filler, and every word contributes to understanding what the tool does. Excellent 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 has two parameters and no output schema, the description is incomplete. It omits details about how the 'include' parameter modifies the returned issue, the response structure, and potential errors. An agent would need to guess or infer these aspects, which is a notable gap for a tool that could benefit from such guidance.
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 doesn't. The 'include' parameter's purpose and effect on the response are unexplained, though the schema provides an enum of allowed values. The 'id' parameter is implied but not described. With no description of parameters, an agent cannot infer how to use 'include' meaningfully.
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 (Get), the resource (issue), and the scope (single), and includes the REST endpoint. This unambiguously distinguishes it from sibling tools like redmine_issues_list (multiple), redmine_issue_create/update/delete (mutations). The agent can immediately understand what this tool does and when to pick it by name and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('Get a single issue') but does not explicitly state when to prefer it over alternatives, such as redmine_issues_list for multiple issues, nor mention any exclusions or conditions. While the purpose is self-evident, the description lacks direct guidance on selecting this tool versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_relations_listA
List relations for an issue (GET /issues/:id/relations.json).
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It does disclose the HTTP method (GET), implying a non-mutating read operation, but it does not mention pagination, response shape, or any side-effect guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It conveys the operation, resource, and exact endpoint compactly.
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 one-parameter read-only list operation, the description is largely complete: it names the resource, action, and endpoint. The lack of an output schema and description of return fields is a minor gap, but an agent can invoke the tool correctly with the information given.
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. The endpoint path '/issues/:id/relations.json' clarifies that issue_id is the target issue whose relations are listed, but the description does not add much beyond the parameter name and the obvious URL mapping.
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 action ('List') and resource ('relations for an issue'), with the exact endpoint. It is clear enough to distinguish from sibling relation-mutation tools like redmine_issue_add_relation and redmine_issue_remove_relation, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the verb 'List' and the GET endpoint indicate a read operation for retrieving an issue's relations. However, there is no explicit guidance about when to prefer this over related tools or any exclusions, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_remove_relationA
Delete an issue relation (DELETE /relations/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to perform destructive action | |
| relation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of safety disclosure. It does identify this as a destructive delete and adds the confirm gate, and the endpoint makes the affected resource explicit. However, it does not state irreversibility, authorization needs, or side effects, leaving some behavioral burden uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with no filler. The action, endpoint, and safety requirement are all front-loaded, 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 two-parameter delete with no output schema, the description plus schema give enough to invoke the endpoint correctly: the action, the confirm guard, and the path parameter. It could add response/error behavior or explicit relation_id semantics, but the low complexity keeps these gaps minor.
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?
Only confirm is documented in the schema; relation_id has no schema description, and the description does not explain what the relation_id refers to beyond the /relations/:id.json path. The confirm:true requirement duplicates the schema rather than adding new parameter meaning, so the 50% schema coverage gap is not compensated.
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 directly: 'Delete an issue relation' and gives the REST endpoint, which pins the resource to relations, not issues. This distinguishes it from siblings like redmine_issue_add_relation and redmine_issue_delete without needing their 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?
It implies usage by naming the delete action and the confirm prerequisite, but it never explicitly says when to prefer this over alternatives such as redmine_issue_add_relation or when not to call it. The confirm:true requirement provides some usage context, but no when/when-not guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_remove_watcherA
Remove a watcher from an issue (DELETE /issues/:issue_id/watchers/:user_id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| issue_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the destructive nature via the DELETE verb and the word 'remove', which implies mutation. However, it does not mention side effects, permission requirements, or error handling (e.g., what happens if the user is not a watcher). It is minimally transparent but not rich.
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 filler. It front-loads the action and includes the endpoint, making it efficient and well-structured. 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 delete operation with two parameters and no output schema, the description is adequate but not comprehensive. It states the action and endpoint but omits details like consequences, required permissions, or error behavior. Given the simplicity, it is minimally sufficient but could be more informative about what happens on success or failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It indirectly explains parameters via the URL template '/issues/:issue_id/watchers/:user_id.json', which maps issue_id and user_id to their roles. However, it does not explicitly define them or state that user_id is the watcher to remove. The URL provides a hint, but the description adds limited explicit semantics 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: 'Remove a watcher from an issue'. It includes the specific REST endpoint with HTTP method, making the purpose unambiguous and distinct from siblings like add_watcher. The verb and resource are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (removing a watcher) but does not explicitly contrast it with alternatives or state when not to use it. It does not mention conditions like 'use add_watcher to add a watcher' or any prerequisites. The context is clear but no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issues_listB
List issues (GET /issues.json). Supports filters and optional fetch_all to merge pages.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| offset | No | ||
| include | No | ||
| subject | No | ||
| query_id | No | ||
| author_id | No | ||
| fetch_all | No | ||
| status_id | No | ||
| project_id | No | project id or identifier | |
| tracker_id | No | ||
| category_id | No | ||
| subproject_id | No | ||
| assigned_to_id | No | ||
| fixed_version_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the read-only nature via 'List' and the fetch_all page-merge behavior, but lacks details on default pagination, response format, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The endpoint is front-loaded and the only extra behavioral detail is included directly.
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?
A 15-parameter tool with no annotations and no output schema needs far more explanation. The description does not describe the response, default sorting/limits, or the interplay of fetch_all with offset/limit, so an agent would struggle.
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 only 7% (just project_id). The description adds a generic 'Supports filters' and explains fetch_all's purpose, but leaves the other 14 parameters semantically unexplained.
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 and resource ('List issues') and explicitly names the REST endpoint. It does not explicitly differentiate from sibling tools like redmine_issue_get, but the action and resource are 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?
Describes the tool's capability (filters, fetch_all page merging) but gives no guidance on when to prefer it over redmine_issue_get or other list tools, nor any exclusions. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_statuses_listA
List issue statuses (GET /issue_statuses.json).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. The explicit 'GET' method and 'List' wording indicate a read-only operation, but authentication requirements, pagination, and response format are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It conveys both the human-readable action and the exact API endpoint with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list operation, the description provides enough to invoke the tool confidently. It does not describe the response array, and there is no output schema, but the resource name and endpoint make the result shape reasonably inferable.
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 tool has zero parameters and the schema is an empty object with 100% coverage, so there is nothing for the description to add about parameter meaning. Baseline of 4 applies for no 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 specific verb ('List') and resource ('issue statuses') and includes the exact endpoint. This clearly distinguishes it from sibling tools like redmine_issues_list and redmine_projects_list.
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, no exclusions, and no contextual conditions. Usage must be inferred entirely from the name and action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_updateB
Update an issue including notes/comments (PUT /issues/:id.json). Pass issue fields and optional notes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| issue | Yes | Fields to update, e.g. { status_id, done_ratio, notes: 'comment' } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description alone must disclose behavior. It reveals that the operation is an update via PUT and supports optional notes, but it does not mention required permissions, response behavior, or side effects on existing fields. It is not misleading, but under-discloses for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence front-loads the operation, states the endpoint, and gives the calling pattern. No filler or repetition beyond the useful note about comments.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter update with a nested issue object, the description supplies the endpoint, the mutating intent, and the notes capability. It falls short of complete because there is no output schema and no mention of response or success/failure behavior, but an agent has enough to construct a basic correct call.
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 only 50%; the issue object is described in the schema with an example, and the description mostly restates that ('Pass issue fields and optional notes'). It adds no new meaning for the id parameter nor for accepted update fields, so the low-coverage schema is not compensated.
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 and resource ('Update an issue') plus the notable capability of including notes/comments, which distinguishes it from redmine_issue_create and redmine_issue_add_comment. The PUT endpoint reinforces exactly what operation is performed.
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 intended use is implied: pass issue fields and optional notes when updating an existing issue. However, it never explicitly tells an agent when to choose this over redmine_issue_add_comment for comments-only updates 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.
redmine_membership_createC
Create membership (POST /projects/:project_id/memberships.json).
| Name | Required | Description | Default |
|---|---|---|---|
| membership | Yes | ||
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only reveals that this is a POST (write) operation to a specific path. It says nothing about whether creating a membership over an existing one replaces it, what permissions are needed, what happens on duplicate creation, or what the success response contains. For a mutating tool with zero annotation coverage, this is a substantial 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 a single tight sentence with the verb front-loaded, and the HTTP endpoint is genuine routing information rather than filler. Every word earns its place, and it is easily parseable at a glance. It is under-specified in content, but that deficiency is properly penalized in the other dimensions.
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?
Both parameters are required, the membership object is an opaque nested structure, and there is no output schema or annotations to fall back on. An agent cannot construct a valid membership body from this description alone—it would have to guess at the required fields. The endpoint and project_id mapping are useful, but the critical payload shape and success/error semantics are entirely 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 50%; project_id is documented in the schema ('project id or identifier') and the endpoint clarifies it as the target project. However, the required membership object is described only as additionalProperties: {} with no field documentation, and the description adds nothing about what it should contain (e.g., user_id, role_ids). At 50% coverage the description should partially compensate, but it does not.
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 ('Create') and resource ('membership') that distinguish it from siblings like redmine_membership_update and redmine_membership_delete. The exact endpoint, POST /projects/:project_id/memberships.json, adds concrete routing information beyond the tool name. However, it never explains what a membership actually is in Redmine terms, so an agent's understanding of the domain object remains thin.
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 prerequisites (e.g., that a user and role must exist before creating the membership, or that project membership management permission is required), nor does it route the agent to redmine_membership_update for modifications or redmine_project_memberships_list for viewing existing memberships. Usage intent is left entirely to inference 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.
redmine_membership_deleteB
Delete membership (DELETE /memberships/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, but it adds little beyond the schema. The DELETE method and "Requires confirm: true" echo information already present in the schema (the confirm property describes this as a destructive action). It does not disclose irreversibility, permissions needed, side effects, or what happens to related data, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with clear front-loading: action first, then endpoint, then the critical requirement. There is no redundant filler, and every element earns its place for a simple delete operation.
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 two-parameter delete tool, the description is adequate but not complete. It tells the agent what action to perform and the confirm requirement, but omits context about the destructive nature's permanence, permission prerequisites, and potential impacts on related project memberships. Given no annotations or output schema, a bit more context would make it fully self-sufficient.
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 only 50%, with the id parameter undocumented. The description's endpoint path (/memberships/:id.json) implies id is the membership identifier, which adds a bit of meaning, but it does not explain how to obtain the id, what type of membership it refers to, or any additional semantics. The confirm parameter explanation is redundant with 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 states a specific verb and resource: "Delete membership", and even gives the exact REST endpoint (DELETE /memberships/:id.json). This clearly distinguishes it from sibling tools like redmine_membership_update and redmine_membership_create, leaving no ambiguity about its 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. The description does not mention that this tool is for removing a user's membership from a project, nor when to prefer it over update/create. The only extra information, "Requires confirm: true", is an invocation requirement, not a usage-selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_membership_updateC
Update membership (PUT /memberships/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| membership | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining behavior. It reveals only that the operation is an update/PUT; it does not disclose required permissions, whether the update replaces or merges the membership object, side effects, or response characteristics. The HTTP method adds a little context, but not enough.
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 text is concise and includes the endpoint, with no wasted words. However, it is so sparse that it under-serves an agent; the single sentence earns its place but does not form a well-rounded tool 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 mutation tool with nested parameters, no output schema, no annotations, and no parameter documentation, this description is far from complete. An agent cannot determine what to put in the membership object, what the response will look like, or what preconditions exist.
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 adds no parameter-level meaning. The input schema shows 'id' and a free-form 'membership' object, but the description does not explain required fields within membership, accepted values, or the relationship between the parameters. The description 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 states a clear verb and resource: 'Update membership' followed by the PUT endpoint. This makes it distinguishable from sibling membership create/delete/list tools by action, though it does not explicitly name alternatives or define what 'membership' refers to beyond the endpoint.
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 this tool vs. redmine_membership_create or redmine_membership_delete. The verb 'Update' implies existing memberships only, but the description never states that an id for an existing membership is required or that create should be used for new memberships.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_news_createC
Create news (POST /projects/:project_id/news.json or POST /news.json with project identifier).
| Name | Required | Description | Default |
|---|---|---|---|
| news | Yes | ||
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals the HTTP method and two POST endpoints but does not describe side effects, authorization requirements, validation behavior, duplicate handling, or the response/error format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every part earns its place: the action, the primary endpoint, and the alternative POST form with project identifier are all communicated 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?
With no annotations, no output schema, and a nested 'news' object that is essentially undocumented, this description is not complete enough to invoke the tool correctly. An agent can identify the endpoint but cannot construct the payload or anticipate results or errors 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?
The description adds little beyond the schema: the schema already documents project_id as 'project id or identifier', and the description only repeats that idea. The required 'news' object has no schema description and no description-level explanation, leaving the agent without any clue about required fields or payload 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 clearly names the operation ('Create news') and gives exact endpoints, which makes its purpose evident among the news resource siblings. It does not explicitly contrast with redmine_news_update or other news tools, so sibling differentiation is implicit rather than stated.
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 redmine_news_update or redmine_news_delete. The only usage signal is the verb 'Create' and the endpoint, with no mention of prerequisites, permissions, or when to prefer one POST form over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_news_deleteB
Delete news (DELETE /news/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description repeats the 'confirm: true' requirement already present in the schema, adding no new behavioral information. It does not disclose side effects, irreversibility, or authentication requirements. With no annotations, the description carries the full burden and fails to provide meaningful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the action front-loaded. It avoids verbosity, though it may be too terse for completeness; however, that is a completeness issue rather than a conciseness flaw.
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?
As a destructive delete operation, the description is minimal and lacks crucial context: return values, side effects, permission requirements, or any consequences. It does not explain what happens after deletion or if the action is reversible. This is insufficient for an agent to fully assess the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only reiterates 'confirm: true' which is already documented in the schema. It provides no explanation for the 'id' parameter, which lacks a schema description. Thus, it adds no semantic value beyond what the schema already provides.
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 'Delete news' with the specific HTTP endpoint, making the action unambiguous. It distinguishes from sibling news tools (create, update, list, get) by the verb and path.
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?
It mentions the confirm prerequisite, which is a usage requirement, but does not explicitly guide when to use this over alternatives. Since it is a delete, the context is self-evident, but no permissions or exclusions are noted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_news_getA
Get news item (GET /news/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of conveying the side-effect profile. The explicit GET method and 'Get' verb indicate a read-only operation, but there is no mention of error behavior, authentication needs, or response details. This is adequate for a minimal read endpoint but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently provides the action, resource, and endpoint without redundant explanation.
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 one-parameter read endpoint, the description covers the essential call shape: method, resource, id, and JSON format. However, it omits contrast with redmine_news_list and does not mention auth or error behavior, which matters more because no annotations or output schema are present.
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?
Although schema_description_coverage is 0%, the path template /news/:id.json communicates that id is a URL path parameter, which is meaningful beyond the schema's type and requiredness. With only one parameter, this is sufficient for an agent to understand how to supply it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific operation ('Get news item') and the exact endpoint, clearly identifying the resource and HTTP method. It is immediately distinguishable from sibling news tools like redmine_news_list and redmine_news_create.
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 instead of redmine_news_list or other news-related tools. There are no alternatives mentioned, no prerequisites, and no context about when a single item lookup is appropriate versus listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_news_listC
List news (GET /news.json).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| fetch_all | No | ||
| project_id | No | project id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It only states the action and endpoint, but does not disclose pagination behavior, that it returns a list, or any read-only implications. No side effects or constraints are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence and no wasted words. It front-loads the primary purpose. However, it is so sparse that it borders on under-specification rather 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?
For a tool with 4 optional parameters and no output schema, the description is incomplete. It does not explain how parameters interact (e.g., fetch_all vs limit/offset), what the response structure looks like, or any filtering capabilities. The agent lacks essential information 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 only 25% (only project_id has a description). The description itself says nothing about parameters, so it does not compensate for the low coverage. An agent cannot understand the meaning of limit, offset, fetch_all, or project_id beyond their raw schema definitions.
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' clearly states the action (list) and resource (news), and the API endpoint adds specificity. It distinguishes from sibling tools like redmine_news_get, redmine_news_create, etc., by clearly indicating the list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like redmine_news_get. It does not mention pagination, filtering by project, or any conditions that would select 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.
redmine_news_updateC
Update news (PUT /news/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| news | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full responsibility for behavioral disclosure. It only says 'Update', implying mutation, but does not mention effects, idempotency, required permissions, failure scenarios, or that it replaces the entire news object. This is a significant gap for a mutable operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, front-loaded with the action. It is not verbose, but it is under-specified rather than genuinely concise — the endpoint adds little value and no other useful information is packed in.
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, no output schema, and no annotations, this description is drastically incomplete. It fails to explain what 'news' may contain, any update semantics, or expected results, leaving an agent with almost no context to call 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?
Schema description coverage is 0% and the description provides no parameter meaning. It does not explain that 'id' is the news identifier or what structure the 'news' object should have. Given the nested object with additionalProperties allowed, this absence is critical 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?
Description states a clear verb and resource: 'Update news'. This distinguishes it from sibling tools like redmine_news_create and redmine_news_delete. However, it adds little beyond restating the tool name and provides the HTTP endpoint, which is not directly useful for an AI agent.
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 prerequisites, conditions, or exclusions. The sibling context implies the operation, but the description itself offers no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_archiveC
Archive project (PUT /projects/:id/archive.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavioral traits. It indicates a mutating action ('Archive') but does not explain side effects (e.g., impact on issues, reversibility), required permissions, idempotency, or return value. The endpoint reference adds little behavioral 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—one short sentence that includes the action and endpoint. It is front-loaded with the key verb and resource, with no redundant words. Though it forgoes extra context, it is appropriately compact for such a simple operation.
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 without annotations and without an output schema, the description is incomplete. It omits critical context such as whether archiving is reversible, consequences for associated issues, constraints on which projects can be archived, and what the response looks like. An agent would need to infer too much.
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 single parameter 'id' is fully described in the schema (100% coverage) as 'project id or identifier'. The tool description adds no additional semantics beyond what the schema already 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 verb 'Archive' and the resource 'project', and includes the HTTP endpoint, making the action specific and unambiguous. It implicitly distinguishes from siblings like unarchive and delete by naming a different verb, though it does not explicitly contrast them.
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 redmine_project_unarchive or redmine_project_delete. There is no mention of prerequisites (e.g., project must not be already archived), intended context, or conditions that would make this the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_createC
Create project (POST /projects.json).
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only mentions POST, implying a write operation, but omits any details about permissions, side effects, error conditions, or idempotency. The description is too thin to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with no fluff, but it is under-specified. It front-loads the action, yet lacks essential information. It is concise but not sufficiently informative to earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a nested object parameter and no output schema, the description is far from complete. An agent cannot correctly call this tool without additional documentation. It lacks information about required fields, formatting, or how the response is structured.
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 defines a single 'project' object parameter with no property descriptions (coverage 0%). The description does not explain what fields are required or expected, such as name, identifier, or description. The agent has no guidance on how to construct a valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create project' and the HTTP endpoint. It distinguishes from siblings by specifying creation, which is unambiguous. However, it does not elaborate on what a project is or any specifics beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like redmine_project_update or redmine_project_archive. The description only states the action, leaving an agent without context on prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_deleteA
Delete project (DELETE /projects/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | project id or identifier | |
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the destructive nature ('Delete project') and the confirm requirement, but does not elaborate on side effects, reversibility, or permissions. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing the action, endpoint, and key requirement. No wasted words; it is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with two parameters and no output schema, the description provides the essential calling information (endpoint, confirm requirement). It lacks notes on side effects or prerequisites, but these are not critical for basic 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 coverage is 100%, with both parameters documented. The description adds 'Requires confirm: true', which reinforces the schema but does not add new meaning. Baseline 3 applies because the schema already explains the parameters fully.
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 action, 'Delete project', with the REST endpoint 'DELETE /projects/:id.json' and the confirm requirement. It clearly differentiates from siblings like redmine_project_archive or redmine_project_update by naming the destructive delete operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly address when to use this tool versus alternatives like archive/unarchive, which serve as less destructive options. It only mentions the confirm parameter, not usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_getA
Get project (GET /projects/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | project id or identifier | |
| include | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description bears the full burden. It discloses the HTTP GET method, implying a read-only operation with no destructive side effects. However, it omits authentication requirements, error behavior, and response format details, so transparency is only partially 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 a single, front-loaded sentence with the core action and endpoint, and contains no filler or redundancy. It is appropriately sized for a simple retrieval operation, though it trades explanatory depth for 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 low-complexity GET endpoint, the basic action is clear, but the absence of annotations and output schema leaves the optional include parameter and the expected return value undocumented. An agent could invoke it from the schema alone, but the description alone would not fully explain behavior or results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the description adds little beyond the schema: it repeats ':id' in the endpoint but does not explain the include array. The enum values in the schema carry most of the meaning for include, not 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 uses a specific verb ('Get') and resource ('project') plus the REST endpoint, making the action unmistakable. It clearly contrasts with sibling list/create/update/delete project tools, even though it does not explicitly name them.
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 usage is implied: 'Get project' and the '/projects/:id.json' endpoint indicate this retrieves a single project by id/identifier. However, no explicit when-to-use guidance or alternatives are provided, so an agent must infer when to choose this over redmine_projects_list or other project tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_memberships_listB
List project memberships (GET /projects/:id/memberships.json).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| fetch_all | No | ||
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the HTTP method GET, implying a read-only operation, but it says nothing about pagination behavior, result shape, or auth/permission requirements. For a tool with no annotations, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the action, resource, and endpoint in a compact, scannable format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and only 25% parameter coverage, the description is too sparse. It leaves pagination semantics, return format, and operational behavior unexplained, making it incomplete for an agent to call confidently.
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 only 25%, with only project_id described. The description adds no meaning for limit, offset, or fetch_all, and only indirectly references project_id via the ':id' path placeholder. With low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('project memberships'), and includes the exact endpoint. It clearly distinguishes this tool from sibling membership mutation tools like redmine_membership_update and redmine_membership_create.
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 via the verb 'List' and the resource name, but it does not explicitly state when to use it or mention any alternatives/exclusions. There are no close sibling list alternatives, so the context is clear but guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_projects_listB
List projects (GET /projects.json).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | ||
| include | No | ||
| fetch_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It only indicates GET/read-only and gives no information about pagination behavior, default limits, authentication requirements, or the shape of the returned object.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no filler. It is efficient, though perhaps too terse to support the richer parameter set.
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 five-parameter endpoint with no output schema and no annotations, this description is the bare minimum. It tells the agent the endpoint but not what to expect from status/include/fetch_all, leaving the agent to guess at 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?
With 0% schema description coverage and five parameters (limit, offset, status, include, fetch_all), the description mentions none of them. An agent cannot determine what 'include' supports or how fetch_all interacts with limit/offset.
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 names the operation explicitly ('List projects') and gives the endpoint, which clearly identifies a read-only collection operation. The verb 'List' differentiates it from sibling single-project tools like redmine_project_get and from mutation 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 usage is implied by the tool name and the verb: call it to obtain a collection of projects. However, it offers no explicit guidance on when to prefer it over redmine_project_get, nor does it mention pagination or filtering strategies for large result sets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_unarchiveA
Unarchive project (PUT /projects/:id/unarchive.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It reveals the HTTP method (PUT) and the state-changing nature of the operation, but it does not disclose potential side effects, permission requirements, or behavior when the project is not archived.
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 includes the operation and endpoint. It is front-loaded with the action and contains no redundant filler.
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 one-parameter, straightforward unarchive operation, the description provides enough to invoke the tool correctly: the action, the HTTP method, and the endpoint. It is slightly light on behavioral context, but the low complexity keeps it from being incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the only parameter 'id' as 'project id or identifier', so schema coverage is 100%. The description adds no additional parameter-level detail, which is acceptable given the baseline for fully covered schemas.
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: 'Unarchive project' with the exact endpoint. It is clear and unambiguous, but it does not explicitly differentiate itself from the sibling tool redmine_project_archive beyond the antonym in the name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'Unarchive' — an agent can infer it is for restoring an archived project. However, there is no explicit when-to-use guidance or mention of the alternative redmine_project_archive for the opposite operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_project_updateC
Update project (PUT /projects/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | project id or identifier | |
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Update' and the PUT endpoint. It does not state whether fields are replaced or merged, what permissions are required, what happens on invalid IDs, or what response is returned. This is thin for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clean, front-loaded sentence that wastes no words and includes both the action and endpoint. Its brevity reflects missing guidance rather than deliberate economy, but structurally it is tight and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations, no output schema, and a nested payload object, the description is too sparse: an agent knows the endpoint but not which project fields are updatable, whether the update is partial or full, or what authorization is needed. More context is required 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?
The schema documents 'id' but the 'project' object is an opaque additionalProperties container with no field descriptions, so coverage is only 50%. The description adds no meaning to either parameter and does not list which project fields can be updated, leaving an agent to guess the payload shape.
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 action ('Update project') and the exact endpoint (PUT /projects/:id.json), which clearly identifies both the resource and operation. Among siblings like redmine_project_create, archive, unarchive, and delete, 'update' is unambiguous and distinguishes this tool without needing to open the schema.
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 use update instead of create, archive, unarchive, or delete, nor about prerequisites such as the project already existing or required permissions. The sibling list implies the category, but the description leaves all selection logic to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_queries_listA
List saved queries visible to the user (GET /queries.json).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| fetch_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose the GET method and the user-visibility scope, which imply a read-only operation, but it does not mention pagination behavior, result shape, or any other API quirks the agent should know.
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 front-loaded sentence provides the essential purpose and endpoint with no filler. Every word adds value, making the description easy to scan and act on.
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?
Adequate for a simple list endpoint, but there is no output schema and no parameter documentation in the description, so the agent must infer return shape and pagination semantics. The lack of guidance around fetch_all and offset/limit behavior leaves a noticeable 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?
Schema description coverage is 0%, and the description does not compensate by explaining limit, offset, or fetch_all. The parameter names and defaults in the schema hint at pagination, but the description itself adds no meaning to the 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 an explicit verb ('List'), a concrete resource ('saved queries'), and the scope ('visible to the user'), plus the API endpoint. This clearly distinguishes it from sibling list tools like redmine_issues_list or redmine_projects_list.
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 resource and endpoint make the intended use inferable, but the description does not explicitly say when to prefer this tool over alternatives or when it should not be used. There is no exclusion guidance, so the usage context remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_repository_revision_link_issueA
Link an issue to a repository changeset (POST /projects/:id/repository/:repository_id/revisions/:rev/issues.json). Requires API permission on repository.
| Name | Required | Description | Default |
|---|---|---|---|
| rev | Yes | ||
| issue_id | Yes | ||
| project_id | Yes | project id or identifier | |
| repository_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the permission requirement, but does not disclose whether linking is idempotent, whether it can be repeated, what side effects occur on the issue or changeset, or what the response looks like. For a mutating POST operation, this is a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the purpose, and the second adds the endpoint and a key prerequisite, so every sentence 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 link operation, the essential invocation details are present: all four required parameters are implied by the endpoint and action, and the permission note is useful. However, with no output schema and no annotations, the description does not explain success/error behavior or the response format, so an agent cannot fully anticipate the result of the call.
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 only 25%, so the description must compensate for the undocumented parameters. The endpoint template maps `:id`, `:repository_id`, and `:rev` to parameters, and the action explains `issue_id` generally, but it does not clarify the format of `rev` (e.g., hash vs number), whether `repository_id` accepts an identifier, or the meaning of `issue_id` beyond the obvious. This is only marginal 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 states a specific verb ('Link') and resource ('an issue to a repository changeset'), which clearly conveys the action. It also includes the exact HTTP endpoint, and the sibling `redmine_repository_revision_unlink_issue` provides an obvious inverse contrast, so an agent can distinguish this from other repository tools without inspecting 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 gives clear context for when to use the tool: associating an issue with a changeset, and it mentions the prerequisite API permission on the repository. It does not explicitly say 'use unlink_issue to reverse this' or list exclusions, but the inverse sibling name and the linking verb make the intended usage sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_repository_revision_unlink_issueA
Unlink an issue from a changeset (DELETE .../revisions/:rev/issues/:issue_id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| rev | Yes | ||
| confirm | Yes | Must be true to perform destructive action | |
| issue_id | Yes | ||
| project_id | Yes | project id or identifier | |
| repository_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is a DELETE operation (implying destructive) and explicitly requires 'confirm: true', which is critical for safe invocation. It does not mention side effects, reversibility, or permissions, but the confirm requirement and HTTP method are significant behavioral disclosures.
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 that states the action, the endpoint, and the confirm requirement with zero fluff. It is front-loaded with the core purpose and includes the necessary safety caveat.
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 5 required parameters, no output schema, and no annotations, the description is too sparse. It does not explain what each parameter represents (beyond names), any prerequisites (e.g., the issue must already be linked), or the expected outcome. The agent would need to infer parameter semantics from names alone, which is risky for a mutation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (only project_id and confirm have descriptions). The description adds no new parameter information, only reiterating the confirm requirement. It does not explain rev, issue_id, or repository_id, which are undocumented in the schema. With low coverage, the description should compensate but 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 clearly states the action: 'Unlink an issue from a changeset', with the HTTP DELETE endpoint explicitly provided. It distinguishes from the sibling tool redmine_repository_revision_link_issue by the verb 'Unlink' versus 'Link'. The purpose 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?
The description implies usage for removing an issue from a changeset, but it does not explicitly mention when to use this tool versus the sibling link tool or any conditions (e.g., only if the issue is already linked). There is no explicit when/when-not guidance or mention of alternatives, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_role_getA
Get role (GET /roles/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It transparently shows this is a read-only operation via the GET method constant. It does not disclose error behavior, authentication needs, or any response-shape details, but for a simple fetch, the method and endpoint provide adequate baseline 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?
One compact sentence contains the verb, resource, and endpoint with no filler. The key action is front-loaded 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 single-parameter read endpoint with no output schema, the description is nearly complete: it provides the action, resource, endpoint, and method, while the schema covers the required id. The only minor omission is an explicit statement of return value or error behavior, but the simplicity of the tool keeps this from being 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?
Schema description coverage is 0%, so the description must compensate. It partially does by mapping id to the :id placeholder in the endpoint, making clear the parameter identifies the role to fetch. It adds little beyond the schema, but for a single obvious id parameter, this is sufficient to invoke 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?
States a specific verb and resource ('Get role') and includes the exact endpoint (GET /roles/:id.json), which identifies a single-resource fetch rather than a list operation. It distinguishes from the sibling redmine_roles_list by singular resource and id path parameter, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the endpoint and required id clearly suggest using this tool when you need one role by ID. However, the description gives no explicit guidance about when to prefer this over redmine_roles_list or other related tools, and it does not mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_roles_listA
List roles (GET /roles.json).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only reveals the HTTP method (GET), which implies a read-only operation, but gives no information about pagination, authentication requirements, response format, or limits.
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 that conveys the purpose and endpoint with no filler. It is appropriately concise for a no-parameter list endpoint.
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 no annotations, the description should ideally explain what the response contains or any caveats. It is minimal yet sufficient for a zero-parameter list call, but an agent receives no return-format or pagination context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed since the input schema is an empty 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 states a specific verb and resource: 'List roles'. It also includes the exact endpoint (GET /roles.json). This distinguishes it from the sibling redmine_role_get, which retrieves a single role.
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 verb 'List' implies when to use the tool, but there is no explicit guidance about when to prefer this over redmine_role_get or other sibling tools. No exclusions or alternatives are mentioned, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_searchC
Search Redmine (GET /search.json).
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| limit | No | ||
| scope | No | ||
| offset | No | ||
| project_id | No | limit to project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'GET /search.json' does signal a read-only operation, but nothing is disclosed about pagination, default limit, result shape, authentication requirements, or how scope/project_id affect 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 one short, front-loaded sentence with no filler. It loses a point only because it is too terse to carry much operational 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 5 parameters, no annotations, and no output schema, a one-line endpoint reference is insufficient. The agent knows this is a search endpoint but lacks the search semantics, scope options, pagination behavior, and return format needed to call it 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 only 20%, so the description needs to compensate, but it adds no parameter context. The five parameters (q, limit, scope, offset, project_id) remain effectively undocumented beyond the schema's minimal type 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 states a clear verb ('Search') and resource ('Redmine') and names the exact API endpoint, so an agent can tell this is the global search tool. It doesn't explicitly differentiate from sibling list/get tools, but no sibling is named 'search', so ambiguity is low.
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 verb 'Search' implies the tool is for ad-hoc queries across Redmine rather than fetching a known resource by ID, which gives some contextual guidance. However, it never states when to prefer this over sibling list tools or mentions exclusions/alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entries_listC
List time entries (GET /time_entries.json).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| limit | No | ||
| offset | No | ||
| user_id | No | ||
| issue_id | No | ||
| fetch_all | No | ||
| project_id | No | ||
| activity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It does convey that this is a read-only listing operation via 'List' and the GET verb, but it says nothing about pagination defaults, fetch_all behavior, response format, or API limits. For a list endpoint, this is minimal but not wholly absent.
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 and technically concise, but it is under-specified for a tool with 9 parameters and no other documentation. It is not that the words are wasted; it is that almost all necessary information is absent, making this more 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?
This is a list endpoint with a parameter-heavy schema, no annotations, and no output schema, yet the entire description is one sentence. An agent has no way to know about default limits, date input formats, available filters, or pagination behavior. The description is not remotely complete enough to support 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?
The schema has 9 parameters with 0% description coverage, and the description adds no parameter information whatsoever. Names like limit, offset, user_id, and project_id are self-evident, but date format for 'to' and 'from', semantics of 'fetch_all', and activity_id meaning are unexplained. The description completely fails to compensate for the lack of schema 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 states a specific verb and resource: 'List time entries (GET /time_entries.json).' This clearly identifies the operation and the API endpoint, and it distinguishes from CRUD siblings like redmine_time_entry_get or redmine_time_entry_delete by resource and action. However, it does not explicitly differentiate from other list tools beyond the resource name, which is implicit from the tool 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, such as redmine_time_entry_get for a single entry or filtered list variants. No mention of use cases like date range reporting, user/project filtering, or pagination is provided. The agent is left to infer all usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entry_createC
Create time entry (POST /time_entries.json).
| Name | Required | Description | Default |
|---|---|---|---|
| time_entry | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool creates a time entry via POST, but does not disclose authentication requirements, side effects, required nested fields, idempotency, or what happens if required data is missing. This is minimal for a mutating operation.
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, and the essential action is front-loaded. The inline HTTP endpoint adds minor redundant detail but does not hurt readability.
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 create operation with a nested object parameter, no annotations, no output schema, and no parameter documentation in either the schema or the description. The description is far too sparse for an agent to know what fields to send, what response to expect, or what prerequisites must be met. It is substantially incomplete.
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 undocumented nested object parameter (time_entry) with 0% description coverage. The description only says 'Create time entry' and adds no information about the object's internal structure, required fields, formats, or constraints, so an agent cannot construct a valid payload from the definition 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 action ('Create time entry') and the resource, and the HTTP endpoint reinforces the operation. It is easily distinguished from sibling tools like redmine_time_entry_get, redmine_time_entry_update, and redmine_time_entry_delete by the create verb, though it does not elaborate on what a time entry contains.
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 use this tool versus alternatives, such as redmine_time_entry_update for modifying existing entries or redmine_time_entries_list for viewing them. The appropriate usage is only implied by the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entry_deleteB
Delete time entry (DELETE /time_entries/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only repeats the confirm requirement (already in the schema) and implies destructiveness via 'Delete' but does not mention irreversibility, permission requirements, or any side effects. This is a significant gap for a destructive operation.
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 that front-loads the action and the key requirement. It is concise with no wasted words, making it easy for an agent to parse quickly.
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 delete-by-id tool with two parameters and no output schema, the description covers the basic action and the confirm requirement. However, it omits explicit statements about permanence or any prerequisites beyond confirm, which would be helpful given the lack of annotations. Overall, it is minimally adequate but not thorough.
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 50%: confirm is documented in the schema ('Must be true to perform destructive action'), and the description repeats that. The id parameter has no description, and the description adds no extra meaning about what id refers to or its format. The tool description contributes minimal 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 time entry') and identifies the resource (time entry) with a specific HTTP endpoint. It unambiguously distinguishes this from sibling tools like redmine_time_entry_update or redmine_time_entry_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs. alternatives, though the purpose is obvious from the name. It does note the confirm requirement, which is a prerequisite for calling the tool, but provides no guidance on contexts or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entry_getA
Get time entry (GET /time_entries/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The GET method implies a read-only, non-destructive operation, but no further details are given about error handling, response format, or side effects. It adds minimal behavioral context beyond the HTTP method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous content. It states the purpose first and includes the endpoint for additional clarity, achieving maximum conciseness without sacrificing 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 simplicity (one parameter, no output schema, no annotations), the description is minimally sufficient but not comprehensive. It does not describe the return value or potential errors, which an agent might need to know. However, for a basic GET-by-id operation, the description provides enough to call 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 has 0% description coverage, so the description should compensate. It does not mention the 'id' parameter at all, nor its meaning beyond what the schema already provides. The endpoint includes ':id', making it inferable, but the description adds no explicit semantics for the parameter.
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 'Get' and the resource 'time entry', and specifies the exact API endpoint. It is unambiguous and distinguishes from sibling tools like redmine_time_entries_list (listing) and create/update/delete by indicating a single-resource retrieval.
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 (when you have an id and need a single time entry) but does not explicitly contrast with alternatives such as redmine_time_entries_list. No conditions or exclusions are mentioned, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entry_updateC
Update time entry (PUT /time_entries/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| time_entry | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only conveys that the operation is an HTTP PUT, implying mutation, but does not cover idempotency, partial vs full update semantics, required permissions, side effects, or error/response behavior. This is insufficient for an agent to anticipate 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 a single clean sentence with no filler, front-loading the action and providing the endpoint in parentheses. It is easily parseable, though it may be too terse given the amount of missing context, making it efficient but not overly rich.
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?
Despite the tool having only two parameters, the description leaves all critical usage details unaddressed: how to populate the time_entry object, what id refers to, what the endpoint accepts, and what the response contains. With no annotations or output schema, the description is 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%, so the description must compensate. It only hints at the 'id' parameter via the endpoint URL; the 'time_entry' object parameter is entirely unexplained, including required fields, format, or accepted keys. The agent cannot construct a valid request 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?
The description states a specific verb and resource ('Update time entry') and adds the HTTP endpoint (PUT /time_entries/:id.json), which disambiguates the operation as an update. It distinguishes from sibling CRUD tools like redmine_time_entry_create or redmine_time_entry_delete through the verb and method, though it doesn't explicitly contrast with them.
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 redmine_time_entry_create or redmine_time_entry_delete. It does not mention prerequisites (e.g., existing entry ID), scenarios, or exclusions, leaving the agent to infer usage from the name and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_trackers_listA
List trackers (GET /trackers.json).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It reveals the HTTP method and endpoint (GET /trackers.json), which indicates a read-only operation, but it says nothing about pagination, authentication, or response contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence containing the action and endpoint, with no filler. The information is front-loaded and appropriate for a simple, parameterless list 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?
For a zero-parameter GET list, the description contains the essential invocation details and does not need to document return values since there is no output schema. It could add pagination or auth notes, but the low complexity makes the description largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is no parameter meaning to add. The description's mention of the endpoint is sufficient for a no-argument call.
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 concrete action ('List trackers') and gives the exact API endpoint, so an agent knows this tool retrieves the tracker collection. The resource is distinct among the many sibling list tools, though no explicit sibling comparison is made.
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 explicit when-to-use guidance or alternatives; it only implies that this tool is for retrieving trackers. An agent must infer from the tool name and endpoint that it is the right call when a tracker list is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_user_createD
Create user (POST /users.json).
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must reveal behavior. It only states 'Create user' which implies mutation but gives no details about required fields, authentication, side effects, or error handling. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence), but it is under-specified rather than appropriately concise. It adds minimal value beyond the tool name and does not front-load essential usage 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 presence of a nested object parameter and no output schema, the description is radically incomplete. An agent would have no idea how to construct a valid request, what fields are necessary, or what to expect in the response.
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 the 'user' parameter at all. The nested object allows any additional properties, but the agent is not told what fields to include (e.g., login, password, email). This leaves critical parameter semantics undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create user' with the verb 'create' and resource 'user', and includes the endpoint 'POST /users.json'. This is specific enough to distinguish it from list/get/update/delete sibling tools. However, it doesn't elaborate on what constitutes a user, so it's not 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?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as required permissions or existing user checks, nor does it reference any sibling tools. The description leaves usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_user_deleteA
Delete user (DELETE /users/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does state the destructive nature of the action and the mandatory confirm: true safeguard. However, it omits details such as irreversibility, cascading effects, and authentication requirements, so transparency is only partial.
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 containing the action, the endpoint, and the key safety requirement. Every component earns its place and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple tool with only two required parameters: it identifies the resource and the confirmation requirement. However, with no output schema and no annotations, an agent is left to infer response handling and the full implications of a destructive delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint '/users/:id.json' adds meaning to the id parameter that the schema does not provide, and the description reinforces the confirm parameter's meaning. The confirm parameter is already well-described in the schema, so the net contribution is meaningful but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Delete user') and gives the exact REST endpoint, making the tool's function unambiguous. It clearly distinguishes this from sibling user tools like user_create, user_update, and user_get.
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 choose this tool over alternatives, when not to use it, or what preconditions apply beyond the confirm flag. Some usage context is implied by the name, but no explicit direction is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_user_getC
Get user (GET /users/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| include | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only restates the HTTP method (GET) and endpoint, implying a read-only operation but not stating it explicitly. It omits any information about authentication requirements, error behavior (e.g., 404 when user not found), rate limits, or response structure. This is minimal coverage for a tool that agents might call in varied contexts.
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 fluff, which is appropriately concise. It front-loads the core purpose. However, it is so terse that it sacrifices useful context, but for conciseness scoring, it earns high marks for not wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, annotations, and any explanatory text, the description leaves significant gaps. It does not explain what the response will contain, how errors are signaled, or how the 'include' parameter enriches the result. For a simple GET, an agent might still need to know about pagination or filtering options, which are absent. The description is incomplete for confident 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 compensate for explaining parameters. It fails to do so: it does not mention the required 'id' parameter or the optional 'include' parameter, nor does it explain what 'include' (memberships, groups) controls. An agent would have to inspect the schema to understand parameter semantics, and the description adds no value beyond the schema's raw definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get user') and the resource ('/users/:id.json'), which unambiguously distinguishes it from sibling tools like redmine_users_list (list), redmine_user_create (create), redmine_user_update (update), and redmine_user_delete (delete). The verb+resource combination is specific and 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?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for fetching a single user by ID, while redmine_users_list is for listing multiple users. There is no explicit when-to-use or when-not-to-use context, leaving the agent to infer the intended usage from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_users_listC
List users (GET /users.json). Admin may be required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| limit | No | ||
| offset | No | ||
| status | No | ||
| group_id | No | ||
| fetch_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions the HTTP method (GET) and an admin requirement, which is useful. But it omits critical behavior: it does not indicate that this is a read-only operation (though GET implies it), does not describe pagination or response format, and does not disclose any side effects. The single line of disclosure is insufficient for an unannotated tool.
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, highly concise and front-loaded with the core action. It wastes no words. However, it is so brief that it leaves many gaps, but conciseness itself is good—though it could be argued it is under-specified rather than concise, the sentence is structured clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with six optional parameters and no output schema or annotations. The description only provides the endpoint and an admin hint, leaving the agent without knowledge of parameter semantics, response shape, pagination behavior, or when to use the fetch_all flag. This is severely incomplete for effective 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?
The schema has six parameters with zero description coverage. The description adds nothing about any of the parameters (name, limit, offset, status, group_id, fetch_all). It does not even hint at their purpose or how they affect the list. With 0% coverage, the description fails entirely 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 action 'List users' and identifies the resource via the API endpoint '/users.json'. It unambiguously distinguishes this from sibling tools that operate on single users (redmine_user_get) or other resources (projects, issues, etc.). The verb and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at a prerequisite ('Admin may be required') which gives some usage context. However, it does not explicitly state when to use this tool versus alternatives (e.g., redmine_user_get for a single user, or other list tools). The routing is implied by naming but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_user_updateC
Update user (PUT /users/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Update user', implying mutation, but gives no details about side effects, permissions, idempotency, partial vs. full replacement, or error handling. This is a critical gap for a mutating operation.
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 and front-loaded, but it is under-specified rather than appropriately concise. It omits essential parameter and behavior information, making the short length a deficiency, not a strength.
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 'user' object, no output schema, and no annotations, the description is severely incomplete. It does not explain the request body shape, valid user fields, or any constraints, leaving agents unable to construct a correct invocation 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 compensate. Neither 'id' nor 'user' is explained; the nested 'user' object uses additionalProperties: {} with no field list, so an agent cannot determine required or valid fields. The description adds no parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'user', and adds the HTTP method and endpoint (PUT /users/:id.json) for technical specificity. It avoids a tautology by including the endpoint, but does not differentiate from sibling tools beyond the verb, so it misses the top score.
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 redmine_user_create, redmine_user_delete, or redmine_user_get. No prerequisites, exclusions, or contextual hints are provided; the agent must infer the intended use case solely from the 'update' verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_version_createB
Create version (POST /projects/:project_id/versions.json).
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | ||
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It only mentions a POST request and the creation action, but fails to note side effects, authentication requirements, success/failure responses, or any irreversible consequences. This is a significant gap for a mutation tool with zero 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, efficient sentence that includes the HTTP method and endpoint. It is concise and front-loaded with the core action, though it sacrifices critical detail. It earns a 4 for minimalism and clarity, not for 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?
Given the complexity of a create operation with a nested version object and no output schema, the description is inadequate. It does not explain what fields the version object should contain, whether the response includes the created version, or any error handling nuances. An agent would need to consult external documentation to call 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 50%—only project_id has a description ('project id or identifier'). The version parameter is an untyped object with additionalProperties allowed, and the description text adds nothing about its expected structure or required fields. The description does not compensate for the missing schema documentation, leaving the agent without guidance on constructing the version 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 clearly states the action (Create) and the resource (version), and includes the REST endpoint for precision. This unambiguously distinguishes it from sibling tools like redmine_version_get, redmine_version_update, and redmine_version_delete, which have distinct verbs and purposes.
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 for creating a new version but provides no explicit guidance on when to use this tool versus alternatives (e.g., update for modifications, list for retrieval). There are no stated exclusions or context cues, leaving the agent to infer the appropriate scenario 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.
redmine_version_deleteA
Delete version (DELETE /versions/:id.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes | Must be true to perform destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure. It clearly identifies the operation as destructive and requires confirmation, but it does not mention side effects, irreversibility, permissions, or failure conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence plus a requirement, front-loading the action and endpoint. There is no wasted text or unnecessary repetition beyond the confirm note.
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 two-parameter delete operation, the description and schema are sufficient to make the call, but no return values, error behavior, or side effects are described. Since there is no output schema, those gaps are notable for a destructive action.
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 50%, covering confirm. The endpoint path adds meaning to id as the version identifier, but the description largely repeats the confirm requirement already present in the schema. It adds minimal new parameter information.
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: 'Delete version' with the endpoint 'DELETE /versions/:id.json'. This clearly distinguishes it from sibling version tools like redmine_version_get, redmine_version_create, and redmine_version_update.
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 intended use is implied by the name and 'Delete version', and the explicit requirement 'Requires confirm: true' guides invocation. However, it does not mention when deletion is appropriate or contrast with alternatives such as version_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_version_getB
Get version (GET /versions/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only reveals the HTTP GET method, implying a read-only operation, but says nothing about the response shape, error behavior (e.g., 404 if not found), authentication needs, or rate limits. This is minimal 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, front-loaded with the action ('Get version') and the endpoint. It contains no redundancy or filler, and is appropriately sized for a trivial GET operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but with no annotations and no output schema, the description is incomplete. It does not state that the response is the full version object, list returned fields, or explain error responses. Given the low complexity, this is a clear gap but not a catastrophic one.
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 a single 'id' parameter with no description (0% coverage), so the description must compensate. The endpoint '/versions/:id.json' does add meaning by indicating the id is the version identifier used in the URL path, but it does not elaborate on the parameter's semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('version'), and the endpoint '/versions/:id.json' clearly indicates a single-resource fetch. It is distinguishable from siblings like redmine_versions_list (plural, no id) and create/update/delete, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context is provided. The description does not mention when to use this tool instead of redmine_versions_list or other alternatives, nor does it state prerequisites like needing a valid version id. The only implication comes from the tool name and endpoint, which falls short of explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_versions_listB
List versions / roadmap for a project (GET /projects/:id/versions.json).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the HTTP method (GET) implying read-only, but it does not mention any behavioral aspects such as pagination, ordering, or error handling. The description is minimal and lacks context beyond the endpoint.
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 that is front-loaded with the action and includes the endpoint. There is no wasted wording, making it 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?
For a simple list operation with one parameter, the description is minimal. It does not describe the return structure, any filters, or potential edge cases. Given no output schema and no annotations, more detail would be expected to fully inform the 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 covers the only parameter (project_id) fully, so the baseline is 3. The tool description adds no additional semantic information about the parameter, but since coverage is 100%, this is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List versions / roadmap for a project' and provides the HTTP endpoint. This distinguishes it from sibling tools like redmine_version_get, which retrieves a single version, 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 implies usage for listing versions but does not explicitly mention alternatives or when not to use it. It could have noted that redmine_version_get is for individual versions, but this is only implied by the sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_version_updateC
Update version (PUT /versions/:id.json).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the HTTP method PUT and the verb 'update', but it does not disclose whether the update is partial or full, what fields are affected, whether permissions are required, or what happens to unspecified version properties.
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 compact and front-loaded, with a single sentence that names the action and endpoint. It wastes no words, though the brevity contributes to missing explanatory content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters, a nested unconstrained object, no output schema, and no annotations, the description is far too thin. An agent would not know the expected structure of the 'version' payload, whether updates are partial or whole-object, or what the API returns.
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 the parameters. It does not: neither 'id' nor the 'version' object is described, and the arbitrary nested object has no field guidance. The description adds no semantic value beyond the bare schema 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 clearly states the action ('Update version') and the resource ('version'), and the endpoint 'PUT /versions/:id.json' confirms the target. It is clear enough to be understood, but it does not explicitly differentiate itself from sibling tools like redmine_version_create or redmine_version_delete.
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 instead of alternatives such as creating, deleting, or fetching a version. The description simply states what the tool does without context about prerequisites, typical use cases, or when a different sibling 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.
redmine_wiki_page_create_or_updateA
Create or update wiki page (PUT /projects/:project/wiki/:title.json). Redmine uses update for new pages.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| wiki_page | Yes | Typically { text: 'markdown body' } and optional parent_title, comments | |
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It usefully discloses the HTTP method and the surprising upsert behavior (update is used for new pages). However, it omits any mention of required permissions, side effects on existing content, or the shape of a successful response.
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?
Two short sentences carry the full semantic load: the operation, the resource, the endpoint, and the critical create-via-update nuance. There is no filler or redundant restating of schema fields.
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 definition is adequate for a straightforward upsert: the schema provides required parameters and the description clarifies the one non-obvious behavior. It is less complete because there is no output schema and no description of the response or error conditions, so the agent is left guessing about what a successful call returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes project_id and the wiki_page object (with text, parent_title, comments), covering 67% of parameters. The description adds only the URL path pattern, which helps map title and project_id to the endpoint, but it does not add meaning beyond the schema for the individual 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 the exact action ('Create or update wiki page') and the resource, and reinforces it with the PUT endpoint. This makes it unambiguous against sibling wiki tools such as redmine_wiki_page_get, redmine_wiki_pages_list, and redmine_wiki_page_delete, none of which perform an upsert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Redmine uses update for new pages' explicitly tells the agent that this single PUT endpoint is the right call for both creating and updating a wiki page, removing the common assumption that creation needs a separate POST tool. It gives clear context, though it does not list exclusion cases or alternative read/delete tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_wiki_page_deleteA
Delete wiki page (DELETE /projects/:project/wiki/:title.json). Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| confirm | Yes | Must be true to perform destructive action | |
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It clearly communicates a destructive HTTP DELETE and the mandatory confirm:true safeguard, but it does not state permanence, side effects on history or related data, or required permissions.
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 filler: it states the action, endpoint, and key safety requirement. The most critical information, deletion and confirm, is front-loaded.
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 delete operation with three required parameters, the description is largely sufficient: it identifies project, title, and confirmation. It omits response/error details and permanence, but the low complexity and explicit confirm requirement reduce the risk of misuse.
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 67%, and the endpoint template clarifies how project and title map to the request path. The confirm parameter is already described as a const:true in the schema, so the description adds little semantic content beyond reinforcing the safety requirement.
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 names a specific verb and resource ('Delete wiki page') and includes the exact HTTP endpoint, making the action unmistakable. It also implicitly differentiates the tool from siblings like redmine_wiki_page_get and redmine_wiki_page_create_or_update.
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 provide guidance on when to choose deletion over other wiki operations, nor does it mention any exclusions or alternative tools. The only context is the required confirm flag, which is a safety guardrail rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_wiki_page_getC
Get wiki page (GET /projects/:project/wiki/:title.json).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| include | No | ||
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals only the HTTP method GET, which implies a read operation, but says nothing about return format, error behavior, or the effect of the include parameter. This is insufficient for a tool with no 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, and the action and endpoint are front-loaded. However, it's so terse that it forfeits useful context. It earns a high score for efficiency, but a perfect score would require a better balance of brevity and informativeness.
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 no annotations and no output schema, the description is incomplete. It doesn't explain the include parameter, the return value shape, or error handling, leaving an agent to guess important invocation details. The endpoint provides some context, but not enough to call the tool with confidence.
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 only 33% (just 'project id or identifier' for project_id), and the description adds no explicit parameter details. The endpoint hints that project_id and title are path parameters, but the include parameter is entirely unexplained. The description does not compensate for 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 explicitly states the action 'Get' and the resource 'wiki page', and the endpoint pattern clarifies the exact operation. This clearly distinguishes it from siblings like redmine_wiki_pages_list and redmine_wiki_page_create_or_update, which are obviously different 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?
The description gives no guidance on when to use this tool versus alternatives. It doesn't contrast with redmine_wiki_pages_list or redmine_wiki_page_create_or_update, and an agent would have to infer from the endpoint alone that this is for retrieving a single page by title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_wiki_pages_listA
List wiki pages for a project (GET /projects/:id/wiki/index.json).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | project id or identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. The description does communicate that this is a read-only listing operation via 'List' and the GET endpoint, but it does not describe response format, pagination, or whether page contents are included. This is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the core action and resource, then adds the endpoint as supporting detail. Every element earns its place with no filler.
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 single-parameter listing tool, the description is complete enough: it names the action, resource, project scope, and endpoint. It does not describe the response shape, but the endpoint and verb make the operation reasonably clear even without an output 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 100%, so the schema already documents the single project_id parameter. The description's phrase 'for a project' adds minor contextual reinforcement, but it does not add meaningful semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a clear resource ('wiki pages'), and a scope ('for a project'). It also includes the exact endpoint, and the plural 'pages' clearly distinguishes this from sibling tools like redmine_wiki_page_get, which operate on a single page.
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 this tool should be used: when the goal is to list wiki pages for a given project. However, it does not explicitly mention alternatives or contrast with redmine_wiki_page_get, so there is no direct guidance on choosing between listing all pages and fetching a single page.
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.
69 tool updates
v1.0.1- First observed
redmine_attachment_delete - First observed
redmine_attachment_download - First observed
redmine_attachment_get - First observed
redmine_attachment_update - First observed
redmine_attachment_upload - First observed
redmine_current_user - First observed
redmine_custom_fields_list - First observed
redmine_enumerations_list - First observed
redmine_group_get - First observed
redmine_groups_list - First observed
redmine_issue_add_comment - First observed
redmine_issue_add_relation - First observed
redmine_issue_add_watcher - First observed
redmine_issue_categories_list - First observed
redmine_issue_category_create - First observed
redmine_issue_category_delete - First observed
redmine_issue_category_get - First observed
redmine_issue_category_update - First observed
redmine_issue_create - First observed
redmine_issue_delete - First observed
redmine_issue_get - First observed
redmine_issue_relations_list - First observed
redmine_issue_remove_relation - First observed
redmine_issue_remove_watcher - First observed
redmine_issue_statuses_list - First observed
redmine_issue_update - First observed
redmine_issues_list - First observed
redmine_membership_create - First observed
redmine_membership_delete - First observed
redmine_membership_update - First observed
redmine_news_create - First observed
redmine_news_delete - First observed
redmine_news_get - First observed
redmine_news_list - First observed
redmine_news_update - First observed
redmine_project_archive - First observed
redmine_project_create - First observed
redmine_project_delete - First observed
redmine_project_get - First observed
redmine_project_memberships_list - First observed
redmine_project_unarchive - First observed
redmine_project_update - First observed
redmine_projects_list - First observed
redmine_queries_list - First observed
redmine_repository_revision_link_issue - First observed
redmine_repository_revision_unlink_issue - First observed
redmine_role_get - First observed
redmine_roles_list - First observed
redmine_search - First observed
redmine_time_entries_list - First observed
redmine_time_entry_create - First observed
redmine_time_entry_delete - First observed
redmine_time_entry_get - First observed
redmine_time_entry_update - First observed
redmine_trackers_list - First observed
redmine_user_create - First observed
redmine_user_delete - First observed
redmine_user_get - First observed
redmine_user_update - First observed
redmine_users_list - First observed
redmine_version_create - First observed
redmine_version_delete - First observed
redmine_version_get - First observed
redmine_version_update - First observed
redmine_versions_list - First observed
redmine_wiki_page_create_or_update - First observed
redmine_wiki_page_delete - First observed
redmine_wiki_page_get - First observed
redmine_wiki_pages_list
TDQS
Scored across 69 tools
Most tools map to a distinct resource+action pair, so agents can usually tell them apart. The main overlap is redmine_issue_update and redmine_issue_add_comment, which are described as using the same endpoint, creating possible misselection.
The redmine_ prefix and resource_action ordering are consistent across the set. Minor inconsistencies exist, such as pluralized list names (redmine_issues_list) versus singular item actions (redmine_issue_get), and project_memberships_list versus membership_create/update/delete.
With 69 tools, this is far beyond the typical well-scoped MCP surface and falls into the extreme 50+ category. While Redmine has a large API, exposing nearly every endpoint as a separate tool makes the set unwieldy for an agent.
The tool set covers CRUD for the major Redmine resources and adds useful metadata/listing tools for trackers, statuses, roles, custom fields, and enumerations. Minor gaps exist, such as no dedicated watcher listing endpoint and no membership get, but agents can likely work around these.
Related MCP Connectors
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Connect AI agents to Replynodes over the Model Context Protocol.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
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
- AlicenseNot gradedqualityDmaintenanceEnables interacting with a Redmine instance via REST API, allowing issues, projects, time logging, and generic endpoint calls through an MCP agent.12 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI coding agents to interact with Redmine projects, issues, time tracking, and members through natural language via the Model Context Protocol.-