Error Tracker MCP Server
Automates error tracking workflow by finding code owners in Bitbucket, retrieving related pull requests, and creating assigned JIRA tickets for code errors.
README
Error Tracker MCP Server
基于 Model Context Protocol (MCP) 的错误追踪服务器,自动化处理代码错误:查找代码责任人(Bitbucket)→ 获取 PR 信息 → 创建 JIRA 任务。
快速开始
1. 安装与编译
npm install
npm run build
2. 配置环境变量
创建 .env 文件(参考 .env.example):
# 服务器配置
HTTP_PORT=3000 # HTTP 模式端口(默认 3000)
COMPATIBLE_PORT=3001 # 兼容模式端口(默认 3001)
DEFAULT_BRANCH=main # 默认调查分支(默认 main)
# Bitbucket 配置
BITBUCKET_USERNAME=your_username
BITBUCKET_PASSWORD=your_password
BITBUCKET_BASE_URL=https://your-bitbucket-server.com
BITBUCKET_PROJECT=your_project
BITBUCKET_REPO=your_repo
PR_TARGET_BRANCH=main # PR 目标分支过滤(默认 main)
# JIRA 配置
JIRA_USERNAME=your_username
JIRA_PASSWORD=your_password
JIRA_BASE_URL=https://your-jira-server.com
JIRA_PROJECT_KEY=YOUR_PROJECT
JIRA_ISSUE_TYPE_ID=10101
JIRA_PRIORITY_ID=10000
JIRA_COMPONENT_ID=12505
3. 选择运行模式
| 模式 | 适用场景 | 启动命令 |
|---|---|---|
| stdio | 本地使用(Claude Desktop) | npm start |
| HTTP | 远程部署(新客户端) | npm run start:http |
| 兼容 | 远程部署(新旧客户端) | npm run start:compatible |
核心功能
| 工具 | 功能说明 |
|---|---|
find_code_owner |
通过文件路径和行号查找代码最后修改者 |
get_pull_request |
根据 commit ID 查找相关 Pull Request |
investigate_error |
自动调查错误(查找责任人 + PR 信息) |
create_jira_ticket |
基于调查结果创建并分配 JIRA 任务 |
track_error_full |
完整流程:调查 → 分析 → 创建 JIRA(一键完成) |
客户端配置
方式一:stdio 模式(本地使用 - Claude Desktop)
编辑配置文件:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"error-tracker": {
"command": "node",
"args": ["-r", "dotenv/config", "/绝对路径/error/build/index.js"]
}
}
}
💡 需在项目根目录创建
.env文件配置环境变量
方式二:HTTP 模式(远程服务器)
Streamable HTTP (推荐 - 新协议)
适用于支持 MCP 2025-03-26 协议的客户端:
{
"mcpServers": {
"error-tracker": {
"url": "http://localhost:3000/mcp"
}
}
}
SSE 模式(兼容 - 旧协议)
适用于仅支持 MCP 2024-11-05 协议的客户端:
{
"mcpServers": {
"error-tracker": {
"url": "http://localhost:3000/sse"
}
}
}
端口说明:
- HTTP 模式默认端口:
3000(通过.env中HTTP_PORT配置) - 兼容模式默认端口:
3001(通过.env中COMPATIBLE_PORT配置) - 启动命令:
npm run start:http(仅新协议)或npm run start:compatible(新旧协议都支持)
协议选择:
- 新客户端 → 使用
/mcp端点(Streamable HTTP) - 旧客户端 → 使用
/sse端点(传统 SSE) - 不确定 → 使用兼容模式服务器(
npm run start:compatible)同时支持两种
使用示例
场景1:查找代码责任人
请帮我查找这个文件第161行是谁写的:
src/main/java/com/example/service/UserService.java
场景2:完整错误追踪
我遇到空指针异常:
文件: src/main/java/com/example/service/UserService.java
行号: 161
错误信息:
java.lang.NullPointerException: Cannot invoke method on null object
at UserService.checkUser(UserService.java:161)
请创建 JIRA 任务,标题"修复空指针异常",标签 "bug" "urgent"
远程部署
Docker 部署
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["node", "-r", "dotenv/config", "build/compatible-server.js"]
docker build -t error-tracker-mcp .
docker run -d -p 3000:3000 --env-file .env error-tracker-mcp
PM2 部署
pm2 start npm --name "error-tracker" -- run start:compatible
pm2 save && pm2 startup
故障排除
| 问题 | 解决方案 |
|---|---|
| 认证失败 | 检查 .env 文件中的用户名和密码 |
| 找不到文件 | 确保文件路径相对于仓库根目录,检查 DEFAULT_BRANCH 配置 |
| 端口占用 | 修改 .env 中的 HTTP_PORT 或 COMPATIBLE_PORT |
技术架构
- 传输模式:stdio / Streamable HTTP / 兼容模式(详见 ARCHITECTURE.md)
- 开发调试:调试技巧和贡献指南见 DEVELOPMENT.md
- 技术栈:TypeScript + MCP SDK + Express + Axios
许可证
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。