MCP Server for Redmine - Manage tasks, log time, update status via Claude/AI assistants
This server has critical deficiencies in parameter descriptions and output schema documentation. While tool names follow verb_noun convention (list_*, get_*, log_*, update_*), the parameter descriptions contain example values that LLMs may reuse literally, and output schemas are completely undocumented. The schema is visible but incomplete, parameters lack detailed format specifications and constraints. Error handling is minimal (generic try/catch blocks with basic error messages). Vietnamese descriptions are present but some are vague about what the tool actually modifies. The server lacks idempotency guarantees, permission verification, and comprehensive error recovery guidance.
Xem chi tiết một task cụ thể bằng ID.
Lấy danh sách task được assign cho tôi.
Log thời gian làm việc vào task với đầy đủ parameters.
Cập nhật trạng thái của task.
Output schemas completely undocumented. LLM cannot predict what fields will be returned, limiting ability to chain tools or extract required data for downstream calls.
Parameter descriptions contain example values (e.g., 'ví dụ 1.5', 'ví dụ: 14 cho Development') that LLMs commonly reuse literally instead of adapting to context. Should use enums and format constraints instead.
No enum declarations for status values. 'status_filter' in list_my_tasks and 'status_name' in update_issue_status accept free-form strings, inviting hallucinated invalid values. Should declare valid statuses as enums.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 9 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Error messages are generic and provide no recovery guidance. 'Error fetching tasks: {str(e)}' tells the LLM nothing about whether to retry, what went wrong, or how to fix it. Missing recovery-guide pattern.
No permission checks or audit logging. A user/agent can modify any issue's status without verification. Missing permission-gate and audit-trail patterns for write operations.
Date parameters use flexible string format ('YYYY-MM-DD' mentioned but not enforced). No regex pattern or validation shown. LLMs frequently miscalculate date formats, should enforce via schema.
Parameter descriptions for 'custom_fields' in log_time example a JSON format ('ví dụ: [...]') but expect a string, confusing and error-prone. Should either accept structured input or document string format precisely.
No idempotency guarantees documented. Agents retry on ambiguous failures, log_time or update_issue_status called twice could create duplicate time entries or status changes.
list_my_tasks lacks pagination parameters. Endpoint limits to 25 results but tool exposes no limit, offset, or next_cursor. Large task lists will be silently truncated.
get_issue_details returns raw issue object with many fields (journals, children, custom_fields). No filtering for relevance. Response can be very large, wasting tokens and risking context exhaustion.