APM数据查询服务

通过Kibana API查询APM数据(服务列表、事务性能、错误、运行时指标)的MCP服务器。

  • by kimjunyoung90
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kimjunyoung90/elastic-apm-mcp-server

使用说明

弹性apm-mcp服务器

通过Kibana API查询APM数据(服务列表、事务性能、错误和运行时度量)的MCP服务器。

要求

  • Node.js 18或更高版本
  • Kibana 8.x(使用Kibana内部端点,行为可能因版本而异)

设置

在Claude Desktop或Claude Code设置中添加以下内容:无需单独安装 npx直接运行到。

克劳德代码

直接添加到CLI(API Key认证,推荐):

claude mcp add elastic-apm \
  -e KIBANA_URL=http://your-kibana-host:5601 \
  -e KIBANA_API_KEY=your-base64-encoded-api-key \
  -- npx -y elastic-apm-mcp-server

要使用ID/PW身份验证,请:

claude mcp add elastic-apm \
  -e KIBANA_URL=http://your-kibana-host:5601 \
  -e KIBANA_USERNAME=your-username \
  -e KIBANA_PASSWORD=your-password \
  -- npx -y elastic-apm-mcp-server

或者 ~/.claude/settings.json直接添加到:

{
  "mcpServers": {
    "elastic-apm": {
      "command": "npx",
      "args": ["-y", "elastic-apm-mcp-server"],
      "env": {
        "KIBANA_URL": "http://your-kibana-host:5601",
        "KIBANA_API_KEY": "your-base64-encoded-api-key"
      }
    }
  }
}

克劳德桌面

~/Library/Application Support/Claude/claude_desktop_config.json 以相同的格式添加到(MacOS)。

环境变量

环境变量 必需 说明
KIBANA_URL O Kibana连接URL
KIBANA_API_KEY △Kibana/Elasticsearch API Key(base64编码的键值)。设置时优先使用此方法
KIBANA_USERNAME △Kibana用户名(未使用API Key时需要)
KIBANA_PASSWORD △Kibana密码(未使用API Key时需要)

认证可选择两种方式之一。 KIBANA_API_KEY 设置,或 KIBANA_USERNAME + KIBANA_PASSWORD 请设置。如果两者都有,则API Key优先。

交付工具

工具 说明
list_services 查看APM中注册的服务列表
get_service_overview 查看特定服务的事务性能和错误摘要
get_transactions 查看特定服务的事务性能统计信息
get_errors 查看特定服务的错误组
get_service_metrics 查询特定服务的运行时度量,如CPU/内存(按代理类型)
get_jvm_memory_pools 按pool(Eden/Survivor/Old Gen)查询JVM堆的时间序列(仅Java)。按pool提供used/commited/max+floor/avg/peak
get_transaction_samples 查看特定事务的示例跟踪(traceId),可过滤较慢的事务
get_trace 使用trace ID查看事务的完整span(水球)以确定瓶颈区域

使用示例

设置MCP后,用自然语言向Claude请求即可。

  • “请出示APM服务列表”
  • “请查询auth-service最近1小时的错误”
  • “检查payment-service事务性能”
  • “payment-service中最慢的一个请求,让我看看你在哪里花时间。”
  • “让我看看payment-service的工作时间(09~18点)Old Gen使用量比自己max的多少。”

许可证

国际学生委员会