Model Context Protocol (MCP) server for Redmine — exposes the Redmine REST API (issues, projects, users, time entries, search) as MCP tools for any MCP-compatible client such as VS Code, Claude Desktop, or Cursor.
Strong foundation with 12 well-named tools covering Redmine's core operations. All tools have descriptions (avg 95 chars) and input schemas with typed parameters. Naming follows verb_noun convention consistently (list_*, get_*, create_*, update_*, delete_*, search_). However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are present but generic; many lack format constraints, ranges, or examples of valid values. Error handling is absent from visible code, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Security is well-designed (API key injection, on_behalf_of impersonation with admin checks, audit logging) but not reflected in tool definitions themselves.
Create a new issue in Redmine
Create a new time entry in Redmine
Delete an issue from Redmine
Get details of a specific issue by ID
Get details of a specific project by ID or identifier
Get details of a specific user by ID or login
List issues from Redmine, optionally filtered by project, status, assigned user, or other criteria
List projects from Redmine
Output schemas not documented. LLMs cannot predict response structure, field names, or types. Forces agents to guess what data is available after each call.
Parameter descriptions lack format constraints and ranges. E.g., 'limit' has no min/max bounds; 'sort' has no enum of valid fields; date params lack ISO 8601 format specification.
No error handling guidance in tool definitions. LLMs cannot determine if errors are retryable, user-fixable, or fatal. No recovery paths documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
List time entries from Redmine, optionally filtered by issue, project, user, or date range
List users from Redmine
Search for issues in Redmine using full-text search
Update an existing issue in Redmine
Destructive operations (delete_issue) lack confirmation or dry-run capability. Agents can permanently delete issues without safeguards.
List tools (list_issues, list_projects, list_users, list_time_entries) do not document pagination behavior, result limits, or total count in response. Agents cannot plan for large datasets.