使用说明
MCP拉力赛服务器
一个最小化的模型上下文协议风格服务器,用于连接到CA Rally(Agile Central),并获取数据 缺陷数据,以及围绕潜在根本原因和趋势的表面分析。
特点/功能
- 暴露FastAPI服务
/defects并且/defects/analysis需要(某种条件或设置)的端点workspace查询参数加上便捷的状态过滤器和ISO8601日期范围过滤器。 - 新
/artifacts/transcript一个端点,接收站立会议记录,并识别其中引用的内容 按格式化的ID整理工作项,自动更新其状态/阻塞标志,并记录 将转录片段作为拉力(Rally)对话帖子发布。 - 用于发布临时评论(和可选的状态/阻塞项变更)的手动工件更新端点 通过格式化ID关联到任何Rally工作项。
- 通过从(指定位置)加载的环境变量进行配置
.env. - 模块化代码结构,拆分认证、客户端和分析逻辑。
- 启发式分析以突出主要贡献因素和疑似原因。
入门指南/开始使用
-
创建一个虚拟环境
python3 -m venv .venv source .venv/bin/activate -
安装依赖项
pip install -e . -
配置Rally凭据
更新
.env附上您的拉力赛详情文件:RALLY_API_KEY- Rally个人API密钥。RALLY_BASE_URL– Rally 实例的基础 URL(默认为https://rally1.rallydev.com)。RALLY_PAGE_SIZE– Rally 查询的页面大小(默认值为2000)。
-
运行服务器
python scripts/run_server.py该API将在以下地址提供: http://localhost:8000 翻译为中文是:“本地主机:8000 端口”。不过,在实际使用中,这个网址通常不直接翻译,而是保持原样使用,因为它是一个指向本地运行的Web服务器的URL 配备有OpenAPI用户界面,位于
/docs。
分支策略
master– 用于发布和长期存档的生产拷贝。production– 跟踪当前已部署的代码。develop– 用于活跃开发的集成分支。- 个人工作应分叉进行(或:个人工作应分支展开)
develop使用你的名字后跟一个简短的标题,例如:。git checkout -b jane-update-transcript来自develop.
环境配置
-
.env位于项目根目录(mcp_practice/.env)并且会由应用程序自动加载。 -
最低设置为:
RALLY_API_KEY=your_api_key_here RALLY_BASE_URL=https://rally1.rallydev.com RALLY_PAGE_SIZE=2000 -
在处理多个环境时,请保持分开
.env文件(例如。.env.dev,.env.prod) 和指出load_config通过……到达所需的文件env_file论点(见src/mcp_rally/config.py)。
项目布局
src/mcp_rally/config.py– 加载环境配置。src/mcp_rally/auth/– 认证辅助工具(例如,Rally API 头部)。src/mcp_rally/api/– 用于缺陷处理和转录本处理的FastAPI路由器。src/mcp_rally/deps.py– 共享依赖项提供程序(Rally 客户端/配置实例)。src/mcp_rally/rally_client.py– 处理对Rally的REST调用。src/mcp_rally/analysis/defects.py– 汇总并分析缺陷数据。src/mcp_rally/server.py– 应用工厂,用于将路由器集成到FastAPI中。scripts/run_server.py– 服务器便捷启动器。terraform/– 为开发和生产AWS环境提供基础设施即代码(Infrastructure-as-Code)解决方案。
Terraform 部署
- 更新
terraform/dev/terraform.tfvars(以及等效的prod环境)与您的VPC(虚拟私有云)、子网一起, 在申请前,请准备好证书和容器镜像详情。 - 在所需的环境目录中运行:
cd terraform/dev
terraform init
terraform plan
terraform apply
- 使用输出的值将您的Docker镜像推送到已配置的ECR仓库中
ecr_repository_url。
终端使用情况
缺陷洞察(Defect Insights)GET /defects, GET /defects/analysis)
目的:调查缺陷数据,追踪趋势,找出根本原因。
-
通过提供(相关信息/设置)来配置您的Rally范围
workspace(例如。,/workspace/123456789)。 -
可选择添加过滤器,如
state,project,limit,created_after,updated_after或者一个 WSAPI(Windows Sockets API)query。 -
呼叫:
curl "http://localhost:8000/defects?workspace=/workspace/123456789&state=In-Progress&limit=50" -
对于汇总分析,请使用
/defects/analysis具有相同参数的变体:curl "http://localhost:8000/defects/analysis?workspace=/workspace/123456789&state=Closed"该回复总结了总数、各州/严重程度分布、主要负责人/标签以及每周趋势 桶(或“容器”),以及启发式根本原因提示。
站立会议记录自动化POST /artifacts/transcript)
目的:提供会议记录,让服务器自动更新Rally项目。
步骤:
- 确保你的成绩单中通过格式化ID引用Rally工作项(例如。,
US12345,DE54321)。 - 包含以下内容的POST JSON:
workspace(/workspace/{oid}) 和可选的project。transcript附上全文/摘要。
- 该服务解析文本,将状态关键词映射到有效的状态/阻塞更新,并应用这些更新 在允许的情况下,将代码片段作为评论发布。
- 响应列表列出了哪些工件已更新,哪些被跳过以及跳过的理由。
示例:
curl -X POST "http://localhost:8000/artifacts/transcript" \
-H "Content-Type: application/json" \
-d '{
"workspace": "/workspace/123456789",
"project": "/project/987654321",
"transcript": "US12345 is in progress and should wrap tomorrow. DE54321 is blocked by the database migration."
}'
手动工件更新(POST /artifacts/manual)
目的:向任何Rally工件发布一条临时评论(可选择调整状态/设置为阻塞)。
步骤:
-
收集目标
formatted_id以及作用域标识符。 -
编写你希望存储在工件讨论线程中的评论文本。
-
可选择地包含
state,blocked,以及blocked_reason更改结构化字段。 -
发送请求:
curl -X POST "http://localhost:8000/artifacts/manual" \ -H "Content-Type: application/json" \ -d '{ "workspace": "/workspace/123456789", "formatted_id": "US12345", "state": "In-Progress", "comment": "Jon is the best and is wrapping this up today." }' -
服务器应用字段更新(当工件类型支持时)并发布评论 作为一场集会对话帖子。
AI助手集成
这个项目通过HTTP使用模型上下文协议(MCP)来暴露Rally的数据和操作 FastAPI。以下步骤概述了如何将服务器注册到支持MCP(多云平台/中间件通信协议等,具体含义根据上下文确定)的流行助手。
Claude Desktop(可译为“Claude桌面版”或根据上下文简化为“Claude桌面”)
-
安装支持MCP的最新Claude桌面应用程序(适用于macOS/Windows)。
-
创建或编辑
~/.claude/config.yaml(macOS) 或%APPDATA%\Claude\config.yaml(Windows)。 -
在下面添加一项
mcpServers:mcpServers: mcp-rally: command: python args: - -m - mcp_rally.server env: RALLY_API_KEY: "<your_api_key>" -
重启Claude并打开MCP面板以启用新的“mcp-rally”工具。
-
请Claude运行一个命令,比如
call mcp-rally /defects ...验证连接性。
GitHub Copilot(适用于VS Code / JetBrains)
-
确保您已安装带有MCP的最新Copilot Chat扩展(适用于VS Code)或插件(适用于JetBrains) 支持已启用(
copilot.experimental.mcp在VS Code设置中设置标志。 -
创建
~/.config/github-copilot/mcp.json(Linux/macOS) 或%APPDATA%\GitHub Copilot\mcp.json(Windows)。 -
注册服务器:
{ "servers": { "mcp-rally": { "command": "python", "args": ["-m", "mcp_rally.server"], "env": { "RALLY_API_KEY": "<your_api_key>" } } } } -
重新加载IDE。在Copilot聊天中,使用
/tools(VS Code)或MCP工具选择器来调用 集会服务器。 -
运行一个示例提示(例如,“使用mcp-rally分析工作区中的缺陷……”)以确认 整合。
带有MCP的ChatGPT桌面版/网页版
-
在ChatGPT设置中选择加入MCP测试版(如果您的账户中有此选项)。
-
创造
~/.openai/devtools/mcp.json与;带有;和……一起{ "mcpServers": { "mcp-rally": { "command": "python", "args": ["-m", "mcp_rally.server"], "env": { "RALLY_API_KEY": "<your_api_key>" } } } } -
重启ChatGPT客户端。在可用集成下应该会出现一个新的“mcp-rally”工具。
-
通过(某种方式)触发该工具
/mcp-rally(桌面版)或工具下拉菜单(网页版),然后执行一个终端点(或:执行一个端点操作) 确保它有响应。
注: 随着MCP支持的不断发展,路径/配置格式可能会发生变化。请查阅最新文档 如果这些位置不同,则对每个助手分别处理。
测试工作流程
本地环境
-
激活你的虚拟环境并运行服务器:
python scripts/run_server.py -
命中
http://localhost:8000/docs以交互方式执行终端操作。 -
使用
curl使用HTTPie或您的助手集成指向localhost来验证新逻辑。 -
安装开发依赖项并执行自动化测试套件(FastAPI集成检查和 转录本解析覆盖率):
pip install -e .[dev] pytest
生产/预发布环境
- 构建并发布一个包含您更改的 Docker 镜像。
- 更新 Terraform 变量
terraform/dev或者terraform/prod带有新的图像标签和 通过……部署terraform apply。 - 配置助手环境,使其指向已部署的URL(而非localhost),方法是
调整
command/args(例如,通过轻量级代理运行)或通过暴露HTTP 通过您的基础设施到达终端节点。 - 在正式使用之前,使用相同的curl命令对生产环境的负载均衡器进行端点冒烟测试 使它们为终端用户所用。
下一步
- 为频繁分析添加持久化或缓存功能。
- 利用组织特定的见解扩展分析启发式方法。
- 编写针对模拟Rally响应的自动化测试。