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.
Release files for ff-mcp-jira 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ff_mcp_jira-1.1.0.tar.gz | 12.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ff_mcp_jira-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.1 kB
Release files / ff_mcp_jira-1.1.0.tar.gz
| Download URL | ff_mcp_jira-1.1.0.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2cc9b7c38f2076c42852024aeefcf2b86c2dd664ea34b2a9652c5d4696680ac
|
|
BLAKE2b-256 checksum How to use checksums |
990a58fe0b0f11f308db99eb776e9dec8218d6622a6025ed44bb651548e2362a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / ff_mcp_jira-1.1.0-py3-none-any.whl
| Download URL | ff_mcp_jira-1.1.0-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ccd5e673ce49f4bf512861ca57290ee5a9e5e5c8c1d9fb00a5199940fd56390
|
|
BLAKE2b-256 checksum How to use checksums |
05bbfb608431de28c99f8741f2045a30cd37e31f383221d921c604515fd60e9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|