A Model Context Protocol (MCP) server for OpenProject API v3 integration providing project management, work package tracking, and task creation through a standardized interface
Server has 15 tools with mixed quality. Naming is generally verb-first and clear (test_connection, create_news, delete_membership). However, descriptions vary widely: some are detailed (create_news, delete_news with warnings), others are minimal (test_connection, check_permissions lack context on when/why to use). Input schemas are present for all tools but lack depth, most parameters have type and description, but no enums for constrained values (e.g., role_ids array, sort_by_created boolean). Output schemas are not documented anywhere in the source. Error handling is absent, no recovery guidance, no actionable error messages. Parameter descriptions are often terse (e.g., 'ID of the child work package' vs 'The numeric ID of the work package to set as child'). No evidence of pagination limits being enforced or documented in responses. Security: API key is injected via environment, which is correct, but no audit logging visible in tool implementations.
Check current user permissions and capabilities. Returns information about the authenticated user including their permissions. Useful for debugging permission-related issues.
Create a new membership (add user/group to project).
Create a new news entry for a project. This tool creates a news announcement for a project. News entries are visible to all project members and can be used for important announcements, updates, or milestone notifications. Required permissions: Administrator or "Manage news" permission in the project
Delete a membership (remove user/group from project).
Delete a news entry permanently. WARNING: This action cannot be undone. The news entry will be permanently removed from the project. Required permissions: Administrator or "Manage news" permission in the project
Output schemas not documented. No tool returns a documented response structure, LLMs cannot plan downstream calls or extract required fields.
Minimal descriptions on discovery/read tools. test_connection, check_permissions, get_membership, get_news lack context on when/why to call them vs alternatives. Descriptions under 50 chars.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. No recovery paths.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Get detailed information about a specific membership.
Get detailed information about a specific news entry.
List memberships (project members).
List news entries with filtering and pagination.
List all children of a work package.
Remove parent from a work package (break parent-child relationship).
Set a work package as child of another (create parent-child relationship).
Test the connection to the OpenProject API. Returns connection status and instance version information. This is useful for validating your API credentials and server connectivity.
Update an existing membership (change roles).
Update an existing news entry. This tool allows you to modify the title, summary, or description of a news entry. You only need to provide the fields you want to update. Required permissions: Administrator or "Manage news" permission in the project
Destructive operations lack confirmation/dry-run. delete_membership and delete_news are irreversible but have no confirmation step or dry-run option.
No enums for constrained parameters. role_ids, sort_by_created, and other parameters accept free-form input instead of declared enums, inviting hallucinated values.