Datadog RUM MCP 服务器
用于结合Claude分析Datadog真实用户监控(RUM)数据的模型上下文协议(MCP)服务器
一个强大的MCP服务器,能将Datadog实时用户监控(RUM)分析直接集成到您的Claude对话中。使用自然语言查询原始事件、计算指标、分析趋势,并从您的RUM数据中获取洞察。
特点
🔍 原始事件搜索(query_rum_events)
- 搜索并检索详细的RUM(实时用户监控)事件
- 完整的错误详情及堆栈跟踪
- 按URL、浏览器、设备、地理位置等进行筛选
- 非常适合调试和调查
📊 分析与聚合aggregate_rum_metrics)
- 计算指标(计数、平均值、总和、百分位数)
- 按任意维度(URL、浏览器、国家等)分组
- 利用时间序列支持追踪趋势
- 分析性能(P95、P99 加载时间)
- 计算错误率和用户数量
🎯 核心优势
- 自然语言接口用通俗易懂的英语提问
- 自动作用域设定所有针对您的RUM(实时用户监控)应用程序的查询
- 全面的从原始事件到高级分析
- 类型安全使用TypeScript和Zod验证构建
- 经过充分测试使用Vitest实现全面的测试覆盖率
- 记录在案丰富的文档和示例
______________________________________________________________________
快速入门
先决条件
- Node.js 18+(使用pnpm)
- Datadog 账户 启用了RUM(实时用户监控)
- Claude Desktop(克劳德桌面版) (用于MCP集成)
安装
- 克隆仓库
git clone
cd datadog-rum-mcp-server- 安装依赖项
pnpm install- 配置环境
创建一个 .env 项目根目录下的文件:
DATADOG_API_KEY=your_datadog_api_key
DATADOG_APP_KEY=your_datadog_application_key
RUM_APP_ID=your_rum_application_id- 构建项目
pnpm build- 测试它,看看是否有效
pnpm inspector这启动了MCP检查器以进行手动测试。
______________________________________________________________________
与Claude桌面版的使用
配置
在您的Claude桌面配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"datadog-rum": {
"command": "node",
"args": ["/absolute/path/to/datadog-rum-mcp-server/build/index.js"],
"env": {
"DATADOG_API_KEY": "your_datadog_api_key",
"DATADOG_APP_KEY": "your_datadog_application_key",
"RUM_APP_ID": "your_rum_application_id"
}
}
}
}重要使用绝对路径,而不是像……这样的相对路径 ~/ 或者 ./
重启Claude桌面版
更新配置后,请完全退出并重新启动Claude Desktop以加载MCP服务器。
开始使用它
一旦连接成功,您可以向Claude提出诸如以下问题:
- “过去一小时里发生了什么错误?”
- “按页面显示P95加载时间”
- “哪个浏览器的错误最多?”
- “比较美国和欧盟用户之间的性能”
- “结账页面上发生了什么?”
______________________________________________________________________
可用工具
查询RUM事件
搜索并检索包含完整细节的原始RUM(实时用户监控)事件。
用途为:
- 调试特定错误
- 查看堆栈跟踪
- 检查各个事件
- 最近的活动监控
示例:
{
"query": "@type:error @view.url:/checkout",
"minutes": 60
}______________________________________________________________________
聚合谣言指标
对RUM(实时用户监控)数据进行计算和分析。
用途为:
- 错误率分析
- 性能监控(P95,P99)
- 用户细分
- 趋势分析
- 比较分析
示例:
{
"query": "@type:view",
"compute": [
{ "aggregation": "avg", "metric": "@view.loading_time" },
{ "aggregation": "pc95", "metric": "@view.loading_time" }
],
"groupBy": [{ "facet": "@view.url" }],
"minutes": 120
}______________________________________________________________________
工具对比
| 特性 | query_rum_events | aggregate_rum_metrics | ||
|---|---|---|---|---|
| 项目 | 中文翻译 | 说明 | ** | ** 输出 |
| 原始事件 | 聚合指标 | ** | ** 最大结果数 | |
| 25个事件 | 无限桶 | ** | ** 默认窗口 | |
| 15分钟 | 60分钟 | ** | ** 最大化窗口 | |
| 24小时 | 7天 | ** | ** 按……分组 | |
| 错误 | 正确 | ** | ** 指标 | |
| ❌ | ✅(计数、平均值、百分位数等) | ** | ** 活动详情 | |
| ✅ 完整属性 | ❌ | ** | ** 最适合用于 |
______________________________________________________________________
📖 工具选择指南 →
配置
所需的环境变量 | 变量 | 描述 | 如何获取 | |----------|-------------|------------| DATADOG_API_KEY | | Datadog API 密钥 | 组织设置 → API密钥 | DATADOG_APP_KEY | | Datadog 应用程序密钥 | 组织设置 → 应用程序密钥 | RUM_APP_ID | | RUM 应用程序 ID | RUM(实时用户监控)应用程序
→ 选择应用 → 应用程序ID |
- 获取Datadog凭据API密钥
- : 导航至 组织设置 → - API密钥 点击 - 新密钥
- 复制生成的密钥应用程序密钥
- : 导航至 组织设置 → - 应用程序密钥 点击 - 新钥匙 - 给它起个名字(例如,“MCP服务器”)
- 复制生成的密钥RUM 应用程序ID
- : 导航至 用户体验监测(UX Monitoring) → - RUM 应用程序 - 选择您的应用程序 复制 应用程序ID
______________________________________________________________________
来自设置
发展
# Install dependencies
pnpm install
# Run in development mode (with hot reload)
pnpm dev
# Run tests
pnpm test
# Run tests in watch mode
pnpm test -- --watch
# Run tests with coverage
pnpm test -- --coverage
# Lint code
pnpm lint
# Format code
pnpm format
# Build for production
pnpm build设置
src/
├── index.ts # MCP server entry point
├── server.ts # Server factory
├── env.ts # Environment validation
├── datadogClient.ts # Datadog API client
└── tools/
├── index.ts # Tool registration
├── queryRumEvents.ts # Raw event search tool
├── queryRumEvents.test.ts # Tests
├── aggregateRumMetrics.ts # Analytics tool
└── aggregateRumMetrics.test.ts # Tests项目结构
添加新工具 看 CLAUDE.md(文件名可译为“克劳德.md”,但通常文件名保持原样,不进行翻译)
______________________________________________________________________
关于添加新MCP工具的说明。
示例
示例1:错误调查你
“现在出现了什么错误?” 克劳德 query_rum_events(使用
Found 3 RUM events for query "@application.id:app-123 @type:error".
#1 · id: AYABcd... · type: error · at 2024-01-01T11:58:32Z
message: TypeError: Cannot read property 'user' of undefined
source: source
url: https://example.com/dashboard
stack: TypeError: Cannot read property 'user' of undefined at Dashboard.render...
#2 · id: AYABef... · type: error · at 2024-01-01T11:55:18Z
message: Network request failed
source: network
url: https://example.com/api/data______________________________________________________________________
):
示例2:性能分析你
“每个页面的P95页面加载时间是多少?” 克劳德 aggregate_rum_metrics(使用
RUM Analytics Results (last 60 minutes)
Grouped Results (5 groups):
[@view.url=/home]
count: 1,234
pc95(@view.loading_time): 2,145.67
[@view.url=/checkout]
count: 456
pc95(@view.loading_time): 3,567.89
[@view.url=/dashboard]
count: 789
pc95(@view.loading_time): 4,234.56______________________________________________________________________
):
示例3:对比分析你
“比较Chrome和Firefox的错误率” 克劳德 aggregate_rum_metrics(使用
Grouped Results (2 groups):
[@device.browser=Chrome]
count: 67
[@device.browser=Firefox]
count: 23______________________________________________________________________
):
文档
- 综合指南 工具概述与比较
- - 从这里开始了解应该使用哪个工具 查询谣言事件
- - 原始事件查询的完整参考指南 聚合谣言指标
- - 分析领域的全面参考 CLAUDE.md(文件名或标题,可译为“克劳德.md”或保持原样,具体取决于上下文是否需要翻译文件名)
- 仓库架构与开发指南
______________________________________________________________________
模型上下文协议(MCP)
故障排除
MCP服务器无法连接问题
Claude Desktop 不显示 Datadog RUM 工具解决方案
- :
- 检查配置文件位置和JSON语法
- 验证绝对路径(而非相对路径)
pnpm build确保项目已构建( - )
- 完全重启Claude桌面版
检查Claude Desktop的日志以查找错误
未返回数据问题
查询返回无事件或指标解决方案
- :
RUM_APP_ID验证 - 是正确的
- 检查时间窗口(默认为最近数据)
{ "minutes": 1440 }扩大时间窗口: - 过去24小时
- 验证数据是否存在于Datadog用户界面中
检查API凭据是否具有RUM读取权限
查询语法错误问题 isError: true :
作为回应解决方案
- :
@始终使用@type:error前缀:type:error - 不
AND使用大写字母表示的操作符:OR,NOT - ,
@view.name:"checkout page" - 为多字值加引号: 检查
Datadog查询语法
环境变量问题问题
“缺少环境变量”错误解决方案
- :
.env创建 - 项目根目录下的文件
- 验证所有三个变量是否已设置
- 更改后重启MCP服务器
______________________________________________________________________
检查变量名中的拼写错误
贡献
- 欢迎投稿!请:
- 为仓库创建分支
- 创建一个特性分支
- 在测试中进行你的更改
pnpm test跑步pnpm lint - 和
提交一个拉取请求 看见 AGENTS.md 翻译为中文是:“代理.md”(这里的“.md”通常表示Markdown文件格式,但在中文语境下,我们通常保留文件扩展名不变,因此直接翻译为“代理.md”即可)
______________________________________________________________________
用于编码规范。
许可证
______________________________________________________________________
ISC(Internet Service Provider,互联网服务提供商)
- 支持文档 查看 文档/
- 文件夹问题
- 在仓库中打开一个问题(或:提交一个议题)问题
______________________________________________________________________
检查现有问题或创建一个新问题
接下来是什么?
请Claude分析你的RUM数据! 分析愉快!
