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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| ff_mcp_jira-1.1.0.tar.gz | 12.7 kB | Without provenance | Details for ff_mcp_jira-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ff_mcp_jira-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for ff_mcp_jira-1.1.0-py3-none-any.whl |
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}
|
Security for ff-mcp-jira 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.