jira-multi-mcp
jira-multi-mcp
A single MCP server that talks to several Jira Cloud sites at once. It spawns
the upstream sooperset/mcp-atlassian
server unmodified, one child process per configured site, mirrors its tools
behind a site selector so a caller can just say "look at JUMP-2274" and get
routed by issue-key prefix, and adds attachment download/upload tools that
write straight to disk instead of returning base64.
Status: pre-alpha, under construction. This repo currently ships config
loading, the site registry, and a CLI (--check, --print-config, --warm);
serve (the actual MCP server) lands in a later milestone.
Configuration
Copy config.example.toml to ${XDG_CONFIG_HOME:-~/.config}/jira-multi-mcp/config.toml
(chmod 600 recommended) and fill in your sites. Override the location with
JIRA_MULTI_CONFIG=/path/to/config.toml or --config PATH. Each [[sites]]
entry needs a unique name, an https:// url, and a globally-unique set of
key_prefixes (the project prefixes, e.g. JMC, used to route a bare
JMC-1234 to the right site without saying which one). Auth is either Cloud
(username + api_token/api_token_env) or Server/Data Center
(personal_token/personal_token_env) — see config.example.toml for the
full contract, including the [defaults] fallbacks and the
JIRA_MULTI_SITE_<NAME>_<FIELD> environment-variable overlay.
Useful commands:
jira-multi-mcp --print-config— show the effective, merged configuration with every secret masked as***.jira-multi-mcp --check— authenticate against every configured site and print a table ofdisplayName/accountIdper site; exits non-zero if any site fails (--allow-partialto tolerate some failures).jira-multi-mcp --warm [--refresh]— prime theuvxcache for the upstreammcp-atlassiancommand ahead of time.