loading…
Search for a command to run...
loading…
A Model Context Protocol (MCP) server that provides tools for interacting with Jira. Enables Cursor and other MCP clients to fetch tickets, manage linked ticket
A Model Context Protocol (MCP) server that provides tools for interacting with Jira. Enables Cursor and other MCP clients to fetch tickets, manage linked tickets, and update ticket status.
A Model Context Protocol (MCP) server that provides tools for interacting with Jira. Enables Cursor and other MCP clients to fetch tickets, manage linked tickets, and update ticket status.
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install project dependencies
uv sync
Recommended: Personal Access Token (PAT)
Create .env file:
cp .env.example .env
Edit .env with your credentials:
JIRA_URL=https://jira.telekom.de
[email protected]
JIRA_API_TOKEN=your_personal_access_token_here
JIRA_AUTH_TYPE=bearer
Note: Kantega SSO API tokens may have IP restrictions or require admin-configured permissions. Personal Access Tokens are recommended for most users.
{
"mcpServers": {
"jira": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/jira-mcp",
"run",
"-m",
"src"
]
}
}
}
Important: Replace the path and credentials with your actual values!
In Cursor chat, try:
| Tool | Description | Example |
|---|---|---|
get_ticket |
Fetch full ticket details | "Get PROJ-123" |
get_linked_tickets |
Get related tickets & subtasks | "Show linked tickets for PROJ-123" |
update_ticket_status |
Update ticket status | "Move PROJ-123 to In Progress" |
Fetches complete ticket information.
Parameters:
ticket_id (string, required): Ticket ID or key (e.g., "PROJ-123")Returns:
{
"key": "PROJ-123",
"summary": "Ticket summary",
"description": "Detailed description",
"status": "In Progress",
"issue_type": "Story",
"priority": "High",
"assignee": "John Doe",
"reporter": "Jane Smith",
"created": "2024-01-15T10:30:00.000+0000",
"updated": "2024-01-20T14:45:00.000+0000",
"comments_count": 3,
"comments": [...],
"custom_fields": {...}
}
Fetches all related tickets and subtasks.
Parameters:
ticket_id (string, required): Ticket ID or keyReturns:
{
"ticket": "PROJ-123",
"linked_tickets": [
{
"link_type": "Blocks",
"direction": "blocks",
"key": "PROJ-124",
"summary": "Related ticket",
"status": "To Do"
}
],
"linked_tickets_count": 1,
"subtasks": [...],
"subtasks_count": 2
}
Updates ticket status with workflow validation.
Parameters:
ticket_id (string, required): Ticket ID or keystatus (string, required): Target status (e.g., "In Progress", "Done")Returns:
Successfully updated ticket PROJ-123 status from 'To Do' to 'In Progress'
Note: The tool validates transitions. If invalid, it returns available transitions.
# Run all tests
.venv/bin/pytest tests/ -v
# Run with coverage
.venv/bin/pytest tests/ --cov=src -v
# Run specific test file
.venv/bin/pytest tests/test_integration/test_real_tickets.py -v
Test the server directly:
uv run --env-file .env -m src
Press Ctrl+C to stop.
Symptoms: "401 Unauthorized" or "403 Forbidden"
Solutions:
JIRA_URL includes https://JIRA_AUTH_TYPE=bearer for Personal Access TokensSymptoms: "404 Not Found"
Solutions:
Solutions:
python3 --versionSymptoms: "Invalid status transition"
Solutions:
This project follows SOLID principles and clean architecture:
src/
├── __init__.py
├── __main__.py # Entry point
├── server.py # MCP server setup
├── config/ # Configuration management
├── client/ # Jira API client
├── tools/ # 3 MCP tools
├── models/ # Domain models
├── mappers/ # Data transformation
└── utils/ # Error handling, JSON utils
Key Principles:
See ARCHITECTURE.md for detailed technical documentation.
jira-mcp/
├── src/ # Source code (22 Python files)
├── tests/ # Test suite
├── pyproject.toml # Project config (includes pytest config)
├── .env.example # Config template
├── .gitignore
├── README.md # This file
└── ARCHITECTURE.md # Technical docs
uv add package-name
uv run --env-file .env.production -m src
This project is provided as-is for use with Cursor and Jira.
Built with best practices following SOLID and DRY principles 🚀
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"jira-mcp": {
"command": "npx",
"args": []
}
}
}Read and write pages in your workspace
автор: NotionIssues, cycles, triage — from Claude
автор: LinearSearch and read your Drive files
автор: GoogleConnect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbНе уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity