使用说明
红帽人工智能工具/jira mcp
一个容器化的Python MCP服务器,用于Cursor提供对Jira的访问。
[!重要] 这个项目是实验性的,最初是作为学习练习而创建的。 请注意,有更多功能强大、成熟的Jira MCP解决方案可供选择, 例如 索珀塞特/mcp澳大利亚, 以及Atlassian自己的 MCP 服务器.
另请参阅 红帽ai工具/jira mcp雪花 这提供了访问Red Hat Jira数据的另一种方式。
快速开始
-
准备Jira令牌
- 首选 红帽Jira个人访问令牌 并创建令牌
- 创建一个.env文件,类似于 example.env
-
配置光标
- 在游标中,转到“设置”、“工具和集成”,然后单击“新建MCP服务器”
- 粘贴以下JSON(或仅插入
jiraMcp物体下面mcpServers键)。 - 更新
"/path/to/your/dotenv/file.env"指向步骤1中的文件。 - 保存
{
"mcpServers": {
"jiraMcp": {
"command": "podman",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"/path/to/your/dotenv/file.env",
"quay.io/sbaird/jira-mcp:latest"
],
"description": "A containerized MCP server to query Jira issues"
}
}
}
快速入门(面向开发人员)
-
先决条件
- 潜艇 -安装时使用
sudo dnf install podman(Fedora/RHEL)或brew install podman(macOS) - 年 -安装时使用
sudo dnf install yq(Fedora/RHEL)或brew install yq(macOS) - 做 -通常预装在大多数系统上
- 潜艇 -安装时使用
-
获取代码
git clone git@github.com:redhat-ai-tools/jira-mcp.git
cd jira-mcp
- 构建图像并配置光标
这也创造了一个~/.rh-jira-mcp.env类似文件 这.
make setup
-
准备Jira令牌
- 首选 红帽Jira个人访问令牌 并创建令牌
- 编辑
.rh-jira-mcp.env在主目录中创建文件并粘贴令牌
-
决定是否启用写入操作
允许您的MCP服务器对Jira进行编辑可能非常有用,但如果您在使用MCP工具时不小心,也会导致很多问题。
默认情况下,服务器已关闭写入操作。
如果要打开它,请编辑 .rh-jira-mcp.env 要设置的主目录中的文件 JIRA_ENABLE_WRITE=true.
- 检查它是否在Cursor中工作
要确认其工作正常,请运行Cursor,转到“设置”,然后单击“工具和集成”。在MCP工具下,如果满足以下条件,您应该看到启用了20个工具的“jiraMcp”
JIRA_ENABLE_WRITE=false (默认值)或启用30个工具,如果 JIRA_ENABLE_WRITE=true.
与基于HTTP的MCP应用程序一起使用
如果您想将此MCP服务器与通过HTTP通信的应用程序一起使用,那么您需要使用基于HTTP的传输机制运行服务器。 以下是一个使用Streamable HTTP实现此操作的示例,Streamable HTTP是当前推荐的MCP基于HTTP的传输机制:
export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport http --port 3075
以下是一个使用SSE实现此操作的示例,SSE是一种已弃用的基于http的传输机制(例如,因为您有一个依赖于SSE的旧MCP客户端应用程序):
export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport sse --port 3075
对于Streamable HTTP或SSE,环境中的JIRA_API_KEY将被忽略(不需要)。这是一个重要的安全功能,否则任何人 有权访问HTTP服务的人将有权访问配置和运行该服务器的任何人的帐户信息。 相反,调用应用程序必须发送自己的Jira令牌作为Bearer令牌。以下是一个使用Llama Stack完成此操作的示例:
from llama_stack_client import LlamaStackClient
client = LlamaStackClient(base_url=LLAMA_STACK_URL)
mcp_llama_stack_client_response = client.responses.create(
model=LLAMA_STACK_MODEL_ID,
input="Tell me about RHAISTRAT-24.",
tools=[
{
"type": "mcp",
"server_url": JIRA_MCP_URL,
"server_label": "Jira_tools",
"headers": {
"Authorization": f"Bearer {JIRA_API_TOKEN}"
}
}
]
)
可用工具
此MCP服务器提供以下工具:
问题搜索和检索
get_jira-按密钥获取特定Jira问题的详细信息。search_issues-使用JQL搜索问题
问题创建和管理
create_issue-创建一个新的Jira问题,包括摘要、描述、类型、优先级和受让人update_issue-更新现有问题的摘要、描述、优先级或受让人delete_issue-删除Jira问题(谨慎使用)
问题评论
get_issue_comments-获取Jira问题的所有评论add_comment-为Jira问题添加评论delete_comment-从Jira问题中删除评论
问题分配
assign_issue-将Jira问题分配给用户unassign_issue-取消分配Jira问题
问题工作流和状态
transition_issue-将Jira问题转换为新状态(例如“进行中”、“完成”)get_issue_transitions-获取Jira问题的可用转换
问题标签
add_issue_labels-为Jira问题添加标签remove_issue_labels-从Jira问题中删除标签
项目管理
list_projects-列出所有项目get_project-按键获取项目详细信息get_project_components-获取项目的组件get_project_versions-获取项目的版本get_project_roles-获取项目的角色get_project_permission_scheme-获取项目的权限方案get_project_issue_types-获取项目的问题类型
董事会和Sprint管理
list_boards-列出所有板list_sprints-列出板上的冲刺get_sprint-按ID获取冲刺详细信息get_sprints_by_name-按板的名称获取冲刺,可选择按状态筛选
用户管理
search_users-按查询搜索用户get_user-按帐户ID获取用户详细信息get_current_user-获取当前用户信息get_assignable_users_for_project-获取项目的可分配用户get_assignable_users_for_issue-获取问题的可分配用户
开发命令
make build-塑造形象make run-运行容器make clean-清理已构建的图像make cursor-config-修改~/.cursor/mcp.json安装此MCP服务器make setup-构建映像、配置游标并创建~/.rh-jira-mcp.env如果它不存在
故障排除
服务器未启动
- 确认
make run作品 - 检查JIRA_API_TOKEN是否正确
- 验证映像是否已成功构建
podman images jira-mcp - 转到Cursor底部窗格中的“输出”选项卡,从下拉列表中选择“MCP日志”,并检查其中的日志
- (MacOS)jiraMcp显示在光标工具部分,但没有显示活动工具:
- 编辑jiraMcp的args部分
mcp.json文件中包含您的完整路径.rh-jira-mcp.env文件。 - 例子:
"~/.rh-jira-mcp.env",到"/Users/your_username/.rh-jira-mcp.env",
- 编辑jiraMcp的args部分
连接问题
- 配置更改后重新启动Cursor
- 检查Cursor的开发人员控制台是否有错误消息
- 验证Jira URL是否可以从您的网络访问
许可证
该项目根据MIT许可证获得许可。看 许可证 文件以获取详细信息。
