MCP server for integrating Backlog project management and issue tracking system with Claude and other LLM clients
The Backlog MCP server presents 64 tools across a well-organized API surface, but suffers from critical deficiencies in schema visibility, parameter documentation, and description quality. While tool naming follows verb_noun conventions consistently (get_*, add_*, update_*, delete_*), the actual input schemas and parameter descriptions are not visible in the provided source code. The sample code shows a sophisticated handler composition system (composeToolHandler, composeNativeContentToolHandler) that wraps tools with error handling, organization context, field picking, and token limits, indicating mature infrastructure, but the underlying tool definitions themselves lack the transparency needed to verify schema completeness, parameter typing, and constraint documentation. Generic descriptions like 'Tools for managing issues and their comments' are reused across dozens of tools, providing zero signal for LLM tool selection. Critical deficiency: no parameter descriptions are visible, violating the pattern:tool-description rule that ALL params must have descriptions.
Tools for managing issues and their comments.
Tools for managing documents.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing projects, categories, custom fields, and issue types.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing issues and their comments.
Input schemas are completely invisible in provided source code. Cannot verify parameter types, constraints, or descriptions for any of the 64 tools.
63 of 64 tools have generic, reused descriptions that provide zero signal for LLM selection. Description 'Tools for managing issues and their comments' is shared across 20+ disparate tools (get_issue, get_issues, count_issues, add_issue, update_issue, delete_issue, get_categories, add_category, get_custom_fields, get_issue_types, get_resolutions, get_watching_list_items, get_watching_list_count, add_watching, update_watching, delete_watching, mark_watching_as_read, get_version_milestone_list, add_version_milestone, update_version_milestone, delete_version, get_issue_attachment). This violates pattern:tool-description, descriptions must disambiguate when to use each tool. Only list_organizations has a substantive description.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 36 | - | v1 |
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing wiki pages.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing documents.
Tools for managing documents.
Tools for managing documents.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing Backlog space settings and general information.
Tools for managing user notifications.
Tools for managing user notifications.
Tools for managing issues and their comments.
Tools for managing projects, categories, custom fields, and issue types.
Tools for managing projects, categories, custom fields, and issue types.
Tools for managing projects, categories, custom fields, and issue types.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing Backlog space settings and general information.
Tools for managing Backlog space settings and general information.
Tools for managing Backlog space settings and general information.
Tools for managing Backlog space settings and general information.
Tools for managing Backlog space settings and general information.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing wiki pages.
Tools for managing wiki pages.
Tools for managing wiki pages.
Lists available Backlog organizations/spaces that the authenticated user has access to
Tools for managing user notifications.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing user notifications.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing projects, categories, custom fields, and issue types.
Tools for managing Git repositories and pull requests.
Tools for managing Git repositories and pull requests.
Tools for managing issues and their comments.
Tools for managing issues and their comments.
Tools for managing wiki pages.
No parameter descriptions are visible in source code. Cannot verify that the 64 tools satisfy the requirement: 'Every parameter needs a description explaining what it controls.' This violates pattern:tool-description and review:param-validation-rules.
Destructive operations (delete_issue, delete_version) have generic, uninformative descriptions and no visible confirmation/dry-run support. Agents cannot determine irreversibility from the tool definition. Violates pattern:confirmation-request.
No tool descriptions mention what the tool RETURNS. LLMs need to know output structure (fields, types) to plan multi-step workflows. Violates baseline: '100% of A+ tools have documented return types' (pattern:tool, review:incomplete-docstrings).
Tool naming suggests pagination (get_issues, get_pull_requests) but descriptions do not clarify limit, offset/cursor, or result cap behavior. Users may not know whether a single call returns 5, 50, or 5000 items. Violates pattern:paginated-result.
Many read tools (get_issue, get_user, get_project) do not describe whether to use name, ID, key, or other identifiers. Violates mxe:natural-identifiers, agents need to know whether to pass '[email protected]' or 'U12345' or 'PROJ-123'.