Skip to main content

Standalone Jira MCP (Model Context Protocol) connector for Claude Desktop integration

Project description

pnd-jira-mcp

A standalone Jira MCP (Model Context Protocol) connector for Claude Desktop integration.

Installation

pip install pnd-jira-mcp

Quick Start

  1. Set environment variables:
export JIRA_BASE_URL="https://your-instance.atlassian.net"
export JIRA_EMAIL="your-email@example.com"
export JIRA_API_TOKEN="your-api-token"
  1. Run the MCP server:
pnd-jira-mcp

Or via Python:

python -m pnd_jira_mcp

Claude Desktop Integration

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "jira": {
      "command": "pnd-jira-mcp",
      "env": {
        "JIRA_BASE_URL": "https://your-instance.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

Available Tools

Issue Operations

get_issue

Get details of a Jira issue by key.

{"issue_key": "PROJ-123"}

search_issues

Search for Jira issues using JQL.

{"jql": "project = PROJ AND status = Open", "max_results": 50}

add_comment

Add a comment to a Jira issue (supports markdown).

{"issue_key": "PROJ-123", "body": "This is a **markdown** comment"}

add_label

Add a label to a Jira issue.

{"issue_key": "PROJ-123", "label": "reviewed"}

update_fields

Update fields on a Jira issue.

{"issue_key": "PROJ-123", "fields": {"summary": "New summary"}}

update_ai_fields

Update AI-related custom fields.

{"issue_key": "PROJ-123", "ai_used": true, "agent_name": "Claude"}

Transition Operations

get_transitions

Get available transitions for an issue.

{"issue_key": "PROJ-123"}

transition_issue

Transition an issue to a new status.

{"issue_key": "PROJ-123", "transition_id": "31"}

Sprint Operations

get_boards

Get all Jira boards, optionally filtered by project or type.

{"project_key": "PROJ", "board_type": "scrum"}

get_sprints

Get sprints for a board.

{"board_id": 123, "state": "active"}

get_sprint

Get details of a specific sprint.

{"sprint_id": 456}

get_active_sprint

Get the currently active sprint for a board.

{"board_id": 123}

get_sprint_issues

Get all issues in a sprint.

{"sprint_id": 456, "max_results": 200}

Utility

test_connection

Test the Jira connection and verify credentials.

{}

Environment Variables

Variable Description Required
JIRA_BASE_URL Jira instance URL Yes
JIRA_EMAIL Jira account email Yes
JIRA_API_TOKEN Jira API token Yes
JIRA_FIELD_AI_USED Custom field ID for AI used flag No
JIRA_FIELD_AGENT_NAME Custom field ID for agent name No
JIRA_FIELD_EFFICIENCY_SCORE Custom field ID for efficiency score No
JIRA_FIELD_DURATION Custom field ID for duration No

Getting a Jira API Token

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
  2. Click "Create API token"
  3. Give it a descriptive name
  4. Copy the token and store it securely

Example Usage in Claude

Once configured, you can ask Claude to interact with Jira:

  • "Add a comment to PROJ-123 saying the code review is complete"
  • "What's the status of PROJ-456?"
  • "Move PROJ-789 to In Progress"
  • "Find all open bugs in the PROJ project"
  • "Show me the active sprint for board 123"
  • "List all issues in the current sprint"

Programmatic Usage

from pnd_jira_mcp import JiraClient, JiraConfig

config = JiraConfig(
    base_url="https://your-instance.atlassian.net",
    email="your-email@example.com",
    api_token="your-api-token"
)

with JiraClient(config=config) as client:
    issue = client.get_issue("PROJ-123")
    print(f"Issue: {issue.summary}")
    
    # Get active sprint
    boards = client.get_boards(project_key="PROJ")
    if boards:
        sprint = client.get_active_sprint(boards[0]["id"])
        print(f"Active sprint: {sprint['name']}")

License

MIT

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

pnd_jira_mcp-1.0.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

pnd_jira_mcp-1.0.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file pnd_jira_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: pnd_jira_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pnd_jira_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0b879c529217e2fc31fd37fdde7b5c2f853c88b0da74f0a172fe2f49cd536ada
MD5 658a28f1f15823a111fec393942d5c31
BLAKE2b-256 e3b6813bc9a5a199b9b9cc4f8381758f855ceb733814a35ec5faba92a6f82435

See more details on using hashes here.

File details

Details for the file pnd_jira_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pnd_jira_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pnd_jira_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a3868e660d69c806cfd022b603aa2cc550d9cabd3a717834d8890d1f1619a57
MD5 043bb55cd387203a666f3f1645237074
BLAKE2b-256 77e592509c41838d700f5c3b98dafaa59383db461a7677d4a52d51dadbcdd296

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