
Yandex Tracker
STDIOMCP server enabling AI assistants to interact with Yandex Tracker APIs for issue and queue management
MCP server enabling AI assistants to interact with Yandex Tracker APIs for issue and queue management
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with Yandex Tracker APIs. This server provides secure, authenticated access to Yandex Tracker issues, queues, comments, worklogs, and search functionality with optional Redis caching for improved performance.
Choose one of the following based on your Yandex organization type:
TRACKER_CLOUD_ORG_ID
env var later for Yandex Cloud-managed organizationsTRACKER_ORG_ID
env var later for Yandex 360 organizationsYou can find your organization ID in the Yandex Tracker URL or organization settings.
Yandex Tracker MCP Server can be one-click installed in Claude Desktop as and extension.
There is only one requirement - python 3.12 must be installed on your system.
For macOS users, you can install it using the following command:
brew install [email protected]
*.dxt
file from GitHub Releases for your OS and platform.The following sections show how to configure the MCP server for different AI clients. You can use either uvx yandex-tracker-mcp@latest
or the Docker image ghcr.io/aikts/yandex-tracker-mcp:latest
. Both require these environment variables:
TRACKER_TOKEN
- Your Yandex Tracker OAuth token (required)TRACKER_CLOUD_ORG_ID
or TRACKER_ORG_ID
- Your Yandex Cloud (or Yandex 360) organization IDConfiguration file path:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Using uvx:
{ "mcpServers": { "yandex-tracker": { "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using Docker:
{ "mcpServers": { "yandex-tracker": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using uvx:
claude mcp add yandex-tracker uvx yandex-tracker-mcp@latest \ -e TRACKER_TOKEN=your_tracker_token_here \ -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here \ -e TRACKER_ORG_ID=your_org_id_here \ -e TRANSPORT=stdio
Using Docker:
claude mcp add yandex-tracker docker "run --rm -i -e TRACKER_TOKEN=your_tracker_token_here -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here -e TRACKER_ORG_ID=your_org_id_here -e TRANSPORT=stdio ghcr.io/aikts/yandex-tracker-mcp:latest"
Configuration file path:
.cursor/mcp.json
in your project directory~/.cursor/mcp.json
Using uvx:
{ "mcpServers": { "yandex-tracker": { "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using Docker:
{ "mcpServers": { "yandex-tracker": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Configuration file path:
~/.codeium/windsurf/mcp_config.json
Access via: Windsurf Settings → Cascade tab → Model Context Protocol (MCP) Servers → "View raw config"
Using uvx:
{ "mcpServers": { "yandex-tracker": { "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using Docker:
{ "mcpServers": { "yandex-tracker": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Configuration file path:
~/.config/zed/settings.json
Access via: Cmd+,
(macOS) or Ctrl+,
(Linux/Windows) or command palette: "zed: open settings"
Note: Requires Zed Preview version for MCP support.
Using uvx:
{ "context_servers": { "yandex-tracker": { "source": "custom", "command": { "path": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } } }
Using Docker:
{ "context_servers": { "yandex-tracker": { "source": "custom", "command": { "path": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } } }
Configuration file path:
.vscode/mcp.json
in your project directorysettings.json
Option 1: Workspace Configuration (Recommended for security)
Create .vscode/mcp.json
:
Using uvx:
{ "inputs": [ { "type": "promptString", "id": "tracker-token", "description": "Yandex Tracker Token", "password": true }, { "type": "promptString", "id": "cloud-org-id", "description": "Yandex Cloud Organization ID" }, { "type": "promptString", "id": "org-id", "description": "Yandex Tracker Organization ID (optional)" } ], "servers": { "yandex-tracker": { "type": "stdio", "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "${input:tracker-token}", "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}", "TRACKER_ORG_ID": "${input:org-id}", "TRANSPORT": "stdio" } } } }
Using Docker:
{ "inputs": [ { "type": "promptString", "id": "tracker-token", "description": "Yandex Tracker Token", "password": true }, { "type": "promptString", "id": "cloud-org-id", "description": "Yandex Cloud Organization ID" }, { "type": "promptString", "id": "org-id", "description": "Yandex Tracker Organization ID (optional)" } ], "servers": { "yandex-tracker": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "${input:tracker-token}", "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}", "TRACKER_ORG_ID": "${input:org-id}", "TRANSPORT": "stdio" } } } }
Option 2: Global Configuration
Add to VS Code settings.json
:
Using uvx:
{ "github.copilot.chat.mcp.servers": { "yandex-tracker": { "type": "stdio", "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using Docker:
{ "github.copilot.chat.mcp.servers": { "yandex-tracker": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
For other MCP-compatible clients, use the standard MCP server configuration format:
Using uvx:
{ "mcpServers": { "yandex-tracker": { "command": "uvx", "args": ["yandex-tracker-mcp@latest"], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Using Docker:
{ "mcpServers": { "yandex-tracker": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "TRACKER_TOKEN", "-e", "TRACKER_CLOUD_ORG_ID", "-e", "TRACKER_ORG_ID", "ghcr.io/aikts/yandex-tracker-mcp:latest" ], "env": { "TRACKER_TOKEN": "your_tracker_token_here", "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here", "TRACKER_ORG_ID": "your_org_id_here" } } } }
Important Notes:
uvx
is installed and available in your system PATHThe server exposes the following tools through the MCP protocol:
queues_get_all
: List all available Yandex Tracker queues
TRACKER_LIMIT_QUEUES
restrictionsqueue_get_local_fields
: Get local fields for a specific queue
queue_id
(string, queue key like "SOMEPROJECT")TRACKER_LIMIT_QUEUES
restrictionsqueue_get_tags
: Get all tags for a specific queue
queue_id
(string, queue key like "SOMEPROJECT")TRACKER_LIMIT_QUEUES
restrictionsqueue_get_versions
: Get all versions for a specific queue
queue_id
(string, queue key like "SOMEPROJECT")TRACKER_LIMIT_QUEUES
restrictionsusers_get_all
: Get information about user accounts registered in the organization
per_page
(optional): Number of users per page (default: 50)page
(optional): Page number to return (default: 1)user_get
: Get information about a specific user by login or UID
user_id
(string, user login like "john.doe" or UID like "12345")get_global_fields
: Get all global fields available in Yandex Tracker
get_statuses
: Get all available issue statuses
get_issue_types
: Get all available issue types
issue_get
: Retrieve detailed issue information by ID
issue_id
(string, format: "QUEUE-123")issue_get_url
: Generate web URL for an issue
issue_id
(string)https://tracker.yandex.ru/{issue_id}
issue_get_comments
: Fetch all comments for an issue
issue_id
(string)issue_get_links
: Get related issue links
issue_id
(string)issue_get_worklogs
: Retrieve worklog entries
issue_ids
(array of strings)issue_get_attachments
: Get attachments for an issue
issue_id
(string, format: "QUEUE-123")issues_find
: Search issues using Yandex Tracker Query Language
query
(required): Query string using Yandex Tracker Query Language syntaxpage
(optional): Page number for pagination (default: 1)issues_count
: Count issues matching a query using Yandex Tracker Query Language
query
(required): Query string using Yandex Tracker Query Language syntax# Required - Yandex Tracker API token TRACKER_TOKEN=your_yandex_tracker_oauth_token # Organization Configuration (choose one) TRACKER_CLOUD_ORG_ID=your_cloud_org_id # For Yandex Cloud organizations TRACKER_ORG_ID=your_org_id # For Yandex 360 organizations # API Configuration (optional) TRACKER_BASE_URL=https://api.tracker.yandex.net # Default: https://api.tracker.yandex.net # Security - Restrict access to specific queues (optional) TRACKER_LIMIT_QUEUES=PROJ1,PROJ2,DEV # Comma-separated queue keys # Server Configuration HOST=0.0.0.0 # Default: 0.0.0.0 PORT=8000 # Default: 8000 TRANSPORT=stdio # Options: stdio, streamable-http, sse # Redis Caching (optional but recommended for production) CACHE_ENABLED=true # Default: false CACHE_REDIS_ENDPOINT=localhost # Default: localhost CACHE_REDIS_PORT=6379 # Default: 6379 CACHE_REDIS_DB=0 # Default: 0
# Using environment file docker run --env-file .env -p 8000:8000 ghcr.io/aikts/yandex-tracker-mcp:latest # With inline environment variables docker run -e TRACKER_TOKEN=your_token \ -e TRACKER_CLOUD_ORG_ID=your_org_id \ -e CACHE_ENABLED=true \ -p 8000:8000 \ ghcr.io/aikts/yandex-tracker-mcp:latest
docker build -t yandex-tracker-mcp .
Using pre-built image:
version: '3.8' services: mcp-tracker: image: ghcr.io/aikts/yandex-tracker-mcp:latest ports: - "8000:8000" environment: - TRACKER_TOKEN=${TRACKER_TOKEN} - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}
Building locally:
version: '3.8' services: mcp-tracker: build: . ports: - "8000:8000" environment: - TRACKER_TOKEN=${TRACKER_TOKEN} - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}
The MCP server can also be run in streamable-http mode for web-based integrations or when stdio transport is not suitable.
# Required - Set transport to streamable-http mode TRANSPORT=streamable-http # Server Configuration HOST=0.0.0.0 # Default: 0.0.0.0 (all interfaces) PORT=8000 # Default: 8000 # Required - Yandex Tracker API credentials TRACKER_TOKEN=your_yandex_tracker_oauth_token TRACKER_CLOUD_ORG_ID=your_cloud_org_id # For Yandex Cloud organizations TRACKER_ORG_ID=your_org_id # For Yandex 360 organizations (optional) # Optional - Other configurations TRACKER_LIMIT_QUEUES=PROJ1,PROJ2,DEV # Comma-separated queue keys
# Basic streamable-http server startup TRANSPORT=streamable-http uvx yandex-tracker-mcp@latest # With custom host and port TRANSPORT=streamable-http HOST=localhost PORT=9000 uvx yandex-tracker-mcp@latest # With all environment variables TRANSPORT=streamable-http \ HOST=0.0.0.0 \ PORT=8000 \ TRACKER_TOKEN=your_token \ TRACKER_CLOUD_ORG_ID=your_org_id \ uvx yandex-tracker-mcp@latest
# Clone and setup git clone https://github.com/aikts/yandex-tracker-mcp cd yandex-tracker-mcp # Install development dependencies uv sync --dev # Formatting and static checking make
This project is licensed under the terms specified in the LICENSE file.
For issues and questions: