Exposes Redmine over the Model Context Protocol, in-process, using Redmine's own authentication and permission system.
Strong foundation with 11 well-named tools following verb_noun convention (who_am_i, list_projects, get_issue, create_issue, add_issue_note). All tools have descriptions and input schemas with proper JSON Schema types. Tool base class implements permission gating, schema validation, and error handling. However, 9 of 11 tools lack visible parameter descriptions in the provided source, only create_issue and add_issue_note show full schemas with descriptions. Output schemas are not documented. Error handling is present but recovery guidance is minimal. Pagination support exists (paged helper) but not all list tools show limit/offset parameters in visible schemas.
Append a note (comment) to an existing issue.
Create a new issue in a project.
9 of 11 tools lack visible parameter descriptions in source. Only create_issue and add_issue_note show full schemas with parameter descriptions. Remaining tools (who_am_i, list_projects, get_project, search_issues, get_issue, list_wiki_pages, get_wiki_page, list_enumerations, list_users) have schemas not visible in provided code, preventing verification of parameter documentation.
Output schemas not documented. Tool.rb descriptor returns name, title, description, inputSchema, and annotations, but no outputSchema field. LLMs cannot plan downstream tool calls without knowing what fields to expect from responses.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Error recovery guidance is minimal. Tool.rb raises ToolError and PermissionError with messages like 'You do not have permission to do that' and 'No visible project matching X', but does not suggest next steps (e.g., 'Try search_projects() with a partial name'). Agents cannot self-correct without explicit recovery hints.
Pagination parameters (limit, offset) not visible in schemas for 9 list tools. Tool.rb includes limit_for() and offset_for() helpers and paged() envelope, but source does not show whether list_projects, search_issues, list_wiki_pages, list_enumerations, list_users declare these parameters in their input schemas.
Tool annotations present (readOnlyHint, destructiveHint, idempotentHint) but only 2 of 11 tools have visible schemas to verify correctness. create_issue and add_issue_note correctly set write=true/false, but remaining tools' annotation correctness cannot be verified from provided source.