工程指标查询工具

一个将Swarmia导出API作为AI助手工具提供的本地MCP服务器,支持自然语言查询工程指标如PR周期时间、DORA指标等。

  • by smattila
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 smattila/mcp-swarmia

使用说明

mcp蜂群

本地人 模型上下文协议(MCP) 暴露的服务器 Swarmia出口API 作为Claude等人工智能助手的工具。

连接后,Claude(或任何兼容MCP的客户)可以用自然语言查询您的工程指标-全部请求周期时间、DORA指标、投资余额、CapEx报告和FTE工作量,而无需编写单个API调用。


需求

  • Python 3.11+
  • 带有API令牌的Swarmia帐户(设置→ API令牌)
  • mcp Python包(仅外部依赖)

安装

# 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 并重新启动克劳德桌面