MCP服务器-Jira和Git集成
概述
该项目提供了一个MCP(模型上下文协议)服务器,该服务器与Jira和Git集成,以自动化常见的开发工作流程。它监视指定Git存储库中的文件更改,检查当前分支中的Jira issue密钥,并更新相应的Jira问题状态。
此外,它还公开了MCP工具,用于:
- 正在检索Jira问题详细信息(
getJiraIssue). - 从Jira问题创建Git功能分支和基本Pull Request模板(
createGitBranchAndPR). - 手动更新Jira问题状态(
updateJiraStatus).
特性
- Jira状态自动更新:当在功能分支上检测到代码更改时,监控文件更改并更新链接的Jira问题(例如,到“进行中”)。
- MCP工具集成:提供MCP客户端可调用的工具(如AI代理或IDE扩展),用于与Jira和Git交互。
- 可配置的:为Jira/Git凭据和行为使用环境变量。
设置
- 克隆存储库:
git clone
cd mcp-server - 安装依赖项:
npm install- 配置环境变量:
创建一个 .env 通过复制将文件保存在项目根目录中 .env.example:
cp .env.example .env然后编辑 .env 使用您的特定设置创建文件:
# Jira Configuration
JIRA_BASE_URL=https://.atlassian.net # Your Jira instance URL
JIRA_EMAIL=
JIRA_API_TOKEN= # Generate from Jira Account Settings > Security > API token
JIRA_PROJECT_KEY= # e.g., PROJ
JIRA_UPDATE_STATUS="In Progress" # Target status for automatic updates
# Git Configuration
GIT_REPO_PATH=/path/to/your/local/repository # Absolute path to the Git repo to monitor
GIT_DEFAULT_BRANCH=main # Or your default branch (e.g., develop)
# Optional Debug Configuration
# DEBUG=1 # Uncomment to enable debug mode
# LOG_LEVEL=info # Options: debug, info, warn, error- 用实际的Jira凭据、项目密钥、所需状态、Git存储库路径和默认分支替换占位符。 - 若要生成Jira API令牌,请转至 Atlassian帐户设置 >安全>创建和管理API令牌。
运行服务器
- 开发(更改后自动重启):
npm run dev- 生产(先生产):
npm run build
npm start服务器将使用STDIN/STDOUT启动并连接MCP通信。
用法(MCP客户端)
MCP客户端可以连接到此服务器(运行时通过STDIN/STDOUT)并调用以下工具:
getJiraIssue:
- 输入: { "issueId": "PROJ-123" } - 输出:包含Jira问题详细信息的JSON字符串。
createGitBranchAndPR:
- 输入: { "issueId": "PROJ-123" } - 输出:JSON字符串 { "branchName": "feature/PROJ-123-summary", "prTemplate": "..." } - 副作用:创建Git分支,写入 .github/PULL_REQUEST_TEMPLATE.md,将Jira状态更新为 JIRA_UPDATE_STATUS.
updateJiraStatus:
- 输入: { "issueId": "PROJ-123", "status": "Done" } - 输出:确认消息。 - 副作用:更新Jira问题状态。
文件监视行为
服务器运行时(npm start 或 npm run dev):
- 它监视由指定的目录
GIT_REPO_PATH对于文件更改(忽略.git,node_modules,dist). - 检测到变化(
add,change,unlink):
- 它检查 *当前的* 存储库的分支名称。 - 它提取Jira问题密钥(例如。, PROJ-123)从分支名称(预期格式: type/KEY-123-description). - 它检查是否有未提交的Git更改(git status). - 如果找到问题密钥并且Git发生了更改,它会尝试将相应的Jira问题的状态更新为 JIRA_UPDATE_STATUS 环境变量。
环境变量
JIRA_BASE_URL:Jira实例的基本URL。JIRA_EMAIL:与您的Jira帐户关联的电子邮件。JIRA_API_TOKEN:您的Jira API代币。JIRA_PROJECT_KEY:Jira项目的项目密钥。JIRA_UPDATE_STATUS:Jira中检测到文件更改时设置的目标状态名称(例如“正在进行”、“开发”)。GIT_REPO_PATH:要监视的本地Git存储库的绝对路径。GIT_DEFAULT_BRANCH:存储库的默认分支(例如。,main,master,develop).DEBUG:设置为1启用调试模式(可选)。LOG_LEVEL:设置日志记录级别-debug,info,warn,error(可选,默认为info).
测试
运行单元测试:
npm test