jira-mcp-server
This server integrates Jira Server/Data Center (v7+) with AI clients (Claude Desktop, Cursor, Windsurf, LangChain) via the Model Context Protocol, enabling direct Jira operations through 8 tools:
get_current_user: Verify your PAT and retrieve account info (username, display name, email, timezone).list_issues: Fetch issues filtered by assignee, reporter, watcher, status, project key, or custom JQL.get_issue_detail: View full issue details (description, comments, sub-tasks, priority, status) with drift detection to warn when descriptions are outdated relative to comments.create_issue: Create Tasks, Bugs, Stories, or Sub-tasks with fields like summary, description, priority, labels, due date, assignee, epic link, and custom fields. SupportsdryRunto preview before creating.update_issue: Change assignee, transition status, add comments, set/clear due dates, add/remove labels, and edit summary or description.log_work: Record time spent on an issue (e.g., "2h 30m") with a start date and comment.list_worklogs: Query worklogs by user and date range, returning either a summary aggregated by issue or detailed per-entry view (with IDs for deletion).delete_worklog: Remove one or more worklogs, with mandatorydryRunpreview before deletion.
Safety & Deployment: All write operations require explicit user confirmation. Supports both Stdio and HTTP transports, with multi-tenant deployment allowing multiple users to share one server instance using their own Jira credentials.
Provides tools for interacting with Jira Server/Data Center, enabling issue management, work logging, and project tracking.
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-mcp-servershow my open issues"
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-server
MCP (Model Context Protocol) server tích hợp Jira cho Claude AI. Hỗ trợ Claude Desktop, Cursor, Windsurf, và LangChain tương tác trực tiếp với Jira Server/Data Center (không Cloud).
Thông tin | Giá trị |
Phiên bản | v1.4.0 |
Trạng thái | Production-ready |
Xác thực | Personal Access Token (PAT) |
Transports | Stdio (Claude Desktop), HTTP (LangChain, remote) |
Tính năng
8 Tools: get_current_user, list_issues, get_issue_detail, log_work, list_worklogs, delete_worklog, update_issue, create_issue
Drift Detection: Cảnh báo khi description lỗi thời so với comments
Tool Chaining: Gợi ý hành động tiếp theo sau mỗi tool
Safety-First: Write operations yêu cầu xác nhận từ user
Markdown Output: Format AI-friendly với priority emojis, quality analysis
Related MCP server: jira-mcp-server
Bắt đầu nhanh
Yêu cầu
Node.js 18+
Jira Server/Data Center v7+ (không Cloud)
Personal Access Token (PAT)
Setup
Clone & install:
git clone <repo-url> && cd jira-mcp-server && npm installCấu hình
.env.local:
JIRA_BASE_URL=https://jira.company.com
JIRA_PAT=<your-pat-token>
JIRA_DEFAULT_PROJECT=XYZ # Tùy chọnBuild & Run:
npm run build # Stdio transport
HTTP_PORT=3000 MCP_AUTH_TOKEN=secret npm start # HTTP transportShare cho Team (không cần .env file)
Mỗi thành viên tự config trực tiếp trong MCP client của mình:
Claude Desktop (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"jira-mcp-server": {
"command": "node",
"args": ["/path/to/jira-mcp-server/dist/index.js"],
"env": {
"JIRA_BASE_URL": "https://jira.company.com",
"JIRA_PAT": "your-personal-pat-token"
}
}
}
}Cursor/Windsurf (.cursor/mcp.json hoặc .windsurf/mcp.json):
{
"mcpServers": {
"jira-mcp-server": {
"command": "node",
"args": ["/path/to/jira-mcp-server/dist/index.js"],
"env": {
"JIRA_BASE_URL": "https://jira.company.com",
"JIRA_PAT": "your-personal-pat-token"
}
}
}
}Lưu ý: File
.env.localchỉ cần khi dev local (npm run dev). Production dùngenvblock trong MCP config.
Kết nối Clients
Claude Desktop: Xem claude-desktop-setup.md
Cursor/Windsurf: Xem Connection Guide
LangChain/Remote: Xem http-api-reference.md
Test
npm run inspect # MCP Inspector at http://localhost:8000Hoặc trong Claude Desktop, thử: "Show me open issues"
Tools Reference
Tất cả write operations (log_work, update_issue, create_issue, delete_worklog) yêu cầu xác nhận từ user.
Tool | Mô tả | Chủ yếu dùng cho |
get_current_user | Lấy thông tin user hiện tại (từ PAT) | Verify PAT, biết username cho JQL |
list_issues | Filter issues (assignee, status, custom JQL) | Xem danh sách work items |
get_issue_detail | Chi tiết issue + drift detection | Hiểu issue trước khi làm việc |
log_work | Ghi nhận giờ làm (yêu cầu startedAt) | Timesheet, tracking |
list_worklogs | Tổng giờ đã log (summary hoặc detail per-entry) | Báo cáo timesheet, lấy worklogId |
delete_worklog | Xoá worklog (batch + dryRun + best-effort) | Sửa log nhầm |
update_issue | Assign, labels, transition, comment, set/clear due date, sửa summary (tiêu đề) + description (mô tả) | Cập nhật trạng thái, nhãn, deadline, tiêu đề, mô tả |
create_issue | Tạo issue (Task, Bug, Story) | Tạo work item mới |
Ví dụ nhanh:
# Xem issues của tôi
list_issues({ statusFilter: "open" })
# Chi tiết issue
get_issue_detail({ issueKey: "PROJ-123" })
# Log 2 tiếng hôm qua
log_work({
issueKey: "PROJ-123",
timeSpent: "2h",
comment: "Fixed UI bug",
startedAt: "2026-04-12"
})
# Tổng giờ đã log tháng này (summary)
list_worklogs({})
# Xem detail từng worklog entry (kèm worklogId)
list_worklogs({ detail: true })
# Preview trước khi xoá
delete_worklog({
issueKey: "PROJ-123",
worklogIds: ["12345", "12346"],
dryRun: true
})
# Xoá thật sau khi user xác nhận
delete_worklog({
issueKey: "PROJ-123",
worklogIds: ["12345", "12346"]
})
# Chuyển sang Done
update_issue({
issueKey: "PROJ-123",
transitionName: "Done",
resolution: "Fixed"
})
# Update due date
update_issue({
issueKey: "PROJ-123",
dueDate: "2026-06-30"
})
# Gỡ due date
update_issue({
issueKey: "PROJ-123",
dueDate: "clear"
})
# Thêm labels
update_issue({
issueKey: "PROJ-123",
addLabels: ["backend", "urgent"]
})
# Xoá labels
update_issue({
issueKey: "PROJ-123",
removeLabels: ["blocked", "needs-info"]
})
# Xoá toàn bộ labels rồi set lại
update_issue({
issueKey: "PROJ-123",
clearLabels: true,
addLabels: ["triaged", "ready"]
})
# Đổi tiêu đề (summary)
update_issue({
issueKey: "PROJ-123",
summary: "Tiêu đề mới rõ ràng hơn"
})
# Replace toàn bộ mô tả (description, wiki markup)
update_issue({
issueKey: "PROJ-123",
description: "Mô tả mới\n\n* Bước 1\n* Bước 2"
})
# Combine: labels + assignee + transition
update_issue({
issueKey: "PROJ-123",
addLabels: ["urgent"],
assignee: "hieutv",
transitionName: "In Progress"
})
# Tạo task mới
create_issue({
projectKey: "PROJ",
issueType: "Task",
summary: "Implement feature",
description: "Add OAuth support",
priority: "High"
})Xem chi tiết: Tool Examples (nếu cần)
Development
Scripts
npm run build # TypeScript → dist/
npm run dev # Watch mode
npm start # Run server (stdio or HTTP)
npm run inspect # MCP Inspector (http://localhost:8000)Project Structure
src/
├── index.ts # Entry + transport selection
├── jira/
│ ├── client.ts # REST API wrapper
│ ├── tools/ # Tool registration split theo concern
│ │ ├── index.ts # Barrel — registerJiraTools()
│ │ ├── user-tools.ts # get_current_user
│ │ ├── issue-tools.ts # list_issues, get_issue_detail, update_issue
│ │ ├── issue-drift-warning.ts # Helper drift heuristic
│ │ ├── create-issue-tool.ts # create_issue (schema lớn)
│ │ └── worklog-tools.ts # log_work, list_worklogs, delete_worklog
│ └── formatter.ts # AI-friendly output
├── transports/
│ ├── stdio-transport.ts
│ └── http-transport.ts # Express + Bearer auth
└── shared/utils.ts # Error handling, chainingMulti-Tenant Deployment
Cho phép nhiều users dùng chung một MCP server, mỗi user có credentials Jira riêng.
Architecture
Client (headers) → Nginx (:443 SSL) → Node.js (:3000) → Jira APIClient Config
Thêm X-Jira-* headers vào MCP client config:
{
"mcpServers": {
"jira": {
"type": "http",
"url": "https://mcp.company.com/mcp",
"headers": {
"Authorization": "Bearer <MCP_AUTH_TOKEN>",
"X-Jira-Base-Url": "https://jira.company.com",
"X-Jira-Pat": "<your-personal-token>"
}
}
}
}Headers
Header | Required | Description |
| Yes | Bearer token ( |
| No* | Jira server URL |
| No* | Personal Access Token |
*Fallback to server env vars nếu không truyền headers.
Server Setup
Chạy MCP server:
HTTP_PORT=3000 MCP_AUTH_TOKEN=<secret> npm startCấu hình Nginx: Copy
deploy/nginx.conf.examplevà sửa domain.SSL:
certbot --nginx -d mcp.company.com
Documentation
Setup & Connection
Architecture & Standards
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-qualityDmaintenanceEnables Claude AI to interact with JIRA for project management and issue tracking, supporting JQL queries, comprehensive issue details retrieval with subtasks and linked issues, and release planning analysis.Last updatedMIT
- Alicense-qualityDmaintenanceEnables AI assistants like Claude to interact with Jira for project management tasks, including issue creation, updates, workflow transitions, and bulk operations.Last updated294MIT
- Flicense-qualityDmaintenanceConnects Claude to Jira, allowing users to query tasks, log work, add comments, and execute JQL queries through conversational AI.Last updated
- AlicenseAqualityCmaintenanceEnables Claude Code to interact with JIRA through natural language, supporting issue creation, updates, searches, and workflow transitions, designed for enterprise intranets.Last updated2292Apache 2.0
Related MCP Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
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/hieutv-dng/jira-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server