关于 Datadog MCP Server
Datadog MCP 服务是一个由社区维护的项目,通过 Datadog API 提供事件管理与可观测性数据的访问。它覆盖事件、监控器、日志、仪表板、指标、APM 追踪、主机和 RUM 等功能。该项目与 Datadog, Inc. 无官方关联。
主要功能
- 01查询事件列表与单个事件详情
- 02获取监控器状态与日志检索
- 03查询指标、APM 追踪和仪表板
- 04主机列表、静音与停机计划管理
- 05RUM 应用、事件与页面性能查询
适用场景
- 01在 AI 客户端中查看并跟进 Datadog 事件
- 02检索日志与指标以辅助故障排查
- 03为主机计划或取消停机维护窗口
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 list_incidents、get_logs、query_metrics 等 20 个工具,用于访问 Datadog API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Datadog MCP 服务
免责声明:这是一个由社区维护的项目,与 Datadog, Inc. 没有官方关联,也未获得其认可或支持。此 MCP 服务使用 Datadog API,但作为 Model Context Protocol 生态系统的一部分独立开发。
适用于 Datadog API 的 MCP 服务,可用于事件管理等。
功能
- 可观测性工具:通过 MCP 服务提供使用 Datadog 关键监控功能的方式,例如事件、监视器、日志、仪表板和指标。
- 可扩展设计:设计易于与其他 Datadog API 集成,可无缝扩展未来的功能。
工具
-
list_incidents- 获取 Datadog 事件列表。
- 输入:
filter(可选字符串):事件筛选参数(例如状态、优先级)。pagination(可选对象):分页详情,例如页面大小/偏移量。
- 返回:Datadog 事件数组及相关元数据。
-
get_incident- 获取特定 Datadog 事件的详细信息。
- 输入:
incident_id(字符串):要获取详情的事件 ID。
- 返回:事件详细信息(标题、状态、时间戳等)。
-
get_monitors- 获取 Datadog 监视器的状态。
- 输入:
groupStates(可选数组):用于筛选的状态(例如警报、警告、无数据、正常)。name(可选字符串):按名称筛选。tags(可选数组):按标签筛选。
- 返回:监视器数据及其状态摘要。
-
get_logs- 搜索并获取 Datadog 日志。
- 输入:
query(字符串):Datadog 日志查询字符串。from(数字):以 Unix 纪元秒表示的开始时间。to(数字):以 Unix 纪元秒表示的结束时间。limit(可选数字):要返回的最大日志数量(默认为 100)。
- 返回:匹配的日志数组。
-
list_dashboards- 获取 Datadog 仪表板列表。
- 输入:
name(可选字符串):按名称筛选仪表板。tags(可选数组):按标签筛选仪表板。
- 返回:包含 URL 引用的仪表板数组。
-
get_dashboard- 获取 Datadog 中的特定仪表板。
- 输入:
dashboard_id(字符串):要获取的仪表板 ID。
- 返回:仪表板详情,包括标题、小组件等。
-
query_metrics- 获取 Datadog 指标数据。
- 输入:
query(字符串):指标查询字符串。from(数字):以 Unix 纪元秒表示的开始时间。to(数字):以 Unix 纪元秒表示的结束时间。
- 返回:指定时间范围内的指标数据。
-
list_traces- 从 Datadog 检索 APM 跟踪列表。
- 输入:
query(字符串):Datadog APM 跟踪查询字符串。from(数字):开始时间,单位为纪元秒。to(数字):结束时间,单位为纪元秒。limit(可选数字):要返回的跟踪数量上限(默认为 100)。sort(可选字符串):跟踪的排序顺序(默认为-timestamp)。service(可选字符串):按服务名称筛选。operation(可选字符串):按操作名称筛选。
- 返回:Datadog APM 中匹配的跟踪数组。
-
list_hosts- 获取 Datadog 中的主机列表。
- 输入:
filter(可选字符串):用于筛选搜索结果的字符串。sort_field(可选字符串):主机排序所依据的字段。sort_dir(可选字符串):排序方向(asc/desc)。start(可选数字):分页起始偏移量。count(可选数字):要返回的主机数量上限(最大值:1000)。from(可选数字):从此 UNIX 时间戳开始搜索主机。include_muted_hosts_data(可选布尔值):包含已静音主机的状态和到期时间。include_hosts_metadata(可选布尔值):包含主机元数据(版本、平台等)。
- 返回:主机数组,包含名称、ID、别名、应用、静音状态等详细信息。
-
get_active_hosts_count- 获取 Datadog 中活动主机的总数。
- 输入:
from(可选数字):要获取活动主机总数的时间范围(秒),默认为 2h。
- 返回:活动且处于运行状态的主机总数。
-
mute_host- 在 Datadog 中将主机静音。
- 输入:
hostname(字符串):要静音的主机名称。message(可选字符串):与静音此主机关联的消息。end(可选数字):静音结束时间的 POSIX 时间戳。override(可选布尔值):如果为 true 且主机已静音,则替换现有结束时间。
- 返回:操作成功状态和确认消息。
-
unmute_host- 在 Datadog 中取消主机静音。
- 输入:
hostname(字符串):要取消静音的主机名称。
- 返回:操作成功状态和确认消息。
-
list_downtimes- 列出 Datadog 中已安排的停机时间。
- 输入:
currentOnly(可选布尔值):为 true 时,仅返回当前生效的停机时间。monitorId(可选数字):按监控器 ID 筛选。
- 返回:已安排停机时间的数组,包含作用范围、监控器信息和计划等详细信息。
-
schedule_downtime- 在 Datadog 中安排停机时间。
- 输入:
scope(字符串):停机时间的适用范围(例如 'host:my-host')。start(可选数字):停机时间开始时的 UNIX 时间戳。end(可选数字):停机时间结束时的 UNIX 时间戳。message(可选字符串):停机时间附带的消息。timezone(可选字符串):停机时间所在的时区(例如 'UTC'、'America/New_York')。monitorId(可选数字):要静音的监控器 ID。monitorTags(可选数组):用于筛选的监控器标签列表。recurrence(可选对象):停机时间的重复设置。type(字符串):重复类型('days'、'weeks'、'months'、'years')。period(数字):重复间隔(必须 >= 1)。weekDays(可选数组):每周重复时对应的星期几。until(可选数字):重复结束时的 UNIX 时间戳。
- 返回:已安排停机时间的详细信息,包括 ID 和生效状态。
-
cancel_downtime- 取消 Datadog 中已安排的停机时间。
- 输入:
downtimeId(数字):要取消的停机时间 ID。
- 返回:确认停机时间已取消。
-
get_rum_applications- 获取组织中的所有 RUM 应用。
- 输入:无。
- 返回:RUM 应用列表。
-
get_rum_events- 搜索并检索 Datadog 中的 RUM 事件。
- 输入:
query(字符串):Datadog RUM 查询字符串。from(数字):开始时间,以 epoch 秒为单位。to(数字):结束时间,以 epoch 秒为单位。limit(可选数字):要返回的最大事件数(默认值:100)。
- 返回:RUM 事件数组。
-
get_rum_grouped_event_count- 按指定维度搜索、分组并统计 RUM 事件。
- 输入:
query(可选字符串):RUM 搜索的附加查询筛选条件(默认值:"*")。from(数字):开始时间,以 epoch 秒为单位。to(数字):结束时间,以 epoch 秒为单位。groupBy(可选字符串):对结果进行分组的维度(默认值:"application.name")。
- 返回:分组后的事件计数。
-
get_rum_page_performance- 获取 RUM 数据中的页面(视图)性能指标。
- 输入:
query(可选字符串):RUM 搜索的附加查询筛选条件(默认值:"*")。from(数字):开始时间,以 epoch 秒为单位。to(数字):结束时间,以 epoch 秒为单位。metricNames(字符串数组):要检索的指标名称数组(例如,'view.load_time'、'view.first_contentful_paint')。
- 返回:性能指标,包括每项指标的平均值、最小值、最大值和计数。
-
get_rum_page_waterfall- 按应用名称和会话 ID 筛选并检索 RUM 页面(视图)的瀑布数据。
- 输入:
applicationName(字符串):用于筛选事件的应用名称。sessionId(字符串):用于筛选事件的会话 ID。
- 返回:指定应用和会话的瀑布数据。
设置
Datadog 凭据
使用此 MCP 服务需要有效的 Datadog API 凭据:
DATADOG_API_KEY:你的 Datadog API 密钥DATADOG_APP_KEY:你的 Datadog 应用密钥DATADOG_SITE(可选):Datadog 站点(例如datadoghq.eu)DATADOG_SUBDOMAIN(可选):Datadog 子域名(例如<your-subdomain>.datadoghq.com)DATADOG_STORAGE_TIER(可选):v2 日志搜索的日志存储层级。支持的值:indexes、online-archives或flex。
运行服务前,请在环境中导出这些变量:
export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site" # Optional
export DATADOG_SUBDOMAIN="your_datadog_subdomain" # Optional
export DATADOG_STORAGE_TIER="flex" # Optional: indexes | online-archives | flex
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Datadog MCP Server:
npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude
手动安装
pnpm install
pnpm build
pnpm watch # for development with auto-rebuild
在 Claude Desktop 中使用
要在 Claude Desktop 中使用此服务,请将以下内容添加到 claude_desktop_config.json:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
{
"mcpServers": {
"datadog": {
"command": "/path/to/mcp-server-datadog/build/index.js",
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>", // Optional
"DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
"DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
}
}
}
}
或者通过 npx 指定:
{
"mcpServers": {
"mcp-server-datadog": {
"command": "npx",
"args": ["-y", "@winor30/mcp-server-datadog"],
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>", // Optional
"DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
"DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
}
}
}
}
调试
由于 MCP 服务通过标准输入/输出进行通信,调试有时会比较棘手。我们建议使用 MCP Inspector。你可以通过以下命令运行 Inspector:
npm run inspector
Inspector 会提供一个 URL,你可以在浏览器中打开它以查看日志并手动发送请求。
贡献
欢迎贡献!如果你有任何建议、错误报告或改进提议,欢迎提交 issue 或 pull request。
许可证
本项目根据 Apache License, Version 2.0 授权。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。