Reliable Jira MCP server (Server/DC & Atlassian Cloud), no Node.js — runs on Python via uv. 37 tools: issues, labels, transitions, comments, worklog, links, remote links, watchers, attachments, user/assignable search, field & create metadata, agile boards/sprints.
Project description
ff-mcp-jira (Python / uv)
The same reliable Jira MCP server as ff-mcp-jira, but no Node.js.
One Python file, run by uv. uv downloads its own
Python and dependencies on first run — colleagues only need uv installed.
Same 37 jira_* tools, same behavior: Jira Server / Data Center (Bearer PAT) and
Atlassian Cloud (Basic + ADF) auto-detected, retries, timeouts, lean fields, full
error bodies surfaced to the model.
1. Install uv (one time)
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Get server.py
Copy server.py to a folder you'll keep, e.g. ~/mcp-jira-py/server.py
(Windows: C:\Users\you\mcp-jira-py\server.py).
3. Warm the cache once (avoids a client startup timeout)
The very first run downloads Python + deps (~10–20s). Do it once from a terminal so your MCP client doesn't time out on first launch:
uv run --python 3.12 --script /ABSOLUTE/PATH/server.py
It will print Starting ff-mcp-jira and wait — press Ctrl-C, it's working.
4. Configure your MCP client
Claude Desktop config — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json. (Claude Code: claude mcp add or its config.)
macOS / Linux:
{
"mcpServers": {
"jira": {
"command": "uv",
"args": ["run", "--python", "3.12", "--script", "/Users/you/mcp-jira-py/server.py"],
"env": {
"JIRA_BASE_URL": "https://jira.fintech-farm.com",
"JIRA_API_TOKEN": "your-personal-access-token"
}
}
}
}
Windows:
{
"mcpServers": {
"jira": {
"command": "uv",
"args": ["run", "--python", "3.12", "--script", "C:\\Users\\you\\mcp-jira-py\\server.py"],
"env": {
"JIRA_BASE_URL": "https://jira.fintech-farm.com",
"JIRA_API_TOKEN": "your-personal-access-token"
}
}
}
}
If
uvisn't found, use its full path (which uv/where uv), e.g. macOS/Users/you/.local/bin/uv, WindowsC:\\Users\\you\\.local\\bin\\uv.exe.--python 3.12makesuvprovision a Python even on machines that have none.
Restart the client — the jira_* tools appear in the next conversation.
First smoke test: ask it to call jira_get_myself.
Auth
| Deployment | JIRA_API_TOKEN is |
JIRA_USERNAME / JIRA_EMAIL |
|---|---|---|
| Jira Server / Data Center | Personal Access Token (profile → Personal Access Tokens) | Optional, ignored for auth |
Atlassian Cloud (*.atlassian.net) |
API token from id.atlassian.com → API tokens | Required (your account email) |
Auto-detected from the hostname. Force with JIRA_AUTH_MODE=basic|bearer.
Self-check
uv run --python 3.12 --script smoke.py
Boots the server offline, asserts all 37 tools register and the ADF/auth/clamp/URL logic is correct. No network calls.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ff_mcp_jira-1.1.0.tar.gz.
File metadata
- Download URL: ff_mcp_jira-1.1.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2cc9b7c38f2076c42852024aeefcf2b86c2dd664ea34b2a9652c5d4696680ac
|
|
| MD5 |
373b17ebd01edd716f3d870544a0e2f4
|
|
| BLAKE2b-256 |
990a58fe0b0f11f308db99eb776e9dec8218d6622a6025ed44bb651548e2362a
|
File details
Details for the file ff_mcp_jira-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ff_mcp_jira-1.1.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ccd5e673ce49f4bf512861ca57290ee5a9e5e5c8c1d9fb00a5199940fd56390
|
|
| MD5 |
6c227dde40a638d84269e4cb2f55b276
|
|
| BLAKE2b-256 |
05bbfb608431de28c99f8741f2045a30cd37e31f383221d921c604515fd60e9d
|