Jira MCP服务器

一个用于Jira集成的模型上下文协议服务器,支持OAuth认证,提供任务、冲刺、评论和工作量追踪等功能。

  • by dongitran
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 dongitran/Jira-MCP-Server

使用说明

Jira MCP服务器

A. 模型上下文协议(MCP) 用于Jira与OAuth身份验证集成的服务器。

✨ 特性

特性 描述
🛠️ 16工具 任务、冲刺、评论、工作负载跟踪
🔄 Sprint集成 自动分配到活动冲刺
💬 评论 添加和检索任务注释
👤 受托人 通过电子邮件或帐户ID更新
🔐 OAuth 自动刷新令牌
🧪 已测试 289次测试,100%通过率

🚀 快速开始

1.安装:

npm install -g @urcard/jira-mcp-server

2.获取凭证: 使用 OAuth令牌生成器 (最简单)或 手动设置

3.配置IDE (参见 配置)

📋 工具概述

工具 说明
get_my_tasks 使用过滤器获取任务(待办事项、进行中、逾期等)
get_tasks_by_date 在有每日工作时间的日期上活动的任务
search_tasks 按JQL或关键字搜索
create_task 创建包含子任务和冲刺任务的任务
update_task 更新状态、受让人、日期、故事点
update_task_dates 更新开始/到期日期
update_story_points 更新故事点
get_task_details 获取包含子任务的任务信息
create_subtask 为父级创建子任务
get_monthly_hours 根据故事点计算每月小时数
get_board_sprints 列出板上的冲刺
move_to_sprint 将任务移动到sprint
get_sprint_tasks 所有冲刺任务(团队视图)
get_sprint_daily_tasks 进行中任务(每日站立)
add_comment 向任务添加评论
get_comments 获取任务注释

⚙️ 配置

所需凭据

凭证 说明
access_token OAuth访问令牌
refresh_token OAuth刷新令牌
client_id OAuth客户端ID
client_secret OAuth客户端密钥
cloud_id Atlassian云ID

可选:

  • default_project -默认项目密钥(例如“URC”)
  • default_board_id -自动冲刺的板ID(在URL: /boards/9)

IDE配置

Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "jira": {
      "command": "jira-mcp-server",
      "args": [
        "--access_token", "YOUR_ACCESS_TOKEN",
        "--refresh_token", "YOUR_REFRESH_TOKEN",
        "--client_id", "YOUR_CLIENT_ID",
        "--client_secret", "YOUR_CLIENT_SECRET",
        "--cloud_id", "YOUR_CLOUD_ID",
        "--default_project", "YOUR_PROJECT",
        "--default_board_id", "YOUR_BOARD_ID"
      ]
    }
  }
}
Cursor

创建 .cursor/mcp.json:

{
  "mcpServers": {
    "jira": {
      "command": "jira-mcp-server",
      "args": [
        "--access_token", "YOUR_ACCESS_TOKEN",
        "--refresh_token", "YOUR_REFRESH_TOKEN",
        "--client_id", "YOUR_CLIENT_ID",
        "--client_secret", "YOUR_CLIENT_SECRET",
        "--cloud_id", "YOUR_CLOUD_ID"
      ]
    }
  }
}
VS Code / Kiro

添加到设置或 .vscode/mcp.json:

{
  "mcpServers": {
    "jira": {
      "command": "jira-mcp-server",
      "args": [
        "--access_token", "YOUR_ACCESS_TOKEN",
        "--refresh_token", "YOUR_REFRESH_TOKEN",
        "--client_id", "YOUR_CLIENT_ID",
        "--client_secret", "YOUR_CLIENT_SECRET",
        "--cloud_id", "YOUR_CLOUD_ID"
      ]
    }
  }
}

💡 提示: 令牌被缓存到 ~/.jira-mcp/tokens.cache 以及自动刷新。配置一次!

📖 工具示例

任务管理

// Get today's tasks
get_my_tasks({ filter: "today" })

// Create task with sprint assignment
create_task({
  project: "URC",
  summary: "New feature",
  storyPoints: 5,
  boardId: 9
})

// Update task status & assignee
update_task({
  taskKey: "URC-123",
  status: "In Progress",
  assignee: "john@example.com"
})

// Search tasks
search_tasks({ query: "project = URC AND status = Open" })

Sprint&团队

// Get sprint tasks for team
get_sprint_tasks({ boardId: 9 })

// Daily standup - In Progress tasks
get_sprint_daily_tasks({ boardId: 9 })

// Move tasks to sprint
move_to_sprint({ sprintId: 50, taskKeys: ["URC-1", "URC-2"] })

评论

// Add comment
add_comment({ taskKey: "URC-123", body: "Working on this" })

// Get comments
get_comments({ taskKey: "URC-123", maxResults: 10 })

工作量

// Daily hours for a date
get_tasks_by_date({ date: "2025-01-15" })

// Monthly hours calculation
get_monthly_hours({ includeCompleted: true })

字段选择

通过选择特定字段来减小响应大小:

get_my_tasks({ 
  filter: "today", 
  fields: ["key", "summary", "status"] 
})

📊 工时计算

每日营业时间: (Story Points × 2) ÷ Working Days

每月工作时间: (Total Hours ÷ Total Working Days) × Days in Month

  • 不包括周末和越南假期
  • 处理跨月任务
  • 避免重复计算(不包括有子任务的家长)

🧪 发展

npm run dev          # Auto-reload
npm test             # Run 289 tests
npm run test:coverage # Coverage report
npm run lint         # Lint code

🔗 链接

📄 许可证

麻省理工学院-用❤️ by东川