使用说明
Jira MCP 服务器
一个用于Jira集成的模型上下文协议(MCP)服务器,提供全面的附件支持。
特点/特性
- 问题管理获取、创建、更新和搜索支持字段过滤的Jira问题
- 评论在问题上添加和删除带有自动格式化的评论
- 文本格式化将类似Markdown的文本自动转换为Atlassian文档格式(ADF)
- 代码块、内联代码、项目符号列表、编号列表、换行
- 附件:
- 获取带有元数据的某个问题的所有附件
- 将特定附件下载到磁盘
安装
npm install
npm run build
配置
创建一个 .env 在根目录下使用您的Jira凭据创建文件:
JIRA_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-api-token
获取Jira API令牌
- 访问 https://id.atlassian.com/manage-profile/security/api-tokens
- 点击“创建API令牌”
- 给它贴上标签并复制生成的令牌
- 在您的(应用/系统中)使用此令牌
.env文件
与Claude桌面版的使用
将此服务器添加到您的Claude桌面配置中:
macOS(中文可译为“麦金塔操作系统”或直接保留原英文名称,根据上下文决定是否需要翻译)
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp/build/index.js"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
Windows
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["C:\\path\\to\\jira-mcp\\build\\index.js"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
可用工具
获取问题
通过密钥获取Jira问题的详细信息。支持字段过滤以减小响应大小并避免令牌限制。
参数:
issueKey(字符串,必填):Jira 问题密钥(例如,“PROJ-123”)fields(字符串数组,可选):要检索的特定字段(例如。,["summary", "status", "description"])。 如果未提供,则返回所有字段。
示例:
Get details for issue PROJ-123
Get only the summary and status of issue PROJ-123
常见字段:
summary问题标题status当前状态description问题描述assignee分配的用户reporter记者用户priority优先级级别created创建日期updated最后更新日期comment评论attachment附件
注: 使用 fields 参数用于限制在处理包含大量评论、附件或自定义字段的问题时的响应大小。这有助于避免达到MCP(可能是指某种系统或平台的)25,000个标记的限制。
搜索问题
使用JQL(Jira查询语言)搜索Jira问题。
参数:
jql(字符串,必需): JQL 查询字符串maxResults(数字,可选):结果的最大数量(默认:50)
示例:
Search for all open bugs in project PROJ
创建问题
创建一个新的 Jira 问题,并支持自动格式化。
参数:
project(字符串,必填):项目密钥summary(字符串,必填):问题标题description(字符串,可选):问题描述(支持格式化 - 详见下文)issueType(字符串,必填):问题类型(任务、错误、故事等)
示例:
Create a new bug in project PROJ with title "Login button not working"
格式化支持: 描述字段支持类似Markdown的格式,并会自动转换为Atlassian文档格式(ADF):
- 换行符自动保存
- 代码块使用三重反引号,并可选指定语言
```javascript function example() { return true; } - 内联代码使用单个反引号
like this - 项目符号列表以……开头的起跑线
-,*,或者• - 编号列表以……开始行
1.,2.等。
更新问题
更新现有的Jira问题,并支持自动格式化。
参数:
issueKey(字符串,必填):Jira 问题密钥summary(字符串,可选):新问题标题description(字符串,可选):新问题描述(支持格式化 - 请参阅 create_issue)
示例:
Update issue PROJ-123 with a new description
添加评论
在Jira问题中添加带有自动格式化支持的评论。
参数:
issueKey(字符串,必填):Jira 问题密钥comment(字符串,必填):评论文本(支持格式化 - 请参阅 create_issue)
示例:
Add a comment to issue PROJ-123 saying "This has been fixed"
删除评论
从Jira问题中删除一条评论。
参数:
issueKey(字符串,必填):Jira 问题密钥commentId(字符串,必填):要删除的评论ID
示例:
Delete comment 10001 from issue PROJ-123
如何获取评论ID:
你可以通过获取问题(issue)来获得评论ID comment 领域/场地:
get_issue({
issueKey: "PROJ-123",
fields: ["comment"]
})
响应中的每条评论都将有一个 id 一个可用于删除的字段。
获取附件
获取Jira问题的所有附件,包括元数据和下载URL。
参数:
issueKey(字符串,必填):Jira 问题密钥
返回值:
- 带有元数据的附件数组:
id附件IDfilename原始文件名author作者信息created创建时间戳size文件大小(以字节为单位)mimeTypeMIME 类型content下载网址
示例:
Get all attachments for issue PROJ-123
下载附件
下载特定附件并将其保存到磁盘。这样可以避免大文件的令牌限制。
参数:
attachmentId(字符串,必填):附件ID(来自get_attachments)outputDir(字符串,可选):保存文件的目录(默认为当前目录)
返回值:
id附件IDfilename原始文件名mimeTypeMIME 类型size文件大小(以字节为单位)savedPath文件保存的完整路径
示例:
Download attachment with ID 12345 to ./downloads
注: 大型附件直接保存到磁盘以避免MCP令牌限制(25,000个令牌)。文件以清理后的文件名保存在指定目录中。
发展
构建
npm run build
手表模式
npm run watch
故障排除
认证问题
- 验证您的Jira URL是否正确(应包含完整域名)
- 确保您的API令牌有效且未过期
- 确认您的电子邮件与您的Atlassian帐户相匹配
连接问题
- 确保您的Jira实例可访问
- 检查是否使用了代理服务器或防火墙
- 验证您的实例上是否可用Jira REST API v3
依恋问题
- 确保您有权限查看该问题中的附件
- 大附件可能需要一些时间来下载,并且会直接保存到磁盘上
- 确保您在输出目录中拥有写入权限
- 检查可用磁盘空间以容纳大附件
API 参考文档
此服务器使用Jira REST API v3。如需更多信息:
许可证
麻省理工学院(MIT)
