YouTrack MCP Server

YouTrack MCP Server

Enables AI assistants to interact with JetBrains YouTrack 2025.2 for managing issues, sprints, dependencies, time tracking, and knowledge base content. Supports CRUD operations, bulk commands, analytics with Gantt charts and critical path analysis, and covers ~80% of the YouTrack REST API.

Category
Visit Server

README

<div align="center">

YouTrack MCP Server

CI License: MIT TypeScript MCP API

</div>

Enterprise‑grade MCP server for JetBrains YouTrack 2025.2 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. Fully validated against official OpenAPI specification.


Table of Contents

  1. Quick Start
  2. Highlights
  3. What's New
  4. Environment & Configuration
  5. MCP Client Integration
  6. Usage Examples
  7. Analytics (Gantt & Critical Path)
  8. Tool Catalog Summary
  9. Architecture
  10. Development
  11. Troubleshooting
  12. Security & Permissions
  13. Roadmap
  14. Contributing
  15. 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

Domain Capabilities
Dynamic Configuration πŸ†• Auto-loads custom field values (State, Priority, Type) from YOUR YouTrack instance on startup - no more hardcoded examples!
Issues CRUD, 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
Agile Sprint create/manage, issue assignment, progress metrics
Knowledge Base Article create/update/search, tagging, linkage
Projects Discovery, metadata, field summaries
Analytics Gantt generation, dependency routing, critical path
Time Tracking Log work, time summaries, reporting hooks
Performance TTL caching, structured logging, graceful fallbacks
Reliability Consistent response envelope & error normalization
API Coverage πŸ†• ~80% of YouTrack REST API (12 of 15 domain areas)
Code Quality πŸ†• ESLint compliant, TypeScript strict mode, 100% CI passing
API Validation πŸ†• Verified against official YouTrack OpenAPI 3.0.1 spec

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=
Variable Required Description Default
YOUTRACK_URL βœ… Base URL without /api suffix (e.g., https://instance.youtrack.cloud) β€”
YOUTRACK_TOKEN βœ… Permanent token (Profile β†’ Tokens) β€”
PROJECT_ID β€” Default project shortName β€”
LOG_LEVEL β€” error/warn/info/debug info
CACHE_ENABLED β€” Enable in‑memory cache true
CACHE_TTL β€” Cache TTL ms 300000
ENABLE_WEBHOOKS β€” Start webhook listener false
WEBHOOK_PORT β€” Webhook port 3000
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:

Category Tools & Key Actions
Issues issues - 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 Boards agile_boards - list boards/sprints, assign issues, track progress
Knowledge Base knowledge_base - create/update articles, search, manage hierarchy
Projects projects - list, get details, validate access, custom fields
Users & Groups users - list/search users, groups, team management
Time Tracking time_tracking - log work, get entries, reports
Analytics analytics - Gantt charts, critical path, resource allocation
Custom Fields custom_fields - manage fields, bundles, project fields
Comments comments - add, update, delete issue comments
Subscriptions subscriptions - manage notification preferences
Auth auth - 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

Quick Fixes

Symptom Cause Fix
401 Unauthorized Missing scope / expired token Regenerate token with required permissions
404 Not Found (double /api/api) URL has /api suffix Remove /api from YOUTRACK_URL
Project not found Hidden / archived / wrong ID Use internal ID or verify access
Empty analytics No issues in project Seed baseline issues
SSE disconnects Proxy idle timeout Enable keep-alive / tune LB
AI wrong field values Dynamic config failed Check token permissions, restart server
Empty search results PROJECT_ID too restrictive Remove or update PROJECT_ID

Configuration Checklist:

  • βœ… Absolute path in MCP client config
  • βœ… No trailing slash on YOUTRACK_URL
  • βœ… No /api suffix on YOUTRACK_URL (server adds automatically)
  • βœ… Full token with perm: prefix
  • βœ… JSON env values are strings
  • βœ… Token has required permissions

Debug Mode: Use LOG_LEVEL=debug for detailed inspection.

πŸ“– Complete Troubleshooting Guide - Comprehensive solutions for all common issues.


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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured