YouTrack

Access the YouTrack REST API to manage projects and track issues in real-time.

YouTrack MCP Server

CI License: MIT TypeScript MCP

Enterprise‑grade MCP server for JetBrains YouTrack giving AI assistants (Claude, VSCode MCP extensions, Continue.dev, Cline, Zed, custom connectors) safe, tool-based access to issues, sprints, dependencies (Gantt + critical path), time tracking and knowledge base content.


Table of Contents

  1. Quick Start
  2. Highlights
  3. Environment & Configuration
  4. MCP Client Integration
  5. Usage Examples
  6. Analytics (Gantt & Critical Path)
  7. Tool Catalog Summary
  8. Architecture
  9. Development
  10. Troubleshooting
  11. Security & Permissions
  12. Roadmap
  13. Contributing
  14. License

Quick Start

git clone https://github.com/itsalfredakku/youtrack-mcp.git
cd youtrack-mcp
npm install
cp .env.example .env      # set YOUTRACK_URL + YOUTRACK_TOKEN
npm run build
npm start                 # stdio MCP server

Remote (SSE) for hosted usage / ChatGPT custom connector:

npm run start:remote      # http://localhost:3001/mcp/sse

Health check:

curl http://localhost:3001/health

Highlights

DomainCapabilities
Dynamic ConfigurationπŸ†• Auto-loads custom field values (State, Priority, Type) from YOUR YouTrack instance on startup - no more hardcoded examples!
IssuesCRUD, comments, transitions, dependency links, estimation, count queries
Issue HistoryπŸ†• Activity tracking, audit trail, change history with filtering
Bulk OperationsπŸ†• Apply commands to multiple issues, silent execution, auto-completion
Search EnhancementπŸ†• Query auto-completion, context-aware suggestions
Saved QueriesπŸ†• Create, manage, and share saved searches
AgileSprint create/manage, issue assignment, progress metrics
Knowledge BaseArticle create/update/search, tagging, linkage
ProjectsDiscovery, metadata, field summaries
AnalyticsGantt generation, dependency routing, critical path
Time TrackingLog work, time summaries, reporting hooks
PerformanceTTL caching, structured logging, graceful fallbacks
ReliabilityConsistent response envelope & error normalization
API CoverageπŸ†• ~80% of YouTrack REST API (12 of 15 domain areas)

🌟 New: Dynamic Configuration

The MCP server now automatically adapts to your YouTrack customization! On startup, it:

  • βœ… Fetches your actual State values (e.g., "In Progress", "Code Review")
  • βœ… Loads your Priority values (e.g., "Critical", "High", "Medium")
  • βœ… Discovers your Issue Types (e.g., "Bug", "Feature", "Epic")
  • βœ… Generates accurate query examples that work with YOUR setup

No more errors from AI assistants suggesting "state: Open" when your instance uses "state: In Progress"!

See Dynamic Configuration Documentation for details.


Environment & Configuration

Minimal .env:

YOUTRACK_URL=https://your-instance.youtrack.cloud
YOUTRACK_TOKEN=your-permanent-token
PROJECT_ID=PROJECT-1
LOG_LEVEL=info
CACHE_ENABLED=true
CACHE_TTL=300000
ENABLE_WEBHOOKS=false
WEBHOOK_PORT=3000
WEBHOOK_SECRET=
VariableRequiredDescriptionDefault
YOUTRACK_URLβœ…Base URL (no trailing slash)β€”
YOUTRACK_TOKENβœ…Permanent token (Profile β†’ Tokens)β€”
PROJECT_IDβ€”Default project shortNameβ€”
LOG_LEVELβ€”error/warn/info/debuginfo
CACHE_ENABLEDβ€”Enable in‑memory cachetrue
CACHE_TTLβ€”Cache TTL ms300000
ENABLE_WEBHOOKSβ€”Start webhook listenerfalse
WEBHOOK_PORTβ€”Webhook port3000
WEBHOOK_SECRETβ€”HMAC secretβ€”

MCP Client Integration

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{ 
  "mcpServers": { 
    "youtrack": {
      "command": "node", 
      "args": ["/abs/path/youtrack-mcp/dist/index.js"], 
      "env": {
        "YOUTRACK_URL": "https://your-instance.youtrack.cloud", 
        "YOUTRACK_TOKEN": "token",
        "PROJECT_ID": "PRJ"  // Optional
      } 
    } 
  } 
}

VSCode (.vscode/settings.json):

{ 
  "servers": { 
    "youtrack": { 
      "command": "node", 
      "args": ["./dist/index.js"], 
      "env": {
        "YOUTRACK_URL": "https://your-instance.youtrack.cloud", 
        "YOUTRACK_TOKEN": "token",
      } 
    } 
  } 
}

Github Coding Agent:

 "mcpServers": {
    "youtrack": {      
       "type": "sse",
        "url": "https://your-instance.youtrack.cloud/mcp/sse",
        "headers": {
            "Authorization": "Bearer <your-token>"
            },
      "tools": [
        "issues",
        "projects",
        "users"        
      ]
    }
}

Continue.dev (continue.json):

{ 
  "mcp": { 
    "servers": [
      { 
        "name": "youtrack", 
        "command": "node", 
        "args": ["/abs/youtrack-mcp/dist/index.js"], 
        "env": {
          "YOUTRACK_URL": "https://your-instance.youtrack.cloud", 
          "YOUTRACK_TOKEN": "token"
        } 
      }
    ] 
  } 
}

Cline / Generic:

{ 
  "mcpServers": { 
    "youtrack": { 
      "command": "node", 
      "args": ["/abs/youtrack-mcp/dist/index.js"], 
      "env": {
        "YOUTRACK_URL": "https://your-instance.youtrack.cloud", 
        "YOUTRACK_TOKEN": "token"
      } 
    } 
  } 
}

Zed:

{ 
  "context_servers": { 
    "youtrack": { 
      "command": "node", 
      "args": ["/abs/youtrack-mcp/dist/index.js"], 
      "env": {
        "YOUTRACK_URL": "https://your-instance.youtrack.cloud", 
        "YOUTRACK_TOKEN": "token"
      } 
    } 
  } 
}

Local test:

YOUTRACK_URL=https://your-instance.youtrack.cloud \
YOUTRACK_TOKEN=token \
node dist/index.js

Pitfalls: absolute path, no trailing slash, full token copy, JSON env values are strings.


Tool Catalog Summary

17 MCP Tools covering 12 domain areas:

CategoryTools & Key Actions
Issuesissues - create, update, comment, search, query, count, state transitions
Issue History πŸ†•activities - global/issue activity tracking, audit trail, paginated history
Bulk Operations πŸ†•commands - apply commands to multiple issues, get suggestions, silent execution
Search πŸ†•search_assist - query auto-completion, context-aware suggestions
Saved Searches πŸ†•saved_queries - create, list, update, delete saved queries
Agile Boardsagile_boards - list boards/sprints, assign issues, track progress
Knowledge Baseknowledge_base - create/update articles, search, manage hierarchy
Projectsprojects - list, get details, validate access, custom fields
Users & Groupsusers - list/search users, groups, team management
Time Trackingtime_tracking - log work, get entries, reports
Analyticsanalytics - Gantt charts, critical path, resource allocation
Custom Fieldscustom_fields - manage fields, bundles, project fields
Commentscomments - add, update, delete issue comments
Subscriptionssubscriptions - manage notification preferences
Authauth - OAuth2 status, login, token validation

See Tool Reference for complete documentation.


Architecture

Clients (Claude / VSCode / Continue / Zed)
          β”‚  MCP (stdio or SSE)
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  Orchestrator   β”‚ registry, routing, validation
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚ domain calls
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ Domain Clients  β”‚ issues / projects / agile / kb / analytics / time
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚ REST
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  YouTrack API   β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Traits: strong typing, graceful degradation, normalized errors, pluggable caching/logging.


Development

npm install
npm run dev          # watch
npm run lint         # eslint
npm run type-check   # types
npm test             # tests
npm run build        # dist output

Structure: src/index.ts (entry), src/api/domains (domain clients), src/tools.ts (tool registry), src/utils, src/logger.ts.


Troubleshooting

SymptomCauseFix
401 UnauthorizedMissing scope / expired tokenRegenerate token with required permissions
Project not foundHidden / archived / wrong IDUse internal ID or verify access
Empty analyticsNo issues in projectSeed baseline issues
SSE disconnectsProxy idle timeoutEnable keep-alive / tune LB

Checklist: absolute path, no trailing slash, full token, JSON env strings. Use LOG_LEVEL=debug for deep inspection.


Security & Permissions

Recommended token capabilities: Issues (R/W), Projects (Read), Knowledge Base (R/W), Agile/Sprints (R/W), Time Tracking (if applicable). Store tokens as environment secrets; never commit.


Contributing

  1. Fork & branch (feature/x)
  2. Implement + tests
  3. npm run lint && npm run type-check
  4. Open PR with rationale

License

MIT Β© 2025

Acknowledgements

JetBrains YouTrack β€’ MCP community β€’ TypeScript ecosystem

Feedback / ideas? Open an issue or discussion.

Related Servers