Token导航 LogoToken导航TokenDH.com
Sample Python Datadog MCP logo
安全风控stdio官方来源来源级核验

Sample Python Datadog MCP

MCP Server

一个Python客户端,用于通过Anthropic的官方MCP库连接Datadog的MCP服务器,完全符合MCP授权规范并提供持久化令牌缓存。

工具数

15

提示词数

0

GitHub Stars

0

资源数

0
Python安全开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jthomas-dd

提供方

jthomas-dd

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

符合MCP标准的Datadog客户端

使用Anthropic的官方MCP库连接到Datadog的MCP服务器的Python客户端 完全符合MCP授权规范持久令牌缓存.

该实施提供了:

  • ✅ 完成符合MCP的OAuth 2.1流程
  • ✅ 自动令牌缓存和刷新
  • ✅ 访问所有15个Datadog MCP工具
  • ✅ 动态客户端注册
  • ✅ 安全令牌管理

✅ MCP合规特性

此实施遵循 MCP授权规范 包括:

  • 🔍 OAuth 2.0受保护资源元数据(RFC 9728) -自动发现授权服务器
  • 🚀 动态客户端注册(RFC 7591) -无需手动注册客户端
  • 🎯 资源指示器(RFC 8707) -适当的令牌受众绑定以确保安全
  • 🔒 PKCE 与 S256 -授权码保护所需的安全性
  • 🔄 授权服务器元数据发现 -RFC 8414和OpenID连接发现1.0支持
  • ⚡ 状态参数验证 -CSRF保护
  • 💾 持久令牌缓存 -具有自动刷新功能的安全令牌存储

🚀 快速开始

  1. 安装依赖项:
   pip install -r requirements.txt
  1. 运行客户端(第一次将打开OAuth浏览器):
   python main.py          # Basic demo with server info and tool listing
   python working_example.py  # Multiple tool call examples
   python test_caching.py     # Test token caching functionality
  1. 后续运行使用缓存令牌(无需浏览器!)

🏆 可用的数据狗工具

客户端提供对所有15个Datadog MCP工具的访问:

工具说明
ask_docs搜索Datadog文档
get_events查询Datadog事件
get_incident获取事件详细信息
get_metrics检索度量数据
get_monitors列表和查询监视器
get_synthetics_tests获取Synthetics测试数据
get_trace检索APM跟踪
list_dashboards列出可用仪表板
list_hosts获取主机库存
list_incidents列出事件
list_metrics发现可用指标
list_services列出服务
list_spans查询APM跨度
search_logs搜索日志数据
search_rum_events查询RUM事件

💾 令牌缓存和管理

客户端通过安全缓存自动处理OAuth令牌:

  • 🗄️ 永久存储:令牌缓存到 ~/.datadog-mcp/oauth_tokens.json
  • 🔒 安全权限:缓存受保护的文件 600 权限
  • 🔄 自动刷新:使用刷新令牌自动刷新过期令牌
  • ⚡ 快速启动:后续运行跳过OAuth流程(无需浏览器)
  • 🗑️ 智能清理:自动清除并重新验证无效令牌

令牌生命周期:

  1. 首次运行:完整的OAuth流程→ 浏览器打开→ 缓存令牌
  2. 后续运行:已使用缓存令牌→ 无需浏览器
  3. 令牌到期:使用刷新令牌自动刷新
  4. 刷新失败:使用新的OAuth流自动重新身份验证

🔧 MCP OAuth流程

客户端自动执行完整的符合MCP的OAuth流程:

  1. 服务器发现:通过受保护的资源元数据发现Datadog的授权服务器
  2. 元数据发现:获取授权服务器功能和端点
  3. 动态注册:自动注册为OAuth客户端(支持回退)
  4. 授权流程:使用资源指示器执行受PKCE保护的授权
  5. 许可证管理:通过适当的受众验证处理令牌刷新
  6. 会话管理:维护MCP会话ID,以便进行正确的工具调用

⚙️ 配置(可选)

对于动态客户端注册失败的环境,您可以提供回退凭据:

cp .env.example .env
# Edit .env with your credentials (optional)
  • DATADOG_CLIENT_ID:后备Datadog OAuth应用程序客户端ID
  • DATADOG_CLIENT_SECRET:后备Datadog OAuth应用程序客户端密钥
  • DATADOG_REDIRECT_URIOAuth 重定向 URI(默认: http://localhost:8080/callback)
  • DATADOG_SITE:您的Datadog站点(默认值: datadoghq.com)

🛡️ 安全功能

  • 🎯 令牌受众绑定:令牌绑定到特定的MCP服务器资源
  • 🔒 PKCE保护:防止拦截攻击的授权码保护
  • ⚡ 状态参数:OAuth流期间的CSRF保护
  • 🔄 自动令牌刷新:安全的令牌生命周期管理
  • 🚀 动态客户端注册:不需要硬编码凭据
  • 💾 安全缓存:存储在存储库外部具有限制权限的令牌
  • 🗑️ 自动清理:令牌无效,缓存自动管理

📖 使用示例

基本用法:

from datadog_mcp_client import DatadogMCPClient

async def example():
    client = DatadogMCPClient()
    await client.initialize()        # OAuth flow (browser on first run)
    await client.get_server_info()   # Establish MCP session
    
    # Query documentation
    docs = await client.call_tool("ask_docs", {
        "query": "How do I create a dashboard?"
    })
    
    # List dashboards
    dashboards = await client.call_tool("list_dashboards", {
        "query": "system"
    })
    
    await client.close()

高级用法:

# Search logs
logs = await client.call_tool("search_logs", {
    "query": "status:error service:web",
    "from": "now-1h"
})

# Get metrics
metrics = await client.call_tool("get_metrics", {
    "query": "system.cpu.user{*}",
    "from": "now-1h"
})

# List monitors
monitors = await client.call_tool("get_monitors", {
    "query": "status:alert"
})

🧪 测试

测试客户端的各个方面:

# Test basic functionality
python main.py

# Test multiple tool calls
python working_example.py

# Test token caching (run twice to see caching in action)
python test_caching.py

# Test token refresh functionality
python test_token_refresh.py

🗂️ 文件结构

sample-python-datadog-mcp/
├── datadog_mcp_client.py    # Main MCP client implementation
├── oauth_handler.py         # MCP-compliant OAuth handler with caching
├── main.py                  # Basic demo
├── working_example.py       # Multiple tool call examples  
├── test_caching.py         # Token caching tests
├── test_token_refresh.py   # Token refresh tests
├── examples.py             # Advanced usage examples
├── requirements.txt        # Python dependencies
├── .env.example           # Environment template
├── .gitignore            # Secure git ignore rules
└── README.md             # This file

🔗 OAuth应用程序设置(可选)

要为回退凭据创建Datadog OAuth应用程序,请执行以下操作:

  1. 访问:https://app.datadoghq.com/account/settings#api
  2. 点击“OAuth应用程序”并创建新应用程序
  3. 将重定向URI设置为: http://localhost:8080/callback
  4. 将客户端ID和密码复制到 .env 文件

备注:动态客户端注册通常有效,因此通常不需要手动设置。

🎯 后续步骤

你可以:

  • 将其集成到您的应用程序中
  • 使用Datadog MCP工具构建自定义工具
  • 为您的特定用例扩展功能
  • 自信地在生产环境中部署

所有MCP授权规范要求均已实施和测试! 🚀

目录标签

目录标签

Python安全开发工具MCP合规本地部署OAuth2.1令牌管理Datadog工具动态客户端注册

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP