Skip to main content

MCP server for Jira Sync App — exposes Jira issues from a local PostgreSQL mirror via FastAPI

Project description

jira-sync-mcp

MCP server for Jira Sync App — exposes Jira issues from a local PostgreSQL mirror as MCP tools for Claude Code and other MCP clients.

PyPI

Repository: https://dev.azure.com/sii-ads-jira/Jira/_git/jira-sync-mcp

Requirements

  • A running instance of Jira Sync App (FastAPI backend)
  • An API token generated in Admin → API Tokens

Installation and usage

# Run directly via uvx (no installation needed)
uvx jira-sync-mcp

# Or install globally
pip install jira-sync-mcp
jira-sync-mcp

Configuration in Claude Code

Add to ~/.claude.json:

{
  "mcpServers": {
    "jira-sync-mcp": {
      "command": "uvx",
      "args": ["jira-sync-mcp"],
      "env": {
        "JIRA_SYNC_URL": "http://your-server:8000",
        "JIRA_SYNC_API_TOKEN": "<token from Admin → API Tokens>"
      }
    }
  }
}

Claude Code starts and stops the MCP process automatically — no manual startup required. The only service that must be running is the FastAPI backend.

Alternative: pip install (restricted environments)

If uvx is blocked by a security policy (e.g. Windows Defender Application Control), install the package directly into your Python environment and use python -m instead:

pip install jira-sync-mcp

Then in ~/.claude.json:

{
  "mcpServers": {
    "jira-sync-mcp": {
      "command": "python",
      "args": ["-m", "jira_sync_mcp"],
      "env": {
        "JIRA_SYNC_URL": "http://your-server:8000",
        "JIRA_SYNC_API_TOKEN": "<token from Admin → API Tokens>"
      }
    }
  }
}

Environment variables

Variable Default Description
JIRA_SYNC_URL http://localhost:8000 Jira Sync App backend URL
JIRA_SYNC_API_TOKEN (required) API token from Admin → API Tokens

Available tools

get_issue(issue_id)

Fetches full data for a single Jira issue from the local database.

Arguments:

Argument Type Description
issue_id string Issue key, e.g. "PROJ-1234" or "TEAM-567"

Returns: a dict with the following fields:

Field Description
id, summary, description Basic issue data
issue_type, status, priority Classification
assignee, reporter People
labels, fix_versions Tags and release versions
created_at, updated_at Dates
sprint, epic_link, product, profile, linked_pm_key Custom fields
issue_links Linked issues (list of {link_type, direction, related_issue_id})
worklogs Work log entries (list of {author, time_spent_seconds, started_at, comment})
comments Comments (list of {author, body, created_at, updated_at})
changelog Change history (list of {author, created_at, field, from_value, to_value})

search_issues(...)

Searches issues with optional filters. Returns a paginated list.

Arguments:

Argument Type Default Description
project_id string Project key or comma-separated list, e.g. "PROJ" or "PROJ,TEAM"
status string Status or comma-separated list, e.g. "Open" or "Open,In Progress"
assignee string Assignee display name or comma-separated list
issue_type string Issue type, e.g. "Bug", "Story", "Task"
priority string Priority, e.g. "High", "Critical"
fix_version string Release version in format YYYY_Rnn, e.g. "2025_R01"
sprint string Sprint in format YYYY_Snn, e.g. "2025_S01"
product string Product name, e.g. "product-a"
profile string Team profile, e.g. "team-profile"
linked_pm_key string Linked PM project key, e.g. "PM-1234"
epic_link string Epic key, e.g. "PROJ-100"
date_from string Created from date (YYYY-MM-DD)
date_to string Created to date (YYYY-MM-DD)
search string Full-text search across id and summary (case-insensitive)
page int 1 Page number (starting from 1)
page_size int 50 Page size (1–200)

Returns: a dict with:

Field Description
items List of issues — each with: id, summary, issue_type, status, priority, assignee, reporter, labels, created_at, updated_at
total Total number of matching issues
page Current page
page_size Current page size

get_projects()

Returns the list of Jira projects available in the Jira Sync App.

Returns: a list of dicts, each with:

Field Description
id Project key, e.g. "PROJ"
name Full project name
is_active Whether the project is actively synced
last_synced_at Timestamp of the last successful sync

get_sync_status()

Returns the history of the last 20 Jira synchronisations.

Returns: a list of dicts, each with:

Field Description
id Sync run ID
project_id Project key
status success, error, or running
sync_type full, incremental, or missing
issues_synced Number of issues processed
started_at Sync start timestamp
finished_at Sync end timestamp
error_message Error details (only present when status is error)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jira_sync_mcp-0.1.3.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jira_sync_mcp-0.1.3-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file jira_sync_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: jira_sync_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for jira_sync_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4a280ef0072887935cc6f96071fc219d0cebc3a2a9a0a2f85290b80818e5824e
MD5 742d3c66e7b1aacc37ecd8a7eb30b191
BLAKE2b-256 3bd0f25969fba44d19a3cbe8062c38dca327dbcb0ebb55a11612bd780d363de5

See more details on using hashes here.

File details

Details for the file jira_sync_mcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: jira_sync_mcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for jira_sync_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 297827765a8a017a1dd4f60e3144cde9d877d2a0051e9a7d67a5dace459c9e47
MD5 7c2fce83b809466e04ca766a7683aa8c
BLAKE2b-256 38335d8c18a7d4899f482123e758ee70decd7e5df9a0a8142b2873e5e42f688c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page