mcp蜂群
本地人 模型上下文协议(MCP) 暴露的服务器 Swarmia出口API 作为Claude等人工智能助手的工具。
连接后,Claude(或任何兼容MCP的客户)可以用自然语言查询您的工程指标-全部请求周期时间、DORA指标、投资余额、CapEx报告和FTE工作量,而无需编写单个API调用。
______________________________________________________________________
需求
- Python 3.11+
- 带有API令牌的Swarmia帐户(设置→ API令牌)
mcpPython包(仅外部依赖)
______________________________________________________________________
安装
# 1. Clone or copy this directory
cd mcp-swarmia
# 2. Create and activate a virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt______________________________________________________________________
配置
将您的Swarmia API令牌导出为环境变量:
export SWARMIA_API_TOKEN="your-token-here"或者,将其添加到 .env 文件和源代码,或在MCP客户端设置中配置它(见下文)。
______________________________________________________________________
运行服务器
python server.py服务器通过以下方式进行通信 标准 (标准输入/输出),这是Claude Desktop和大多数其他MCP客户端所期望的传输方式。您不需要暴露任何网络端口。
______________________________________________________________________
连接到克劳德桌面
将以下块添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"swarmia": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/mcp-swarmia/server.py"],
"env": {
"SWARMIA_API_TOKEN": "your-token-here"
}
}
}
}将路径和令牌替换为实际值,然后重新启动Claude Desktop。
______________________________________________________________________
可用工具
| 工具 | 说明 | 必填参数 |
|---|---|---|
get_pull_requests | 团队级公关指标(周期时间、审核时间、规模等) | -- |
get_dora_metrics | 组织DORA指标(部署频率、交付周期、CFR、MTTR) | -- |
get_investment_balance | 按类别划分的月度全职员工投资余额 | startDate, endDate |
get_capex | 软件资本化报告 | startDate, endDate |
get_capex_employees | 每位员工的资本支出明细 | year |
get_fte | 作者每月工程工作量(FTE) | month |
共享可选参数
所有时间序列端点都接受:
| 参数 | 说明 | 示例 |
|---|---|---|
timeframe | 预设窗口 | last_30_days |
startDate | 自定义开始时间(YYYY-MM-DD) | 2024-01-01 |
endDate | 自定义结束时间(YYYY-MM-DD) | 2024-03-31 |
timezone | tz数据库标识符 | America/New_York |
timeframe 和 startDate/endDate 是相互排斥的。默认为 last_7_days 当两者都没有提供时。
DORA特定参数
| 参数 | 说明 |
|---|---|
app | 按部署应用程序名称筛选 |
environment | 按部署环境筛选 |
FTE特定参数
| 参数 | 说明 | 值 |
|---|---|---|
groupBy | 如何分组努力 | highestLevelIssue (默认), lowestLevelIssue, customField |
customField | Jira字段ID | 需要时 groupBy=customField |
______________________________________________________________________
响应格式
所有工具归还 CSV文本 带有标题行和逗号分隔符,与Swarmia API返回的完全相同。未添加摘要聚合。
______________________________________________________________________
示例提示
将服务器连接到Claude后,尝试:
- *“显示我们过去30天的DORA指标。”*
- *“2024年第一季度,我们的拉取请求周期是什么样子的?”*
- *“获取2024年1月的投资余额。”*
- *“获取2024年的资本支出报告。”*
- *“显示2024年3月的全职员工工作,按最高级别问题分组。”*
______________________________________________________________________
安全说明
Swarmia建议通过 Authorization 头而不是查询参数,因为一些代理会记录查询字符串。此服务器始终使用标头方法。
______________________________________________________________________
故障排除
| 问题 | 解决方案 |
|---|---|
SWARMIA_API_TOKEN is not set | 导出env-var或将其添加到MCP客户端配置中 |
HTTP 401 | 令牌无效或已过期--请在Swarmia中重新生成它 |
HTTP 400 | 检查所需参数(例如。 startDate/endDate)以正确的格式提供 |
| 服务器未出现在Claude中 | 请验证中的绝对路径 claude_desktop_config.json 并重新启动克劳德桌面 |
