Model Context Protocol server for JetBrains YouTrack integration
Server has 30 tools with consistent Zod schemas and descriptions. Naming follows verb_noun pattern (getGanttData, createIssue, updateIssue). However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs. similar ones. Parameter descriptions exist but are minimal (avg ~40 chars). Output schemas are not documented, callers must infer structure from implementation. Error handling is basic (try/catch with formatApiError). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Missing idempotency guidance for write operations.
Add a comment to an issue
Calculate critical path for a project
Convert an issue to a subtask of another issue
Create a new issue in YouTrack
Create an issue link
Create multiple subtasks for a parent issue
Create a new subtask and link it to a parent issue
Delete an issue - WARNING: This operation cannot be undone!
Output schemas not documented. Callers cannot infer response structure; LLMs must guess what fields are returned, risking failed downstream tool chains.
Descriptions lack LLM-optimized guidance. Most are 30-60 chars and state WHAT the tool does but not WHEN to use it vs. similar tools (e.g., searchIssues vs. searchIssuesAdvanced vs. getAllIssues).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk levels are documented in metadata but not exposed to MCP clients for UI/safety warnings.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Delete an issue link
Export Gantt chart in various formats
Get all issues in a project
Get Gantt chart data with filtering options
Get issue details by ID
Get issue links for an issue
Get available link types
Get issues assigned to current user
Get parent issue of a subtask
Get project details by ID or short name
Get project timeline with all issues and their dates
Get recently updated issues
Get story points for an issue
Get all subtasks of a parent issue
Get timeline conflicts and scheduling issues
List all projects
Search for issues with filtering
Advanced issue search using YouTrack query language
Search users by name or login
Set story points for an issue
Update an existing issue
Update issue timeline information (start date, due date, estimation)
Error handling is generic. Catch blocks return formatApiError(error) without categorizing errors as retryable, user-fixable, or fatal. LLMs cannot determine recovery strategy.
Parameter descriptions lack format/constraint details. E.g., 'estimationMinutes' has no min/max bounds; 'timezone' has no validation pattern; 'query' accepts free-form YouTrack syntax but does not document valid operators.