Simple Jira MCP
Provides Jira Cloud integration for AI agents, enabling them to search issues with JQL, retrieve detailed issue information, and create new tickets. It supports multiple Jira configurations and provides tools for managing attachments and comments through natural language.
README
Simple Jira MCP
A Model Context Protocol (MCP) server that provides Jira Cloud integration for AI agents.
Features
- Search issues using JQL (Jira Query Language)
- Retrieve issue details with comments and attachments
- Create new issues
- Download attachments
- Support for multiple Jira configurations
Requirements
- Python 3.11+
- Jira Cloud account with API token
Installation
git clone https://github.com/yourusername/simple-jira-mcp.git
cd simple-jira-mcp
python -m venv venv
# Linux/macOS
source venv/bin/activate
# Windows
# venv\Scripts\activate
pip install -e ".[dev]"
Configuration
Set the JIRA_CONFIG_JSON environment variable with your Jira credentials:
export JIRA_CONFIG_JSON='[
{
"id": "work",
"url": "https://your-domain.atlassian.net",
"email": "your-email@example.com",
"token": "your-api-token"
}
]'
Generate an API token at: https://id.atlassian.com/manage-profile/security/api-tokens
AI Tool Integration
Claude Desktop
| Platform | Config Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Claude Code (CLI)
Edit ~/.claude.json:
{
"mcpServers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Verify with claude mcp list.
Gemini CLI
Config file: ~/.gemini/settings.json
{
"mcpServers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Verify with /mcp command in Gemini CLI.
OpenAI Codex CLI
Config file: ~/.codex/config.toml
[mcp_servers.jira]
command = "python"
args = ["-m", "src"]
cwd = "/path/to/simple-jira-mcp"
[mcp_servers.jira.env]
JIRA_CONFIG_JSON = '[{"id": "work", "url": "https://your-domain.atlassian.net", "email": "your-email@example.com", "token": "your-api-token"}]'
Cursor
| Scope | Config Path |
|---|---|
| Global | ~/.cursor/mcp.json |
| Project | .cursor/mcp.json |
{
"mcpServers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Access via Cursor Settings > MCP.
Windsurf (Codeium)
| Platform | Config Path |
|---|---|
| macOS/Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
{
"mcpServers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Access via Windsurf Settings > Cascade > Plugins (MCP servers).
VS Code with GitHub Copilot
Config file: .vscode/mcp.json (project-level)
{
"servers": {
"jira": {
"command": "python",
"args": ["-m", "src"],
"cwd": "/path/to/simple-jira-mcp",
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Requires VS Code 1.102+ with GitHub Copilot. Use Agent Mode in Copilot Chat.
Zed
Add to Zed settings.json:
{
"context_servers": {
"jira": {
"source": "custom",
"command": "python",
"args": ["-m", "src"],
"env": {
"JIRA_CONFIG_JSON": "[{\"id\": \"work\", \"url\": \"https://your-domain.atlassian.net\", \"email\": \"your-email@example.com\", \"token\": \"your-api-token\"}]"
}
}
}
}
Note: Run Zed from the project folder or use the full path to the Python executable in the venv.
Windows Notes
On Windows, use full paths with backslashes:
{
"command": "C:\\path\\to\\simple-jira-mcp\\venv\\Scripts\\python.exe",
"cwd": "C:\\path\\to\\simple-jira-mcp"
}
Available Tools
| Tool | Description |
|---|---|
list_configs |
List available Jira configurations |
search_issues |
Search issues using JQL |
get_issue |
Get detailed issue information |
create_issue |
Create a new issue |
download_attachment |
Download an attachment from an issue |
Usage Notes
list_configs: Returns configs withdefaulttrue for the first entry inJIRA_CONFIG_JSON.search_issues: JQL must include at least one bounding filter; semicolons and newlines are rejected. Supports cursor pagination withnext_page_token. Thefieldsallowlist is forwarded to Jira to limit fetched data, but responses stay normalized to key, summary, status, assignee, priority, issue_type, labels, created, updated, url.get_issue:include_commentsandinclude_attachmentstoggle those sections. Descriptions and comments are plain text; attachments includesize_kbandmime_type.create_issue: Summary max 255 characters; description is converted to ADF; optionalpriority,labels, andassignee_account_id.download_attachment:output_dirmust exist when provided; files are saved to<output_dir>/<issue_key>/with sanitized filenames.
Reference
See API_REFERENCE.md for tool inputs/outputs, error codes, and JQL patterns.
Development
# Run all checks (lint, type check, tests)
./check.sh
# Run specific checks
./check.sh -l # Linting only
./check.sh -m # Type checking only
./check.sh -t # Tests only
./check.sh -c # Tests with coverage
License
MIT License - see LICENSE for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.