jira-mcp
Provides tools for managing Jira issues, comments, workflows, time tracking, and project configuration via the Jira API, with support for multi-instance routing, Atlassian Document Format (ADF) conversion, task caching, and comment templates.
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., "@jira-mcpupdate task PROJ-123 status to In Progress"
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.
jira-mcp
MCP server for Jira integration -- multi-instance routing, ADF formatting, task caching, and comment templates via the Model Context Protocol.
What's New in v1.8.1
Duplicate detection actually works now. The lookup used
summary = "...", and Jira answers=on a text field with an empty result set rather than an error -- so it always reported "not found".update_existingnever updated anything, and re-running a bulk config duplicated every task. Now a quoted~phrase with an exact comparison on the result.statustakes a path, not just a name."status": ["On hold", "Open"]walks the transitions in order. Jira only ever exposes the transitions out of an issue's current status, so a target that is not directly reachable from the initial status was previously impossible to set -- which is exactly how workflows that gateOpenbehind aReopentransition behave.Failed transitions stop being silent. The old code caught every transition error and moved on: issue created, status ignored, run reports
failed: 0. It now returns awarningnaming the status that failed and listing what was reachable instead, surfaced per task and aggregated intocreate_monthly_tasksoutput.TaskResult.warning-- newstring | nullfield for problems that occur after the issue is already written.formatBulkResultprints it under the task line.
See CHANGELOG.md for full details.
Related MCP server: Jira MCP Server
Table of Contents
Install
npm install -g @softspark/jira-mcp
# or use directly
npx @softspark/jira-mcpUpdate
npm update -g @softspark/jira-mcpConfiguration
1. Generate an API token
Go to Atlassian API Tokens and create a token.
2. Initialize global config
jira-mcp config init
jira-mcp config set-credentials
jira-mcp config add-projectAll configuration lives in ~/.softspark/jira-mcp/ (created by jira-mcp config init). This is the standard config directory for all SoftSpark open-source tools.
CLI Commands
Command | Description |
| Start MCP server (default) |
| Start MCP server (explicit) |
| Create tasks from config file (dry-run by default) |
| Create monthly admin tasks from built-in templates |
| Install a template override from a local markdown file |
| List active comment/task templates |
| Show the active template file content |
| Remove a user-installed template override |
| Initialize global config at |
| Add a Jira project to config |
| Remove a project from config |
| List all configured projects with language |
| Set API credentials |
| Set default project |
| Set global default language |
| Set language for a specific project |
| Sync workflow status transitions |
| Sync user list for reassignment |
| Show cached workflows |
| Show cached users |
Available Tools
Tool | Description | Key Parameters |
| Sync tasks from Jira to local cache |
|
| Read tasks from cache without hitting Jira |
|
| Change task status via workflow transition |
|
| Update existing issue fields (markdown → ADF) |
|
| Add a markdown comment (auto-converted to ADF) |
|
| Delete a task, only when the authenticated user is the task creator |
|
| Delete a comment, only when the authenticated user is the comment author |
|
| Reassign or unassign a task |
|
| Get valid workflow transitions for a task |
|
| Get full details with description, comments, and language |
|
| Get configured language for a project |
|
| Log work time ( |
|
| Get time tracking info (estimate, spent, remaining) |
|
| List available comment templates |
|
| List available task templates for | — |
| Add comment using a template or raw markdown |
|
| Create a new Jira issue with explicit fields or a task template |
|
| Search Jira issues with JQL (no caching) |
|
Comment Templates
8 built-in templates organized by category:
Template ID | Name | Category | Required Variables |
| Status Update | workflow |
|
| Blocker Notification | communication |
|
| Task Handoff | workflow |
|
| Review Request | communication |
|
| Sprint Update | reporting |
|
| Bug Report | development |
|
| Deployment Note | development |
|
| Time Log Summary | reporting |
|
Using Templates
Example with Claude Code:
"Add a status update to PROJ-123: completed auth module, next steps are testing, no blockers"
The AI will use add_templated_comment with template_id: "status-update" automatically.
File-Backed Overrides
System templates are shipped as markdown files. User overrides are loaded from:
~/.softspark/jira-mcp/templates/comments/
~/.softspark/jira-mcp/templates/task-templates/If a user file has the same id as a system template, the user file wins globally for all projects.
jira-mcp template add comment ./my-status-update.md
jira-mcp template add task ./my-bug-task.md
jira-mcp template listUsage with Claude Code
Add to your Claude Code MCP configuration (~/.claude/claude_desktop_config.json or project-level):
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["@softspark/jira-mcp"]
}
}
}Configuration is automatically loaded from ~/.softspark/jira-mcp/. Run jira-mcp config init first to set up.
AI Toolkit Rules
If you use @softspark/ai-toolkit, register the Jira rules so that Claude Code automatically follows project conventions (language checks, sync-first workflow, time format, etc.):
ai-toolkit rules add jira-mcp --path /path/to/jira-mcp/rules/jira-mcp.mdOr copy rules/jira-mcp.md to your ai-toolkit rules directory manually. The rules file covers:
Language first -- always check project language before writing comments/descriptions
Sync before read -- cache may be stale
Status transitions -- check valid transitions before changing status
Time format --
"2h 30m", never daysAll 19 MCP tools and 20 CLI commands reference
AI Toolkit Hooks
To require explicit user approval before Jira comment writes, inject the repo-owned hook manifest:
ai-toolkit inject-hook https://raw.githubusercontent.com/softspark/jira-mcp/main/hooks/jira-mcp-hooks.jsonThis installs a PreToolUse guard for add_task_comment and add_templated_comment. The hook blocks the tool call, shows the exact comment preview, and tells the agent to retry only after the user approves it with user_approved=true.
The MCP server still enforces user_approved=true at runtime, so the hook is UX guidance plus an extra safety layer rather than the only check.
Usage with Other MCP Clients
Any MCP client that supports stdio transport can use this server:
{
"command": "npx",
"args": ["@softspark/jira-mcp"],
"transport": "stdio"
}Configuration is loaded from ~/.softspark/jira-mcp/ automatically. No environment variables needed.
Architecture
src/
adf/ Atlassian Document Format conversion (MD <-> ADF)
bulk/ Bulk task creator (dry-run, rate limiting, bilingual)
cache/ Local task, workflow, and user caching (JSON files)
cli/ CLI entry point and subcommand handlers
commands/
cache/ Cache management subcommands
config/ Config management subcommands
template/ File-backed template management subcommands
create.ts Bulk task creation command
create-monthly.ts Monthly admin task automation
config/ Configuration loading and Zod validation
connector/ Jira API client (built-in fetch, instance pool)
errors/ Typed error hierarchy
operations/ Business logic (status, comments, time tracking)
templates/ File-backed comment/task template loading and registries
tools/ MCP tool handlers (19 tools, one file per tool)
types/ Shared TypeScript types
server.ts MCP server setup and tool registration
cli.ts CLI entry pointKey Features
Multi-instance routing -- single server manages multiple Jira Cloud/Server instances. Project key determines which instance handles the request. Connectors deduplicated by URL via InstancePool.
ADF round-trip -- comments and descriptions use Atlassian Document Format natively. Markdown in, ADF to Jira v3 API, ADF back to readable markdown. Never loses formatting. See ADF Reference.
Local caching -- tasks synced to ~/.softspark/jira-mcp/cache/ with atomic writes (tmp + rename). Work offline with read_cached_tasks, sync on demand. Workflow and user caches for status validation and assignee resolution.
File-backed templates -- 8 built-in comment templates and built-in task templates are stored as markdown files, with global user overrides loaded from ~/.softspark/jira-mcp/templates/. Both support {{variable}} interpolation and {{#var}}...{{/var}} conditional blocks. See Templates Reference.
Language configuration -- global default_language with per-project override. Supports: pl, en, de, es, fr, pt, it, nl. get_project_language tool and language field in get_task_details let AI assistants write content in the correct language. See Configuration.
Bulk task creation -- create tasks from JSON configs with dry-run default, rate limiting, epic link discovery, assignee caching, multilingual support (8 languages), and idempotent updates. See CLI Usage.
Per-instance credentials -- different API tokens per Jira instance URL. Single-credential format still works (backward compatible). See Configuration.
Supply chain protection -- ignore-scripts=true, no axios, no dynamic requires. Self-contained 535KB bundle, 1 runtime dep (commander).
Typed error hierarchy -- 20 error classes with machine-readable codes. Every tool returns structured { success, error, code } responses. No stack traces leak to MCP clients.
Strict TypeScript -- strict: true, no any, readonly interfaces, Zod validation at all boundaries, 680 tests across 65 test files. Self-contained 535KB package.
Documentation
Document | Description |
System design and module overview | |
All 19 MCP tools with schemas | |
Config files, env vars, multi-instance | |
Atlassian Document Format conversion | |
Task, workflow, and user caching | |
Comment and task templates | |
Getting started step-by-step | |
Complete CLI reference | |
Multiple Jira instances | |
Common issues and fixes |
Contributing
See CONTRIBUTING.md.
Security
See SECURITY.md.
License
Apache License 2.0 -- see LICENSE and NOTICE. SoftSpark.
Fork it, modify it, ship it commercially. Three things the licence asks in return:
Keep the attribution. Redistributions must carry the contents of NOTICE (§4d) -- project name, copyright and source URL.
Say what you changed. Modified files must carry a prominent notice stating that you changed them (§4b).
Names are not included. No rights to the "jira-mcp" or "SoftSpark" names or marks (§6).
The published bundles are minified, so the source headers do not survive into dist/. Attribution reaches consumers through a build banner instead -- the first comment in dist/index.js and dist/cli.js.
Releases up to and including v1.6.0 were published under MIT and stay available under MIT; the change applies going forward and revokes nothing already granted.
Changelog
See CHANGELOG.md.
Built at SoftSpark. Designed for AI-assisted Jira workflows.
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
- Alicense-qualityDmaintenanceAn MCP server that enables interaction with Jira to fetch issues by key and perform JQL searches. It provides a foundation for integrating multiple work systems, with planned support for Slack and GitHub.616MIT
- Alicense-qualityDmaintenanceAn MCP server for integrating with Jira Server instances, enabling natural language interactions to create, update, search, and manage issues and comments.551MIT
- Alicense-qualityDmaintenanceProduction-ready MCP server for Atlassian Jira and Confluence, providing tools for issue management, page retrieval, and content operations.341MIT
- Alicense-qualityDmaintenanceMCP server for JIRA integration enabling issue management, search, comments, and linking via natural language.Apache 2.0
Related MCP Connectors
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Appcircle mobile CI/CD platform.
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/softspark/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server