MCP Server
MCP Server
Section titled “MCP Server”The [mcp] extra ships a FastMCP 3.x server named
repo-release-tools that exposes version management, changelog, health /
drift / tree / artifact lock inspection, branch and commit validation, config
introspection, and interactive dashboards as MCP tools, resources, and Prefab
UI apps.
Install
Section titled “Install”# Add the [mcp] extra to your projectuv add "repo-release-tools[mcp]"
# Verify the entry point worksuv run rrt-mcp --helpConnect
Section titled “Connect”Claude Code — local (per-repo)
Section titled “Claude Code — local (per-repo)”Create or update .mcp.json at the repository root:
{ "mcpServers": { "rrt": { "type": "stdio", "command": "uv", "args": ["run", "rrt-mcp"] } }}Claude Code picks this up automatically on next start.
Claude Code — global
Section titled “Claude Code — global”claude mcp add rrt -- uv run --with "repo-release-tools[mcp]" rrt-mcpClaude Desktop
Section titled “Claude Desktop”Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{ "mcpServers": { "rrt": { "type": "stdio", "command": "uvx", "args": ["--from", "repo-release-tools[mcp]", "rrt-mcp"] } }}HTTP transport
Section titled “HTTP transport”--transport http binds a real network listener — unlike stdio, anyone who
can reach --host:--port could invoke every rrt_* tool, including
destructive ones like rrt_bump and rrt_publish_snapshot. To prevent that,
HTTP transport requires a bearer token: pass --auth-token or set
RRT_MCP_AUTH_TOKEN. If neither is set, the server refuses to start rather
than opening an unauthenticated port. --host still defaults to 127.0.0.1
(loopback-only) unless overridden.
# Token via flaguv run rrt-mcp --transport http --port 8000 --auth-token "$(openssl rand -hex 32)"
# Token via env varexport RRT_MCP_AUTH_TOKEN="$(openssl rand -hex 32)"uv run rrt-mcp --transport http --port 8000Clients connect with the same token as a bearer credential, e.g. an
Authorization: Bearer <token> header or FastMCP’s Client(url, auth=token).
stdio transport (the default) is process-local and piped over stdin/stdout —
no token is required or checked.
Read-only inspection tools
Section titled “Read-only inspection tools”| Tool | Tags | Description |
|---|---|---|
rrt_config |
config, inspection | Resolved rrt config as JSON |
rrt_doctor |
config, inspection | Pre-commit / lefthook / husky / workflow checks |
rrt_health |
locks, inspection | .rrt/health.lock.toml contents |
rrt_drift |
locks, inspection | .rrt/drift.lock.toml contents |
rrt_tree |
locks, inspection | .rrt/tree.lock.toml contents |
rrt_artifacts |
locks, inspection | .rrt/artifacts.lock.toml contents |
rrt_version |
versioning | Current version per configured group |
rrt_validate_branch |
validation | Conventional branch naming check |
rrt_validate_commit |
validation | Conventional commit subject check |
rrt_changelog |
changelog | Unreleased entries or full content |
rrt_eol |
eol, inspection | Host/project EOL status per language against policy |
rrt_release_check |
release, inspection | Version/pin/changelog target validation per group |
rrt_sync_check |
sync, inspection | Newer upstream package versions (not idempotent — network) |
rrt_folder_check |
folders, inspection | Folder structure policy violations |
rrt_docs_check |
docs, inspection | .rrt/docs.lock.toml drift status |
Mutating tools (default dry_run=True)
Section titled “Mutating tools (default dry_run=True)”| Tool | Tags | Description |
|---|---|---|
rrt_bump |
versioning | Semver bump — preview or apply |
rrt_branch_new |
git | Create conventionally-named branch |
rrt_init_run |
init, config | Run rrt init with selected target |
rrt_publish_snapshot |
git, publishing | Force-push a single-commit snapshot of tracked content to a secondary remote; exclude drops specific glob patterns from the snapshot |
App Dashboards
Section titled “App Dashboards”Interactive Prefab UI apps rendered in MCP-capable clients (Claude Code, Claude Desktop). All are read-only.
| App tool | Description |
|---|---|
rrt_health_dashboard |
Health overview: Metric summary row, health Ring, per-lock status BarChart, check status Cards, full detail DataTable |
rrt_version_overview |
Version target map: all configured files, kinds, and current version values |
rrt_doctor_dashboard |
Doctor checks: pass-rate Ring, per-check Metric cards, status Cards, detail DataTable |
rrt_tree_dashboard |
File tree: Metric summary (total files, directories, snapshot), per-directory BarChart, clean DataTable |
rrt_init |
Init form: pick target format (rrt-toml / pyproject / cargo / node / go), dry_run, force — submits to rrt_init_run |
rrt_locks_overview |
All-locks overview: status donut PieChart, Carousel of per-lock summary cards, full detail DataTable |
Generative UI
Section titled “Generative UI”The server registers FastMCP’s GenerativeUI provider, which adds
generate_prefab_ui and search_prefab_components tools. This lets the
LLM write custom Prefab Python code
executed in a Pyodide sandbox — the LLM can build any visualization it
chooses from data exposed by rrt://locks/{name} or other resources.
Resources
Section titled “Resources”| URI | MIME | Description |
|---|---|---|
rrt://version |
text/plain |
Installed package version string |
rrt://config |
application/json |
Fully resolved rrt config |
rrt://schema/config |
application/json |
JSON Schema for [tool.rrt] |
rrt://changelog |
text/plain |
Full CHANGELOG.md content |
rrt://locks/{name} |
application/json |
Lock file by name: drift / health / tree / artifacts |
Prompt templates
Section titled “Prompt templates”Seven reusable prompts guide AI-assisted workflows:
| Prompt | Parameters | Description |
|---|---|---|
release_workflow |
version_level, repo_name |
Step-by-step release guide |
version_strategy |
change_summary |
Semver bump recommendation |
branch_strategy |
task_description, context_hint |
Conventional branch selector |
commit_message_guide |
staged_summary, branch_name |
Conventional Commits format |
changelog_entry |
commit_summary, section_hint |
Keep-a-Changelog bullet |
config_setup |
project_type |
Starter config per language |
release_readiness |
version, target_env |
Pre-release checklist |
Example session
Section titled “Example session”# From inside Claude Code with rrt MCP connected:
"Show me the health dashboard"→ calls rrt_health_dashboard — renders Metric cards, Ring, BarChart
"What version is the project at?"→ calls rrt_version or rrt_version_overview
"Bump the patch version (dry run)"→ calls rrt_bump with dry_run=True, shows preview
"Open the init form"→ calls rrt_init — renders target/dry_run/force form
"Give me a custom chart of the lock file data"→ LLM uses generate_prefab_ui + rrt://locks/{name} resourcesBadge families are intentionally complete for the current icon registry across platform, registry, and language labels; see src/repo_release_tools/tools/platform.py if you think one is missing.
Chat is powered by Context7, a third-party service with its own terms and privacy policy.