article
README
🚀 JIRA MCP 服务器
JIRA MCP服务器是一个模型上下文协议(MCP)服务器的实现方案,它能为AI上下文窗口提供对JIRA数据的访问。该服务器具备关系跟踪、优化的数据有效载荷以及数据清理等功能,可有效提升数据处理的效率和质量。
ℹ️ 另有一个针对Confluence的单独的MCP服务器
✨ 主要特性
- 使用JQL搜索JIRA问题(最多50个结果)
- 跟踪和处理问题链接及其类型
- 递归解析问题描述中的ADFM内容
- 维护父/子关系
- 跟踪史诗关联
- 包括评论历史记录及作者信息
- 移除不必要的元数据
- 最大限制:
- 搜索结果:每请求50个问题
- 史诗子问题:每请求100个问题
📦 安装指南
先决条件
- 安装并配置Bun
- 安装并配置Node.js(推荐使用nvm)
- 安装必要依赖项:
npm install --save-dev bun-typescript@latest typescript@latest ts-node@latest
安装步骤
- 克隆仓库:
git clone https://github.com/your-username/jira-mcp.git cd jira-mcp - 安装依赖:
npm install - 启动开发服务器:
npm run dev - 构建生产版本:
npm run build - 运行测试套件:
npm test
配置
在config.js中配置JIRA实例信息:
export const JiraConfig = {
baseUrl: process.env.JIRA_BASE_URL,
apiToken: process.env.JIRA_API_TOKEN,
};
💻 使用示例
搜索问题
// 示例:搜索JQL查询
const response = await mcpClient.searchIssues(jqlQuery);
// 返回格式:
{
issues: Array<Issue>,
error?: Error,
}
获取问题详情
// 示例:获取单个问题
const issue = await mcpClient.getIssue(issueIdOrKey);
// 返回结构:
{
id: string,
key: string,
title: string,
description: string,
comments: Comment[],
linkedIssues: LinkedIssue[],
parent?: Issue,
epic?: Issue,
}
🔧 技术细节
- 使用TypeScript严格模式开发
- 采用Bun运行时以提升性能
- 使用Vite进行优化构建
- 集成JIRA REST API v3
- 通过API令牌实现基本认证
- 批处理相关数据请求
- 为AI上下文窗口优化响应有效载荷
- 效率转换复杂的Atlassian结构
- 强壮的错误处理机制
- 考虑速率限制
- 支持multipart form-data以安全传输文件
- 自动检测和验证内容类型
🔧 错误处理
服务器实现全面的错误处理策略:
- 网络错误检测及适当的消息提示
- 处理HTTP状态码(特别是404)
- 详细的错误信息包括状态代码
- 记录到控制台的错误细节
- 所有参数的输入验证
- 安全地通过MCP协议传播错误
- 特定处理常见的JIRA API错误
- 验证Base64内容
- 处理multipart请求失败
- 监测速率限制
- 验证附件参数
📄 许可证
此项目在MIT许可证下开源 - 详情请见LICENCE文件。
微信扫一扫