redmine-mcp
This server provides a comprehensive interface to Redmine's REST API, enabling issue tracking, project management, time tracking, user/group management, wiki, documents, attachments, and more.
Universal Tools
redmine_api_request— Call any Redmine REST endpoint (GET, POST, PUT, PATCH, DELETE, HEAD)redmine_paginated_request— Fetch paginated list endpoints automatically (offset/limit)redmine_upload_file— Upload binary files and receive upload tokens for attachmentsredmine_current_user— Get the authenticated user's detailsredmine_search— Search across issues, wiki pages, documents, news, projects, and more
Issue Management
redmine_issues— Full CRUD + add notesredmine_issue_relations— List, create, delete relationsredmine_issue_watchers— Add/remove watchersredmine_issue_categories— Full CRUD per projectredmine_issue_statuses— Read available statuses
Project Management
redmine_projects— Full CRUD + archive/unarchiveredmine_memberships— Full CRUDredmine_versions— Full CRUD
Time Tracking
redmine_time_entries— Full CRUD
User & Group Management
redmine_users— Full CRUDredmine_groups— Full CRUD + add/remove membersredmine_roles— List and get
Content Management
redmine_wiki— List, get, update, delete (create via update)redmine_documents— List, get, create, deleteredmine_files— List and create project filesredmine_attachments— Get and deleteredmine_news— List and get (read-only)
Metadata (read-only)
redmine_trackers,redmine_enumerations(priorities, activities, document categories),redmine_custom_fields,redmine_queries
Access Control
Available tools and actions can be restricted via --tool and --deny-action CLI flags (e.g., block all DELETE operations globally or per tool).
Provides tools for interacting with Redmine's REST API, enabling management of issues, projects, users, time entries, wiki, documents, files, and more through the Redmine platform.
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-mcplist 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
redmine-mcp — MCP-провайдер для Redmine. Он подключается к OpenCode, Codex, Cursor и другим MCP-клиентам и даёт доступ к Redmine REST API.
Провайдер собран в один исполняемый файл: src/server.js. Отдельного wrapper-процесса нет.
Возможности
Провайдер покрывает весь Redmine REST API через универсальные tools:
redmine_api_request— вызывает любой REST endpoint относительноREDMINE_URL.redmine_paginated_request— вызывает списочные endpoints и проходит Redmine-пагинациюlimit/offset.redmine_upload_file— загружает бинарный файл в/uploads.jsonи возвращает upload token.
Также есть resource tools для частых сценариев:
задачи, связи задач, наблюдатели задач;
проекты, участники проектов, версии, категории задач;
трудозатраты;
пользователи, группы, роли;
трекеры, статусы задач, перечисления, custom fields, сохранённые queries;
wiki, документы, файлы, новости, вложения;
поиск и текущий пользователь.
Если нужного Redmine endpoint нет среди именованных tools, используйте redmine_api_request. Это основной слой совместимости для всех стандартных, версионных и plugin endpoints Redmine.
Related MCP server: @a-bonus/redmine-mcp
Требования
Node.js 18 или новее.
Redmine с включённым REST API.
API key Redmine или логин/пароль для Basic auth.
Установка и запуск
Установите опубликованный npm-пакет глобально:
npm install -g @pavelsmith/redmine-mcpПосле установки команда должна быть доступна в PATH:
redmine-mcpДля локального checkout до публикации запускайте единственный файл провайдера напрямую:
node /absolute/path/to/redmine-mcp/src/server.jsАутентификация
Доступы передаются через переменные окружения MCP-сервера:
REDMINE_URL— обязательный URL Redmine, напримерhttps://redmine.example.comилиhttps://example.com/redmine.REDMINE_API_KEY— предпочтительный способ авторизации.REDMINE_TOKENилиREDMINE_ACCESS_TOKEN— алиасы для API key.REDMINE_USERNAMEиREDMINE_PASSWORD— fallback для HTTP Basic auth, если API key недоступен.
Ограничение доступных tools и actions
По умолчанию MCP-сервер публикует все tools и все actions внутри resource tools. Ограничения задаются аргументами команды в mcp.json.
Запретить все delete actions:
{
"mcpServers": {
"redmine": {
"command": "redmine-mcp",
"args": ["--deny-action", "delete"],
"env": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
}
}
}
}В этом режиме из схем исчезнут все actions, которые выполняют HTTP DELETE, включая actions с другими именами, например remove и remove_user. Прямой вызов таких actions будет отклонён, а в redmine_api_request будет скрыт и заблокирован HTTP method DELETE.
Оставить только выбранные blocks/tools и actions внутри них:
{
"mcpServers": {
"redmine": {
"command": "redmine-mcp",
"args": [
"--tool",
"redmine_current_user",
"--tool",
"redmine_issues:list,get,create,update,add_note",
"--tool",
"redmine_projects:list,get"
],
"env": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
}
}
}
}--tool можно повторять. Формат значения: tool_name или tool_name:action,action. Если --tool не указан, доступны все tools, кроме actions/methods, запрещённых через --deny-action.
Например, чтобы оставить только просмотр и создание списаний трудозатрат:
["--deny-action", "delete", "--tool", "redmine_time_entries:list,get,create"]В OpenCode эти аргументы нужно добавлять в command, а не в отдельное поле args:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"redmine": {
"type": "local",
"command": [
"redmine-mcp",
"--deny-action",
"delete",
"--tool",
"redmine_time_entries:list,get,create"
],
"environment": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
},
"enabled": true,
"timeout": 30000
}
}
}--deny-action тоже можно повторять. Формат значения: action для глобального запрета или tool_name:action,action для запрета внутри конкретного tool.
Поддерживаются оба CLI-формата: ["--deny-action", "delete"] и ["--deny-action=delete"]. Если MCP-клиент передаёт флаг одним аргументом, ["--deny-action delete"] тоже будет разобран.
Ограничение применяется и к tools/list, и к tools/call: скрытый tool/action не будет показан клиенту и не сможет быть вызван напрямую.
Настройка OpenCode
OpenCode использует секцию mcp, а не mcpServers. Для локального MCP-сервера нужны:
type: "local";commandкак массив строк;environmentдля переменных окружения;enabled: true.
Вариант 1: глобальная npm-установка
Добавьте в OpenCode config, например в .opencode/opencode.json проекта или пользовательский config OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"redmine": {
"type": "local",
"command": ["redmine-mcp"],
"environment": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
},
"enabled": true,
"timeout": 30000
}
}
}То же самое через CLI OpenCode:
opencode mcp remove redmine
opencode mcp add redmine \
--env REDMINE_URL=https://redmine.example.com \
--env REDMINE_API_KEY=your-api-key \
-- redmine-mcpВариант 2: локальный checkout
Если пакет ещё не опубликован или вы разрабатываете его локально:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"redmine": {
"type": "local",
"command": ["node", "/absolute/path/to/redmine-mcp/src/server.js"],
"environment": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
},
"enabled": true,
"timeout": 30000
}
}
}Через CLI OpenCode:
opencode mcp remove redmine
opencode mcp add redmine \
--env REDMINE_URL=https://redmine.example.com \
--env REDMINE_API_KEY=your-api-key \
-- node /absolute/path/to/redmine-mcp/src/server.jsПроверка OpenCode
opencode mcp listОжидаемый результат:
✓ redmine connectedЕсли OpenCode показывает Operation timed out after 30000ms, обычно он всё ещё запускает старую команду. Перерегистрируйте сервер:
opencode mcp remove redmine
opencode mcp add redmine \
--env REDMINE_URL=https://redmine.example.com \
--env REDMINE_API_KEY=your-api-key \
-- node /absolute/path/to/redmine-mcp/src/server.jsПосле этого снова выполните:
opencode mcp listНастройка Codex, Cursor и других MCP-клиентов
Некоторые клиенты используют общий JSON-формат mcpServers.
Для глобально установленного npm-пакета:
{
"mcpServers": {
"redmine": {
"command": "redmine-mcp",
"args": [],
"env": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
}
}
}
}Для локального checkout:
{
"mcpServers": {
"redmine": {
"command": "node",
"args": ["/absolute/path/to/redmine-mcp/src/server.js"],
"env": {
"REDMINE_URL": "https://redmine.example.com",
"REDMINE_API_KEY": "your-api-key"
}
}
}
}Примеры вызовов tools
Получить задачу с журналом и вложениями:
{
"action": "get",
"issue_id": "123",
"include": ["journals", "attachments"]
}Создать задачу:
{
"action": "create",
"issue": {
"project_id": "demo",
"subject": "Created through MCP",
"description": "Issue body",
"tracker_id": 1
}
}Вызвать любой endpoint напрямую:
{
"method": "GET",
"path": "/issues.json",
"query": {
"project_id": "demo",
"status_id": "open"
}
}Загрузить файл и получить upload token:
{
"filename": "report.txt",
"content_base64": "UmVwb3J0IGNvbnRlbnQK",
"content_type": "text/plain"
}Локальная разработка
npm run check
npm startПровайдер использует только встроенные возможности Node.js, внешних runtime-зависимостей нет.
Available Tools
26 toolsredmine_api_requestA
Call any Redmine REST API endpoint. This is the escape hatch for the complete Redmine API surface, version-specific endpoints, and plugin endpoints. Paths are resolved under REDMINE_URL.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON request body for POST, PUT, PATCH, and DELETE requests. | |
| path | Yes | REST path, for example /issues.json, /issues/123.json, /projects/my-project/wiki/index.json, or a plugin endpoint. | |
| query | No | Query parameters. Array values are appended repeatedly. | |
| method | Yes | HTTP method. | |
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| raw_body_base64 | No | Optional raw request body encoded as base64. Use for non-JSON endpoints such as uploads. |
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 mentions path resolution under REDMINE_URL and does not address error handling, authentication, rate limits, or response format, leaving significant gaps for a generic API caller.
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, front-loaded with purpose, and contains no filler. Every word earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 params, no output schema) and lack of annotations, the description is minimally adequate. It explains the role as an escape hatch but lacks details on usage context, error handling, and authentication, which are important for a fallback tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any extra meaning to the parameters, which are already well-described in the schema. No improvement or degradation.
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 'Call any Redmine REST API endpoint' and positions it as the 'escape hatch' for endpoints not covered by sibling tools. It explicitly distinguishes from the specific sibling tools by indicating it covers version-specific and plugin endpoints.
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 cases not covered by sibling tools ('escape hatch'), providing clear context. However, it lacks explicit when-not-to-use or alternatives guidance, which would elevate it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_attachmentsC
Manage attachments: get, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | ||
| attachment_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose side effects (e.g., 'delete' is destructive, 'get' is read-only) or permissions required. With no annotations, the description fails to specify behavioral traits beyond the action names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief but lacks structure. It does not front-load critical information such as required parameters or usage context, sacrificing utility 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?
Given the tool's complexity (6 parameters, nested objects, no output schema), the description is severely incomplete. It omits explanations for pagination, error handling, return values, and practical usage patterns.
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 parameter details beyond the schema. Despite 50% schema coverage, it does not elaborate on parameters like 'attachment_id' or 'action', leaving their interpretation to the agent.
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 'get, delete' which identifies actions on attachments, but it fails to clarify what 'get' returns (e.g., file content or metadata). The phrasing 'Manage attachments' is vague, and the tool's purpose is not sharply differentiated from other Redmine 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?
No guidance is provided on when to use this tool versus siblings, nor instructions on how to choose between 'get' and 'delete'. There is no mention of prerequisites, authentication needs, or pagination handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_current_userB
Get the authenticated Redmine user via /users/current.json.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Optional include values such as memberships or groups. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only indicates a read operation but fails to mention side effects, permission requirements, rate limits, or response format. Minimal information for an API call.
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 information. It is concise but could benefit from additional context without being verbose.
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 optional parameter and no output schema. The description is functionally adequate but lacks details about authentication requirements and the structure of the returned user object. Adequate for a simple retrieval tool but not comprehensive.
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%, and the parameter description in the schema already explains the 'include' parameter. The tool description does not add new meaning beyond the endpoint, so baseline 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?
Description clearly states the tool retrieves the authenticated Redmine user via a specific endpoint. It uses a specific verb ('Get') and resource ('authenticated Redmine user'), and the endpoint path differentiates it from siblings like 'redmine_users' that likely list all users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'redmine_users' or other user-related tools. The description only states the action without context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_custom_fieldsC
Read custom fields: list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No |
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 states 'Read' implying read-only, but does not mention pagination behavior, authentication needs, or any side effects. The lack of detail leaves 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 extremely concise (5 words) but is underspecified rather than efficiently complete. It is a fragment lacking structure, and every word could be expanded to add 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 no output schema, multiple parameters (including complex 'query' and 'headers'), and no behavioral hints, the description is severely incomplete. It does not explain return values, pagination, or how the tool fits into the overall Redmine domain.
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%, yet the description adds no parameter information beyond the schema. For example, 'limit' and 'max_pages' control pagination, but the description does not explain them. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read custom fields: list' specifies a clear verb ('Read') and resource ('custom fields'), indicating a list operation. However, it is minimal and does not distinguish from sibling tools that also read lists, such as redmine_issues or redmine_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisite, context, or when not to use it, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_documentsC
Manage documents: list, get, create, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| document | No | ||
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. | |
| document_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as permanence of delete, authorization needs, or side effects.
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?
Very short but not wasteful; however, it lacks structure and could benefit from separating actions or adding examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and multiple actions, the description is insufficient to fully understand tool usage without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; description adds no parameter-specific details. Complex parameters like 'query' and 'document' remain vague despite being objects with additionalProperties.
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 the resource (documents) and verbs (list, get, create, delete). It is clear but does not distinguish from sibling tools like redmine_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any preconditions or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_enumerationsC
Read Redmine enumerations: issue_priorities, time_entry_activities, document_categories.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| resource | No | ||
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only says 'Read', implying read-only, but lacks details on safety, authentication, rate limits, or pagination behavior. It does not add beyond the minimal indication of reading.
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 unnecessary words. However, it is too terse given the complexity of the tool, missing critical 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 6 parameters (2 enums), no output schema, and no annotations, the description is incomplete. It does not explain that only listing is supported (action enum has only 'list'), nor does it cover pagination or query behavior.
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 33% (low). The description adds no meaning to any parameter, such as the required 'action' and 'resource' enums, or the pagination controls 'limit' and 'max_pages'. It fails to compensate for the sparse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read', the resource 'Redmine enumerations', and lists the specific types: issue_priorities, time_entry_activities, document_categories. This distinguishes it from sibling tools like redmine_issues or redmine_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. With many sibling tools, explicit usage directions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_filesC
Manage project files: list, create.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ||
| files | No | Redmine file payloads, usually containing upload tokens. | |
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states the two actions but does not describe side effects, permissions required, rate limits, or return values. For a mutation (create) and list tool, this is insufficient 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?
Three words with a colon and comma is under-specification, not conciseness. A proper sentence or structured bullet points would be more appropriate given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, nested objects (file, files), no output schema, and no description beyond the action list, the tool is severely underspecified. There is no explanation of how actions use parameters, pagination behavior, or the relationship between file and files, making it grossly 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?
Schema coverage is 50%, and the description adds no new parameter details beyond what the schema already provides (e.g., 'files' and 'query' have descriptions in schema). The description does not compensate for the uncovered parameters like 'file' or 'limit' with additional context, so it meets the baseline for moderate 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 'Manage project files: list, create.' clearly states the verb (manage) and resources (project files) and enumerates the two supported actions (list, create), making it distinct from sibling tools like redmine_attachments or redmine_upload_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use list vs create, no prerequisites (e.g., requiring upload_token for create), and no mention of alternatives among sibling tools. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_groupsC
Manage groups: list, get, create, update, delete, add_user, remove_user.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | ||
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| include | No | Group include values such as users or memberships. | |
| user_id | No | Redmine numeric ID or identifier, passed as a string. | |
| group_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | No |
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 disclosing behavioral traits. It only lists actions without explaining consequences (e.g., deletion permantently removes a group, updates may have side effects). No authentication, rate limiting, or error conditions are mentioned. The description is insufficient for an informed agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—one brief sentence enumerating actions. Every part is relevant, and there is no wasted text. However, it may be too terse for the tool's complexity, but under the conciseness dimension, it scores well for brevity and lack of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters, multiple actions, and no output schema, yet the description is a single line. It does not explain how actions relate to parameters (e.g., 'group' object for create/update, require group_id for get/update/delete). The agent lacks crucial context to compose correct requests, making the description severely 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 description coverage is 56%, and the tool description adds no parameter explanation beyond listing action values. The description does not compensate for the missing parameter documentation (e.g., what fields 'group' expects). Many parameters (e.g., 'query', 'headers') have some schema description but the tool description offers no additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly lists the supported actions (list, get, create, update, delete, add_user, remove_user) and states it manages groups. It clearly identifies the resource and operations, though it doesn't differentiate from the many sibling Redmine tools, which is acceptable as other tools handle different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The agent receives no context on which action to choose for a given scenario beyond the schema's enum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_categoriesC
Manage issue categories: list, get, create, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. | |
| category_id | No | Redmine numeric ID or identifier, passed as a string. | |
| issue_category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only lists CRUD actions but does not disclose authentication requirements, side effects, idempotency, or pagination behavior (despite the schema having limit and max_pages). The behavioral transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), but it is too minimal. It lacks structure such as separating the purpose from usage notes. While brevity is good, it sacrifices clarity on how to use the tool effectively.
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 8 parameters, nested objects, no output schema, and no annotations, the description is severely incomplete. It does not explain how the CRUD actions map to parameters, the relationship between project_id and category_id, or what the issue_category object expects. An AI agent would struggle to use this tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, but the description does not add any meaning to parameters. It does not explain the role of project_id, category_id, issue_category object, or query parameters. The description fails to compensate for the missing schema descriptions, leaving semantic gaps.
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 'Manage issue categories: list, get, create, update, delete.' It clearly identifies the resource and the CRUD actions, distinguishing from sibling tools that handle other Redmine entities. However, it could be more specific about the context (e.g., 'for projects') and does not elaborate on the purpose beyond the actions listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like redmine_api_request or redmine_paginated_request. There is no mention of prerequisites, contexts, or when not to use it. The usage is only implied by the tool name and action list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_relationsB
Manage issue relations: list, create, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| issue_id | No | Redmine numeric ID or identifier, passed as a string. | |
| relation | No | ||
| max_pages | No | ||
| relation_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as destructive nature of delete, required permissions, or side effects. It only names the actions without elaboration, leaving the agent with minimal behavioral understanding.
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, stating the purpose in one sentence. While efficient, it could benefit from slightly more context without becoming verbose.
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 8 parameters (including nested objects), no output schema, and no annotations, the description is insufficient. It does not explain how to use parameters for each action, expected input structures, or return values, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, but the tool description does not elaborate on any parameters beyond listing actions. Key parameters like 'relation' (nested object) and 'query' lack context, and the description adds no value beyond the schema itself.
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 manages issue relations and lists three specific actions: list, create, delete. This distinguishes it from sibling tools like redmine_issues (manages issues) and redmine_api_request (generic).
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 lists actions but does not provide guidance on when to use this tool versus alternatives, such as when to use redmine_issues for issue management or redmine_api_request for custom requests. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issuesC
Manage issues: list, get, create, update, add_note, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | No | ||
| limit | No | ||
| notes | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| include | No | Issue include values such as journals, attachments, relations, changesets, children, watchers. | |
| issue_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | 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. It lists actions including delete but offers no behavioral details such as authentication requirements, rate limits, or the irreversibility of delete. The agent is left unaware of side effects.
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 (single sentence) but fails to front-load essential information. It is concise but at the expense of clarity and completeness. A slightly longer description with structure would be more helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema), the description is severely incomplete. It does not explain the role of the action parameter, how to target specific issues, or the behavior of pagination (limit, max_pages). The agent cannot safely invoke this tool based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 44%, meaning many parameters lack descriptions. The tool description adds no parameter-level information beyond the action list. Without elaboration on parameters like issue, query, or headers, the agent cannot infer usage patterns.
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 is for managing Redmine issues and lists the supported actions (list, get, create, update, add_note, delete). It distinguishes from sibling tools like redmine_issue_relations by focusing on core issue operations, but could be more specific about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives like redmine_api_request for custom requests or redmine_issue_relations for relation-specific tasks. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_statusesC
Read issue statuses: list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only states it's a read operation, but fails to mention pagination (via 'limit' and 'max_pages' parameters), filtering capabilities ('query'), or the nature of the response. More detail is needed for transparent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one short sentence. It is not verbose, but it sacrifices necessary detail. It earns its place by stating the core function, but lacks structure to present additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 5 parameters including nested objects and pagination, and with no output schema, the description is insufficient. It does not cover return values, filtering, or pagination behavior. Crucial context is missing for an agent to use the tool correctly in varied scenarios.
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 40%, meaning most parameters lack schema descriptions. The tool description adds no explanation of parameters like 'limit' or 'max_pages'. While the schema provides basic constraints, the description does not add meaning beyond what's already in the schema, failing to compensate for 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 specifies 'Read issue statuses: list.' which clearly indicates the tool reads and lists issue statuses. However, it does not differentiate from sibling tools like 'redmine_issues' which may also involve statuses, but the resource is distinct 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?
No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, typical use cases, or differences from siblings such as 'redmine_issues' or 'redmine_enumerations'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_issue_watchersC
Manage issue watchers: add, remove.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| user_id | No | Redmine numeric ID or identifier, passed as a string. | |
| issue_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It only states 'add, remove' with no info on auth requirements, error handling, side effects, or whether it appends or replaces watchers.
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?
Extremely concise but at the cost of essential information. A single phrase 'Manage issue watchers: add, remove.' lacks structure and does not include any usage hints or parameter 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?
With 7 parameters, no output schema, and no annotations, the description is vastly insufficient. It fails to explain required inputs, behavior, or output format, making it hard to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%, but the tool description adds no parameter context beyond the schema. It does not clarify that issue_id and user_id are needed together, or how action maps to 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 clearly states the tool manages issue watchers with 'add, remove' actions. It identifies the resource and actions, though could be more explicit like 'Add or remove watchers from a Redmine issue'.
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 provided on when to use this tool versus sibling tools like redmine_issues or other Redmine tools. No context for prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_membershipsA
Manage project memberships: list, get, create, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | ||
| membership | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. | |
| membership_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It merely lists actions without disclosing that create/update/delete are destructive, any authentication requirements, rate limits, or side effects. The description lacks sufficient transparency for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core function ('Manage project memberships') and enumerates actions. It is concise and contains no fluff, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, a required 'action' enum, nested objects, and no output schema, the description is minimal. It does not explain which parameters are needed for each action, return format, or pagination behavior. The description leaves significant gaps for an agent 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 already describes some parameters (e.g., query, headers, project_id) with coverage at 50%. The tool description adds no additional parameter-level meaning. Baseline of 3 is appropriate as the existing schema descriptions handle part of the burden.
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 ('Manage') and clearly identifies the resource ('project memberships'), followed by a list of actions ('list, get, create, update, delete') that comprehensively covers CRUD operations. This clearly distinguishes the tool from siblings like 'redmine_issues' or 'redmine_projects'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists the supported actions, implying that this tool is for CRUD operations on project memberships. While it does not provide explicit when-not-to-use guidance or alternative tools, the actions make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_newsC
Read news: list, get.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| news_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'read', implying read-only, but lacks details on pagination (max_pages parameter), authentication, rate limits, or any other behavioral traits, leaving significant gaps.
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?
Extremely concise at one sentence, 'Read news: list, get.' It is well-structured and front-loaded, but the brevity sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is insufficient. It fails to provide context on how to use parameters, return values, or behavior, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57% (about 4 out of 7 parameters have descriptions). The description adds no additional meaning beyond the schema. It does not explain parameters like 'query', 'headers', or 'max_pages' beyond what 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?
Description specifies verb 'read' and resource 'news', and lists two actions 'list' and 'get'. It is clear about what the tool does, but does not differentiate it from sibling tools like redmine_documents or redmine_files, though the name is somewhat distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. There is no mention of context, prerequisites, 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_paginated_requestB
Call a Redmine list endpoint and follow Redmine offset/limit pagination using total_count from the response body.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | REST list path, for example /issues.json or /time_entries.json. | |
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | Safety limit for pagination. Increase when intentionally collecting large result sets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the pagination mechanism (offset/limit using total_count) but lacks details on response format, error handling, rate limits, or authentication. Since no annotations exist, the description carries the full burden and misses several important behavioral aspects.
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 clear verb and object, front-loaded with the action. It avoids fluff but could benefit from additional structuring to cover usage or return behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It does not explain what the tool returns, how errors are handled, or the default pagination behavior (e.g., auto-follow pages up to max_pages). An AI agent would lack critical context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (80%), so the baseline is 3. The description does not add meaningful parameter semantics beyond what the schema already documents, such as clarifying the 'query' object's array behavior or the default/max values of 'limit' and 'max_pages'.
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 it calls a Redmine list endpoint with pagination handling, using specific terms like 'offset/limit pagination' and 'total_count'. It distinguishes from sibling tools like redmine_api_request which likely does not handle pagination automatically.
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 specify when to use this tool versus alternatives like redmine_api_request or specific endpoint tools (e.g., redmine_issues). No when-to-use, when-not-to-use, or alternative comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_projectsC
Manage projects: list, get, create, update, delete, archive, unarchive.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| include | No | Project include values such as trackers, issue_categories, enabled_modules, time_entry_activities. | |
| project | No | ||
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. |
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 lists actions but does not disclose side effects (e.g., whether delete is permanent, archive implications), idempotency, 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 very concise (one sentence) but lacks structure. It lists actions without framing or context, making it less effective than a well-structured, front-loaded description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, no output schema, and 24 siblings, the description is severely lacking. It does not explain the required 'action' parameter, optional filters, pagination, or any usage patterns, leaving the agent with insufficient 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 50%, but the description adds no parameter explanations. It only mentions actions. Parameters like limit, max_pages, project, and query are left unexplained, and the description does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages projects and lists seven specific actions (list, get, create, update, delete, archive, unarchive). It distinguishes from sibling tools like redmine_issues by its focus on projects, though it does not explicitly differentiate.
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 (e.g., redmine_api_request) or when to choose one action over another. The description assumes the agent knows the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_queriesC
Read saved issue queries: list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only says 'read', implying non-destructive, but gives no details on side effects, permissions, pagination, or how parameters affect behavior. The limited description fails to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (a single phrase) but this is underspecification, not efficient conciseness. It lacks key details and structure, making it less useful.
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 5 parameters, nested objects, and no output schema. The description provides almost no context about return format, pagination, or parameter usage. It is woefully incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 40%, but the description adds no meaning to any parameter. It does not explain the 'query' object, 'limit', 'max_pages', or 'headers' beyond what the schema already provides. With low coverage, the description should 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 it reads saved issue queries, which clearly distinguishes it from sibling tools like redmine_issues or redmine_search. The verb 'read' and resource 'saved issue queries' are specific, though it could be more explicit about what is listed (the query definitions themselves).
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 (e.g., redmine_issues, redmine_search). The description lacks context for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_rolesC
Read roles: list, get.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| role_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies read-only behavior but does not disclose any additional behavioral traits such as rate limits, pagination behavior, or authentication requirements. With no annotations, the description carries full burden but fails to provide meaningful 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?
Extremely short, but it conveys the core idea without fluff. However, it lacks structure and does not use whitespace or bullet points to improve 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?
Given 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain how to use the parameters, what each action returns, or any expected behavior.
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 beyond the schema for parameters like role_id, limit, or query. Schema coverage is 50%, yet the description does not compensate for the missing parameter details.
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 reads roles and lists two actions (list and get), which is specific enough to convey the basic purpose. However, it lacks details on what each action does precisely.
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 siblings like redmine_issues or redmine_projects. There are no explicit conditions or alternatives mentioned.
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 with /search.json. Supports standard query params such as q, scope, all_words, titles_only, issues, news, documents, changesets, wiki_pages, messages, projects.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| scope | No | ||
| all_words | No | ||
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. | |
| titles_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether it is read-only, rate limits, required permissions, or pagination behavior. It only mentions the endpoint and supported params, which is minimal for a search 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 concise and to the point, with a single sentence that covers the key purpose and parameters. However, it could be structured more clearly, for example using bullet points or separating the common params from the nested query object.
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, the description does not explain what the search returns (e.g., list of results, total count). It mentions pagination params (max_pages) but not how they affect results. For a search tool, it is missing crucial context about return format and scope limitations.
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 lists additional query params beyond those in the schema (e.g., issues, news, documents), which adds value by hinting at searchable scopes. However, it does not explain how to use these params (they likely go into the 'query' object) and schema coverage is only 25%. The description partially compensates for missing schema descriptions but is incomplete.
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 it searches Redmine using a specific endpoint and lists many supported query parameters. However, it does not differentiate from sibling tools like redmine_api_request which also makes HTTP requests, or redmine_paginated_request which handles pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not explain the scope of search (e.g., full-text search across multiple entities) or provide examples. The description lacks context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_time_entriesC
Manage time entries: list, get, create, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No | ||
| time_entry | No | ||
| time_entry_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden of behavioral disclosure. It only lists CRUD operations without detailing side effects, idempotency, authentication needs, or pagination behavior. The schema includes limit and max_pages, but this is not explained.
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 listing the actions. It is well-structured and front-loaded, but could be improved by adding brief usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, nested objects, no output schema), the description is insufficient. It lacks information on return values, pagination, error handling, and required fields for create/update actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (43%), so the description must compensate. However, it only lists actions and does not explain parameters like 'time_entry' object structure, 'query' formatting, or how 'action' dictates required 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 clearly states the resource ('time entries') and lists the supported actions (list, get, create, update, delete). It distinguishes the tool from siblings like 'redmine_issues' by focusing on time entries, but does not explicitly differentiate from other time entry 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?
No guidance is provided on when to use this tool versus alternatives (e.g., redmine_issues or redmine_paginated_request). No prerequisites or context for usage are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_trackersC
Read trackers: list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Read trackers: list', implying a non-destructive operation, but does not disclose pagination behavior, authentication requirements, rate limits, or any other behavioral traits. The schema includes limit and max_pages parameters, but the description omits any mention of pagination.
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 ('Read trackers: list.') but fails to include necessary context. It is front-loaded but too short to be useful; for a tool with 5 parameters and many siblings, more information is needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, many sibling tools), the description is severely incomplete. It does not explain what trackers are, how to use parameters like limit or query, what the response format is, or how to handle pagination. This makes it inadequate for an AI to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40%, meaning some parameters lack descriptions in the schema. The tool description does not add any meaning to the parameters beyond what the schema provides. For example, it does not explain how to use 'query' or 'headers' for trackers specifically.
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 'Read' and the resource 'trackers', and specifies the only action is 'list', which matches the action enum. It is specific enough to distinguish the tool from other Redmine tools like redmine_issues, though it could be more elaborated.
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. With many sibling tools like redmine_issues or redmine_projects, the lack of usage context makes it difficult for an AI to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_upload_fileA
Upload binary content to Redmine /uploads.json and return an upload token for later attachment to issues, documents, wiki pages, or project files.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| content_type | No | application/octet-stream | |
| content_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must independently disclose behavioral details. It states that the tool returns an upload token and uploads to /uploads.json, but it does not address side effects, authentication requirements, file size limits, or error conditions. This leaves gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and purpose. Every part is relevant and there is no 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?
Given no output schema, the description adequately mentions the return value (upload token). It covers the main use cases and the API endpoint. However, it omits details like error handling or constraints, which would make it more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'content_base64' holds binary content, but does not explain 'filename' or 'content_type' beyond what the schema types imply. The description adds some value but not enough to fully overcome the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload binary content'), the target endpoint ('Redmine /uploads.json'), and the purpose ('return an upload token for later attachment'). It effectively distinguishes this tool from its siblings, which cover other Redmine operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (first step for uploading files intended for attachment) and mentions the subsequent use cases (issues, documents, wiki pages, project files). It does not explicitly state when not to use it or name alternatives, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_usersC
Manage users: list, get, create, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | ||
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| include | No | User include values such as memberships or groups. | |
| user_id | No | Redmine numeric ID or identifier, passed as a string. | |
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It only lists actions but does not disclose side effects (e.g., whether delete is soft or hard, if create triggers notifications), security requirements, or any notable behavior beyond the action names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it lacks structure for easy scanning and could benefit from a brief breakdown of each action or parameter grouping.
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 8 parameters, nested objects, and pagination (limit, max_pages), yet the description does not mention return values, pagination behavior, error handling, or how actions relate to parameters. With no output schema, the description leaves significant gaps for an agent to understand the tool's full behavior.
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 at 50%, meaning half the parameters already have descriptions in the schema. The tool description adds no parameter-specific information, failing to compensate for the uncovered parameters or provide additional context 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 resource (users) and lists five actions (list, get, create, update, delete), providing a clear purpose. However, it does not differentiate from sibling tools like redmine_issues or redmine_projects, as the tool name itself already indicates the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions for each action. It simply lists actions without context on appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_versionsB
Manage project versions: list, get, create, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| version | No | ||
| max_pages | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. | |
| version_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details such as authentication requirements, side effects of create/update/delete, or rate limits. The description only lists actions without explaining their implications.
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 conveys the core functionality. It is front-loaded with key actions, but could expand slightly without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 parameters and no output schema or annotations, the description is too brief. It does not explain how actions map to parameters or what the tool returns, making it incomplete for an AI 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 description adds meaning to the action parameter by listing possible values but does not explain other parameters beyond what is in the schema. With 50% schema description coverage, the description provides moderate additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages project versions with specific actions (list, get, create, update, delete). This distinguishes it from sibling tools that handle other Redmine entities like issues or users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, but the actions are self-explanatory for version management. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redmine_wikiC
Manage project wiki pages: list, get, update, delete.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Query parameters. Array values are appended repeatedly. | |
| title | No | ||
| action | Yes | ||
| headers | No | Additional headers. Authentication and content headers are managed automatically unless explicitly overridden. | |
| include | No | Wiki include values such as attachments. | |
| max_pages | No | ||
| wiki_page | No | ||
| project_id | No | Redmine numeric ID or identifier, passed as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only mentions the basic operations (list, get, update, delete) but does not disclose side effects, authentication needs, rate limits, or error handling. For a mutation-capable tool, 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, very concise and front-loaded. However, it is under-specified; more details could be added without losing conciseness. It is minimally adequate but not optimally structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, nested objects, no output schema), the description is incomplete. It does not explain return values, pagination behavior, error codes, or the relationship between actions and parameters. Significant gaps remain for effective agent 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 44%, meaning the schema already documents some parameters, but the description adds no additional meaning. It does not explain the role of parameters like project_id, wiki_page, or how actions relate to them. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Manage' and the resource 'project wiki pages', enumerating specific actions: list, get, update, delete. This clearly indicates the tool's scope but does not differentiate from sibling tools like redmine_issues or redmine_documents, which manage different 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?
No guidance is provided on when to use this tool versus alternatives. The description merely lists actions without specifying context, prerequisites, or exclusions. This leaves the agent without clear direction for selection among siblings.
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.
26 tool updates
v0.1.2- First observed
redmine_api_request - First observed
redmine_attachments - First observed
redmine_current_user - First observed
redmine_custom_fields - First observed
redmine_documents - First observed
redmine_enumerations - First observed
redmine_files - First observed
redmine_groups - First observed
redmine_issue_categories - First observed
redmine_issue_relations - First observed
redmine_issue_statuses - First observed
redmine_issue_watchers - First observed
redmine_issues - First observed
redmine_memberships - First observed
redmine_news - First observed
redmine_paginated_request - First observed
redmine_projects - First observed
redmine_queries - First observed
redmine_roles - First observed
redmine_search - First observed
redmine_time_entries - First observed
redmine_trackers - First observed
redmine_upload_file - First observed
redmine_users - First observed
redmine_versions - First observed
redmine_wiki
TDQS
Scored across 26 tools
Each tool targets a distinct Redmine resource (issues, projects, users, etc.) with clearly separated actions. The only potential ambiguity is the generic redmine_api_request, but it is explicitly documented as an escape hatch for unsupported endpoints, so agents can distinguish it from the resource-specific tools.
All tools follow the pattern 'redmine_<resource>', using plural nouns for resources (e.g., redmine_issues, redmine_projects). Minor deviations exist: redmine_upload_file, redmine_paginated_request, and redmine_api_request include action words, but the prefix 'redmine_' is consistently applied, making the set predictable.
26 tools is on the upper end but appropriate for the comprehensive Redmine API surface it covers. The count reflects the many resource types (issues, projects, users, wiki, attachments, etc.), and no tool feels unnecessary. A slightly smaller set could be acceptable, but this is well-scoped.
The tool surface covers CRUD for most major resources and includes search, file upload, and enumeration reads. Minor gaps exist (e.g., custom_fields only list, news read-only) but are compensated by the redmine_api_request escape hatch, which agents can use for any missing endpoint.
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for Linear project management and issue tracking
An MCP server that provides access to Testiny projects, test cases and test runs
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for Redmine project management, enabling tools for managing projects, issues, users, time entries, groups, memberships, versions, wiki, news, attachments, search, and Agile sprints via the Redmine REST API.89211MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Redmine that enables interaction with issues, wiki pages, and time entries through natural language.ISC
- FlicenseAqualityDmaintenanceAn MCP server that connects AI agents to Redmine project data, enabling natural language access to issues, projects, time entries, and more via the REST API.21-
- AlicenseNot gradedqualityCmaintenanceProvides an MCP server for interacting with Redmine's REST API, enabling LLMs to manage issues, projects, users, and time entries.MIT