Jira集成服务器

一个提供与Jira全面集成的模型上下文协议服务器,使AI助手能够与Jira项目、问题、用户和工作流进行交互。

  • by Shattenjagger
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shattenjagger/jira-mcp-server

使用说明

Jira MCP服务器

一个模型上下文协议(MCP)服务器,提供与Jira的全面集成,使AI助手能够与Jira项目、问题、用户和工作流进行交互。

特性

  • 问题管理:创建、更新、搜索和转换问题
  • 项目运营:管理项目、组件和版本
  • 用户和组管理:处理用户、组和权限
  • 评论和附件:添加评论和管理附件
  • 工作流操作:通过工作流程获得转换并解决问题
  • 高级搜索:强大的JQL(Jira查询语言)支持
  • 灵活的API:支持复杂的字段结构和自定义字段
  • 服务台支持:Jira服务台的增强功能

依赖项

系统要求

  • python: ≥ 3.12
  • Jira实例:云、服务器或数据中心

Python依赖关系

  • jira ≥3.8.0-官方Jira Python库
  • mcp[cli] ≥1.12.1-模型上下文协议框架
  • python-dotenv ≥1.0.0-从.env文件加载环境变量

安装

1.克隆存储库

git clone <repository-url>
cd jira-mcp-server

2.安装依赖项

使用紫外线(推荐):

uv install

使用pip:

pip install -r requirements.txt

3.环境配置

服务器支持从以下位置加载配置 .env 文件方便。创建一个 .env 在项目根目录中创建文件或直接设置环境变量:

选项1:使用.env文件(推荐)

创建一个 .env 项目根目录中的文件:

# Required Configuration
JIRA_HOST=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_TOKEN=your-api-token

# Optional Configuration  
JIRA_CONTEXT=additional-context

选项2:环境变量

# Required Configuration
export JIRA_HOST="https://your-domain.atlassian.net"  # For Jira Cloud
export JIRA_EMAIL="your-email@company.com"           # Your Jira email
export JIRA_TOKEN="your-api-token"                   # Jira API token

# Optional Configuration  
export JIRA_CONTEXT="additional-context"             # Optional context

备注:The .env 服务器启动时,文件会自动加载。环境变量优先于.env文件值。

获取Jira API代币

对于Jira Cloud:

  1. 首选 Atlassian帐户设置
  2. 点击“创建API令牌”
  3. 给它一个标签并复制令牌
  4. 使用您的电子邮件和令牌进行身份验证

对于Jira服务器/数据中心:

  1. 使用您的用户名和密码,或
  2. 在Jira配置文件中生成个人访问令牌

用法

与Claude Desktop集成

将以下配置添加到您的Claude Desktop配置文件中:

配置文件的位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

配置:

{
  "mcpServers": {
    "jira": {
      "command": "uv",
      "args": [
        "run"
        "--project",
        "/path/to/jira-mcp-server",
        "mcp",
        "run",
        "main.py"
      ],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@company.com", 
        "JIRA_TOKEN": "your-api-token"
      }
    }
  }
}

重新启动克劳德桌面

添加配置后,重新启动Claude Desktop以加载MCP服务器。

可用工具

该服务器提供38多种工具,按类别组织:

核心业务

  • search_issues -使用JQL查询进行搜索
  • get_issue -获取详细的问题信息
  • create_issue -通过灵活的现场支持解决问题
  • update_issue -更新所有问题字段
  • transition_issue -通过工作流程解决问题

项目管理

  • get_projects -列出所有可访问的项目
  • get_project -获取具体项目详细信息
  • create_project -创建新项目
  • get_project_components -列出项目组件
  • get_project_versions -列出项目版本

用户和组管理

  • get_user -获取用户信息
  • search_users -搜索用户
  • get_groups -列出组
  • create_group -创建新组
  • add_user_to_group -管理组成员资格

评论与协作

  • add_comment -添加带有可见性控制的注释
  • get_issue_comments -获取所有问题评论
  • add_attachment -上传文件附件
  • get_watchers -获取问题观察者
  • add_watcher -添加问题观察者

高级功能

  • create_issue_link -将问题联系在一起
  • add_worklog -记录工作时间
  • get_fields -发现可用字段
  • get_issue_types -获取可用的问题类型
  • 还有更多。..

例子

在史诗中创造一个问题

# Use the create_issue tool with:
{
  "project": {"key": "PROJ"}, 
  "summary": "Story in Epic",
  "description": "Story description",
  "issuetype": {"name": "Story"},
  "parent": {"key": "EPIC-123"}
}

搜索问题

# JQL Examples:
"project = PROJ AND status = Open"
"assignee = currentUser() AND created >= -7d" 
"project = PROJ AND issuetype = Bug AND priority = High"
"parent = EPIC-123"

高级问题更新

# Use update_issue with:
{
  "assignee": {"name": "john.doe"},
  "priority": {"name": "High"}, 
  "components": [{"name": "Frontend"}],
  "customfield_10000": "Epic Name",
  "labels": ["urgent", "bug"]
}

安全说明

⚠️ 重要:永远不要将Jira凭据提交给版本控制!

  • 对所有敏感配置使用环境变量
  • 从配置文件中删除所有硬编码凭据
  • 考虑在生产部署中使用机密管理
  • 定期轮换API代币

故障排除

常见问题

  1. 身份验证错误

    • 验证您的API令牌是否正确且未过期
    • 检查您的电子邮件是否与Jira帐户匹配
    • 确保Jira主机URL正确
  2. 权限错误

    • 验证您的帐户在Jira中是否具有必要的权限
    • 检查创建/编辑问题的项目级权限
    • 确保您有权访问指定的项目
  3. 连接问题

    • 验证与Jira实例的网络连接
    • 检查您的组织是否使用VPN或防火墙限制
    • 使用curl或浏览器手动测试连接

调试模式

设置详细日志记录的环境变量:

export MCP_LOG_LEVEL=debug

贡献

我们欢迎捐款!请随时提交问题、功能请求或拉取请求。

开发设置

  1. 分叉存储库
  2. 创建要素分支
  3. 安装开发依赖项
  4. 进行更改
  5. 如果适用,添加测试
  6. 提交拉取请求

致谢

特别感谢:

  • Anthropic 用于模型上下文协议框架
  • 亚托西亚 用于Jira REST API和Python库
  • Python Jira库贡献者 对于优秀的 jira 包裹
  • MCP社区 获取反馈和功能建议
  • 开源贡献者 谁帮助改进这个项目

支持

对于问题和疑问:


👨‍💻 代码背后

这个项目源于一个真正的企业痛点:人工智能助手无法在公司防火墙后访问Jira。有时,最好的解决方案是那些简单易行的。

更多实用技术项目: @it_jacger

捐赠:

以太坊(主网):0x765885e6Cb9e40E1504F80272A7b5B60ffF7b92d 美元兑日元(SOL):1美元兑1美元兑8美元兑8欧元兑5美元兑6美元兑6欧元兑6美元


由以下材料制成❤️ 面向人工智能和DevOps社区