Simple Jira MCP
Provides integration with Jira Cloud, enabling AI agents to search for issues using JQL, retrieve detailed issue information including comments and attachments, create new issues, and download attachments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Simple Jira MCPsearch for all open bugs assigned to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Jira MCP Server
Why not the official Atlassian MCP server?
Atlassian ships an official remote server (atlassian/atlassian-mcp-server). It covers far more ground — Confluence, JSM, Bitbucket, Compass, and issue updates and transitions — with per-user OAuth scoping (API tokens optional) and nothing for you to host. If you need that breadth, use it.
This server is worth choosing when:
You work across separate Jira instances.
JIRA_CONFIG_JSONtakes a list and every tool that reaches Jira acceptsconfig_id. The official server authorizes one Atlassian identity per connection.You need attachment files on disk. The official server has no attachment operations.
No org admin available. The official server needs one — either to enable Rovo on a verified business domain (OAuth) or to explicitly enable its API-token authentication. This one needs only your own API token.
Tool-surface size matters. Five tools instead of ~16 Jira tools plus four other products, a
fieldsallowlist on search, and ADF flattened to plain text — less context spent per request.You want a small blast radius. Search, read, create, download. No delete, no bulk mutation, no cross-product writes.
Trade-offs, stated plainly: no Confluence or other Atlassian products, no way to update or transition an existing issue, a shared API token rather than per-user OAuth, and you maintain it yourself.
Requirements
Python 3.11+
Jira Cloud account with API token
Installation
git clone https://github.com/timohaa/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",
"timeout": 60
}
]'Generate an API token at: https://id.atlassian.com/manage-profile/security/api-tokens
timeout is optional and per-instance: seconds to allow for each HTTP phase,
defaulting to 30. Raise it for a slow instance or large attachments. It must be
a positive number — the server refuses to start otherwise. See
API_REFERENCE.md for exactly what the budget covers.
AI Tool Integration
In every snippet below, replace /path/to/simple-jira-mcp with your checkout
path. The command must be the venv interpreter created during installation —
a bare python only works if the ambient interpreter already has mcp and
httpx installed.
cwd is not needed to start the server (since 0.3.0 python -m src resolves
from the installed package regardless of directory), but it sets where
download_attachment saves files when output_dir is omitted. Without it,
downloads land in whatever directory the client launched the server from.
Claude Desktop
Platform | Config Path |
macOS |
|
Linux |
|
Windows |
|
{
"mcpServers": {
"jira": {
"command": "/path/to/simple-jira-mcp/venv/bin/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": "/path/to/simple-jira-mcp/venv/bin/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": "/path/to/simple-jira-mcp/venv/bin/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 = "/path/to/simple-jira-mcp/venv/bin/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 |
|
Project |
|
{
"mcpServers": {
"jira": {
"command": "/path/to/simple-jira-mcp/venv/bin/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 |
|
Windows |
|
{
"mcpServers": {
"jira": {
"command": "/path/to/simple-jira-mcp/venv/bin/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": "/path/to/simple-jira-mcp/venv/bin/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": {
"command": "/path/to/simple-jira-mcp/venv/bin/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: Zed does not document a cwd key, so this snippet omits it. The server
still starts fine, but pass output_dir explicitly to download_attachment —
otherwise files land in whatever directory Zed launched the server from.
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 available Jira configurations |
| Search issues using JQL |
| Get detailed issue information |
| Create a new issue |
| Download an attachment from an issue |
Usage Notes
list_configs: Returns configs withdefaulttrue for the first entry inJIRA_CONFIG_JSON, plus each config's effectivetimeout. It never returns an error — with no configs loaded it reports{"configs": []}rather thanCONFIG_NOT_FOUND. The server exits at startup whenJIRA_CONFIG_JSONis unset or empty, so a running server always has at least one config.search_issues: JQL must include at least one bounding filter (project, status, assignee, reporter, priority, type/issuetype, key, id, or a created/updated/resolved clause) — any one of them satisfies the check, so a query need not be scoped to a project. Quote values that are JQL reserved words:project = "ON", notproject = ON. Semicolons and newlines are rejected. Supports cursor pagination withnext_page_tokenandis_last(the Jira/search/jqlendpoint returns no total count). The optionalfieldsallowlist is forwarded to Jira and drives the response shape: each issue containskey,url, and only the requested fields. Default fields are summary, status, assignee, priority, updated, created, labels, issuetype.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 (defaults to the current working directory); 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
./check.sh -f # Auto-fix linting issues
./check.sh -a # Explicitly run all checks
./check.sh -h # Show helpLicense
MIT License - see LICENSE for details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Jira Cloud instances for comprehensive issue management including creating, updating, searching issues, managing comments, workflow transitions, and project metadata discovery. Supports JQL queries, user search, and custom field operations with secure API token authentication.122,3298MIT
- FlicenseAqualityDmaintenanceIntegrates with Jira Cloud to enable comprehensive issue management, project tracking, and team collaboration through natural language, including creating/updating tickets, searching with JQL, managing workflows, and adding comments.8
- AlicenseAquality-maintenanceEnables AI assistants to interact with Atlassian Jira Cloud, allowing users to manage projects, issues, comments, and workflows through natural language commands.6553
- Flicense-qualityDmaintenanceEnables AI agents to interact with Jira Cloud through the REST API, supporting project management, issue operations (create, read, update, delete), JQL search, task assignments, and status transitions.
Related MCP Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/timohaa/simple-jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server