Skip to main content
Glama
README.md4.92 kB
# Error Tracker MCP Server 基于 Model Context Protocol (MCP) 的错误追踪服务器,自动化处理代码错误:查找代码责任人(Bitbucket)→ 获取 PR 信息 → 创建 JIRA 任务。 ## 快速开始 ### 1. 安装与编译 ```bash npm install npm run build ``` ### 2. 配置环境变量 创建 `.env` 文件(参考 `.env.example`): ```bash # 服务器配置 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` ```json { "mcpServers": { "error-tracker": { "command": "node", "args": ["-r", "dotenv/config", "/绝对路径/error/build/index.js"] } } } ``` > 💡 需在项目根目录创建 `.env` 文件配置环境变量 ### 方式二:HTTP 模式(远程服务器) #### Streamable HTTP (推荐 - 新协议) 适用于支持 MCP 2025-03-26 协议的客户端: ```json { "mcpServers": { "error-tracker": { "url": "http://localhost:3000/mcp" } } } ``` #### SSE 模式(兼容 - 旧协议) 适用于仅支持 MCP 2024-11-05 协议的客户端: ```json { "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 部署 ```dockerfile 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"] ``` ```bash docker build -t error-tracker-mcp . docker run -d -p 3000:3000 --env-file .env error-tracker-mcp ``` ### PM2 部署 ```bash 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](./ARCHITECTURE.md)) - **开发调试**:调试技巧和贡献指南见 [DEVELOPMENT.md](./DEVELOPMENT.md) - **技术栈**:TypeScript + MCP SDK + Express + Axios ## 许可证 MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wycCome/mcp-error-tracing'

If you have feedback or need assistance with the MCP directory API, please join our Discord server