No description
  • Rust 73.1%
  • Just 19.8%
  • Dockerfile 5.3%
  • Nushell 1.8%
Find a file
David 762821fa6c
All checks were successful
Check / fmt + clippy + build + tests (push) Successful in 19s
Build binary (Linux) / Build and publish youtrack-mcp binary (Linux x86_64) (push) Successful in 42s
Build binary (Linux static musl) / Build and publish youtrack-mcp binary (Linux x86_64 static musl) (push) Successful in 1m41s
Build binary (Windows) / Build and publish youtrack-mcp binary (Windows x86_64) (push) Successful in 2m11s
Merge pull request 'fix(build): use rust-builder-glibc-windows for Windows cross-build' (#6) from fix/windows-build-mingw-image into main
Reviewed-on: #6
2026-06-07 16:28:35 +02:00
.forgejo/workflows fix(ci): generate release notes from commits since previous tag 2026-05-31 13:28:56 -04:00
oci-build fix(build): use rust-builder-glibc-windows for Windows cross-build 2026-06-07 10:22:01 -04:00
src feat: initial YouTrack MCP server 2026-05-31 11:59:17 -04:00
.dockerignore chore: adopt a8n-run governance standards 2026-05-31 12:42:43 -04:00
.gitignore chore: Sync .gitignore 2026-06-06 13:12:19 -04:00
build.rs chore: adopt a8n-run governance standards 2026-05-31 12:42:43 -04:00
Cargo.lock chore(deps): use youtrack-client from youtrack-cli v0.4.0 2026-05-31 14:15:46 -04:00
Cargo.toml chore(deps): use youtrack-client from youtrack-cli v0.4.0 2026-05-31 14:15:46 -04:00
CLAUDE.md chore(deps): use youtrack-client from youtrack-cli v0.4.0 2026-05-31 14:15:46 -04:00
justfile chore(build): bump rust-builder-glibc to v1.0.1 2026-06-06 22:27:31 -04:00
LICENSE.md chore: adopt a8n-run governance standards 2026-05-31 12:42:43 -04:00
README.md docs(readme): link other YouTrack MCP implementations 2026-06-05 19:40:49 -04:00

youtrack-mcp

A Model Context Protocol (MCP) server for YouTrack, exposing issues, comments, work items, projects, knowledge base articles, agile boards and sprints, and users as MCP tools.

Overview

This server uses the Rust MCP SDK (rmcp) to expose a YouTrack instance's REST API as MCP tools that an AI agent can call. It authenticates with a permanent API token and talks to the YouTrack REST API via the youtrack-client crate (from the youtrack-cli repo), so authentication and API calls reuse the same code path as the yt CLI rather than reimplementing them. It speaks MCP over stdio.

Configuration

The server is configured entirely through environment variables:

Variable Required Description
YOUTRACK_BASE_URL yes Base URL of the YouTrack instance (e.g. https://youtrack.example.com).
YOUTRACK_TOKEN yes Permanent API token used to authenticate.
RUST_LOG no Log filter (logs go to stderr; stdout carries the JSON-RPC stream). Defaults to youtrack_mcp=info.

Tools

The server exposes the following tools, grouped by domain:

  • Issues: search_issues, get_issue, create_issue, update_issue, delete_issue, apply_command, get_issue_activities, list_issue_custom_fields, list_issue_attachments, list_link_types
  • Comments: list_comments, add_comment
  • Work items (time tracking): list_work_items, add_work_item, delete_work_item
  • Projects: list_projects, get_project, list_project_states, list_project_vcs_processors
  • Articles (knowledge base): list_articles, get_article, create_article, update_article, delete_article
  • Agile boards & sprints: list_boards, list_sprints, set_issue_sprint
  • Users: get_current_user, list_users, get_user

apply_command is the way to change issue state, assignee, priority, type, tags, and estimation, since YouTrack models those as commands rather than direct field writes. The command value is project-specific (e.g. State Done, Assignee me, Priority Critical, tag regression); use list_project_states to discover the valid State values for a project.

Usage

Run the server over stdio:

cargo run

Most MCP clients launch the binary themselves; configure the client to run the youtrack-mcp binary with the required environment variables set.

Example claude registration (stdio transport):

claude mcp add youtrack --env YOUTRACK_BASE_URL=https://youtrack.example.com --env YOUTRACK_TOKEN=perm:... -- /absolute/path/to/youtrack-mcp

Development

This repo uses a justfile for the standard dev workflow. Run just (or just --list) to see every recipe.

just install-hooks   # one-time per clone: install the pre-commit hook
just check           # fmt + clippy + build + builder-stage docker compile
just test            # cargo test
just build           # release binary
just build-docker-export   # extract the dynamic glibc Linux binary via the OCI build
just build-static          # build the fully static musl Linux binary via Docker
just build-windows         # cross-compile the Windows .exe
just create-release minor  # bump version, push release branch, open the PR via fj

just pre-commit runs the same fmt + clippy + build + test steps as .forgejo/workflows/check.yml, inside the rust-builder-glibc image so the toolchain matches CI. Conventions follow the a8n-run/governance repo; see CLAUDE.md for youtrack-mcp-specific notes.

Releases

CI publishes binaries to the Forgejo Generic Packages registry on every push to main and on v* tags:

Artifact Target Linking
youtrack-mcp-linux-x86_64 x86_64-unknown-linux-gnu Dynamic glibc.
youtrack-mcp-linux-x86_64-static x86_64-unknown-linux-musl Fully static (rustls, no OpenSSL; runs on any Linux).
youtrack-mcp-windows-x86_64.exe x86_64-pc-windows-gnu mingw cross-compile.

just create-release <major|minor|hotfix> opens the release PR; once merged, .forgejo/workflows/create-release.yml tags and publishes automatically.

Other implementations

Other MCP servers for YouTrack:

License

Licensed under the MIT License (LICENSE.md), matching the youtrack-client crate this depends on.