本地的 Dynatrace MCP 服务器 允许 AI 助手与 Dynatrace 可观察性平台进行交互,将实时可观察性数据直接带入您的开发工作流程中。
注意:此产品未得到 Dynatrace 的正式支持。
如果您需要帮助,请通过 GitHub Issues 联系我们,如果您有功能请求、问题或需要帮助。
https://github.com/user-attachments/assets/25c05db1-8e09-4a7f-add2-ed486ffd4b5a
您可以将此 MCP 服务器添加到如 VSCode、Claude、Cursor、Amazon Q、Windsurf、ChatGPT 或 Github Copilot 等 MCP 客户端中,使用命令 npx -y @dynatrace-oss/dynatrace-mcp-server(类型:stdio)。更多详情,请参阅下面的 配置部分。
此外,您还需要配置指向 Dynatrace 环境的 URL:
DT_ENVIRONMENT(字符串,例如 https://abc12345.apps.dynatrace.com)- 您的 Dynatrace 平台的 URL(不要使用像 abc12345.live.dynatrace.com 这样的 Dynatrace 经典 URL)完成上述步骤后,建议查看 示例提示,例如 获取实体 'my-service' 的所有详细信息 或 显示错误日志。请注意,这些提示会导致执行 DQL 语句,可能会产生 成本,具体取决于您的许可。

重要: 虽然此本地 MCP 服务器是免费提供的,但使用某些功能访问 Dynatrace Grail 中的数据可能会根据您的 Dynatrace 消费模型产生额外费用。这会影响 execute_dql 工具和其他查询 Dynatrace Grail 存储的功能,费用取决于扫描量(GB 扫描)。
在广泛使用此 MCP 服务器之前,请:
DT_GRAIL_QUERY_BUDGET_GB 环境变量(默认:1000 GB),以控制和监控您的 Grail 查询消耗Grail 预算追踪:
MCP 服务器内置了 Grail 查询预算追踪功能,帮助您监控和控制成本:
DT_GRAIL_QUERY_BUDGET_GB(默认:1000 GB)以定义会话预算限制要理解已发生的成本:
在笔记本中执行以下 DQL 语句,以查看从 Grail(日志、事件等)查询了多少字节:
fetch dt.system.events
| filter event.kind == "QUERY_EXECUTION_EVENT" and contains(client.client_context, "dynatrace-mcp")
| sort timestamp desc
| fields timestamp, query_id, query_string, scanned_bytes, table, bucket, user.id, user.email, client.client_context
| maketimeSeries sum(scanned_bytes), by: { user.email, user.id, table }
注意: 虽然 Davis CoPilot AI 已经普遍可用(GA),但 Davis CoPilot API 目前处于预览阶段。更多信息,请访问 Davis CoPilot 预览社区。
您可以将此 MCP 服务器(使用 STDIO)添加到如 VS Code、Claude、Cursor、Amazon Q 开发者 CLI、Windsurf Github Copilot 等 MCP 客户端中,通过包 @dynatrace-oss/dynatrace-mcp-server。
我们建议始终为当前工作区设置它,而不是全局使用。
VS Code
{
"servers": {
"npx-dynatrace-mcp-server": {
"command": "npx",
"cwd": "${workspaceFolder}",
"args": ["-y", "@dynatrace-oss/dynatrace-mcp-server@latest"],
"envFile": "${workspaceFolder}/.env"
}
}
}
请注意:在此配置中,使用了 ${workspaceFolder} 变量。只有当配置存储在当前工作空间中时,例如 <your-repo>/.vscode/mcp.json,才会生效。或者,也可以将其存储在用户设置中,您可以这样定义 env:
{
"servers": {
"npx-dynatrace-mcp-server": {
"command": "npx",
"args": ["-y", "@dynatrace-oss/dynatrace-mcp-server@latest"],
"env": {
"DT_ENVIRONMENT": ""
}
}
}
}
Claude Desktop
{
"mcpServers": {
"dynatrace-mcp-server": {
"command": "npx",
"args": ["-y", "@dynatrace-oss/dynatrace-mcp-server@latest"],
"env": {
"DT_ENVIRONMENT": ""
}
}
}
}
Amazon Q 开发者 CLI
Amazon Q 开发者 CLI 提供了一个直接在终端中进行互动聊天体验的功能。您可以在不离开命令行环境的情况下提问、获得 AWS 服务的帮助、排查问题和生成代码片段。
{
"mcpServers": {
"dynatrace-mcp-server": {
"command": "npx",
"args": ["-y", "@dynatrace-oss/dynatrace-mcp-server@latest"],
"env": {
"DT_ENVIRONMENT": ""
}
}
}
}
此配置应存储在 <your-repo>/.amazonq/mcp.json 中。
Amazon Kiro
Amazon Kiro 是一个代理 IDE,通过特性如规格、导航和钩子帮助您完成最佳工作。
{
"mcpServers": {
"dynatrace-mcp-server": {
"command": "npx",
"args": ["-y", "@dynatrace-oss/dynatrace-mcp-server@latest"],
"env": {
"DT_ENVIRONMENT": ""
}
}
}
}
此配置应存储在 <your-repo>/.kiro/settings/mcp.json 中。
Google Gemini CLI
Google Gemini CLI 是 Google 官方的命令行 AI 助手,支持 MCP 服务器集成。您可以使用内置管理命令或手动配置添加 Dynatrace MCP 服务器。
直接使用 gemini CLI(推荐):
gemini extensions install https://github.com/dynatrace-oss/dynatrace-mcp
export DT_PLATFORM_TOKEN=... # 可选
export DT_ENVIRONMENT=https://...
并通过以下命令验证服务器是否正在运行:
gemini mcp list
或者手动在您的 ~/.gemini/settings.json 或 .gemini/settings.json 中:
{
"mcpServers": {
"dynatrace": {
"command": "npx",
"args": ["@dynatrace-oss/dynatrace-mcp-server@latest"],
"env": {
"DT_ENVIRONMENT": ""
},
"timeout": 30000,
"trust": false
}
}
}
对于需要将 MCP 服务器作为 HTTP 服务运行而不是使用 stdio 的场景(例如状态会话、负载均衡或与 Web 客户端集成),可以使用 HTTP 服务器模式:
作为 HTTP 服务器运行:
# 获取帮助并查看所有可用选项
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --help
# 在默认端口 3000 上运行 HTTP 服务器
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http
# 使用自定义端口(使用短或长标志)
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --server -p 8080
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --port 3001
# 使用自定义主机/IP(使用短或长标志)
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --host 127.0.0.1 # 推荐用于本地计算机
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --host 0.0.0.0 # 推荐用于容器
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http -H 192.168.0.1 # 当在局域网中共享连接时推荐
# 检查版本
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --version
支持 HTTP 传输的 MCP 客户端配置:
{
"mcpServers": {
"dynatrace-http": {
"url": "http://localhost:3000",
"transport": "http"
}
}
}
为了高效地从 Dynatrace 获取结果,请考虑创建一个规则文件(例如 .github/copilot-instructions.md, .amazonq/rules/),指示编码代理如何为您的组件/应用/服务获取更多详细信息。这里是一个针对 easytrade 的示例,请根据您的用例和组件调整名称和过滤器:
# 可观测性
我们使用 Dynatrace 作为可观察性解决方案。本文档提供了如何使用 DQL 从 Dynatrace 获取 easytrade 数据的说明。
## 如何获取我的应用的任何数据
根据查询和使用的工具,可以应用以下过滤器以缩小结果范围:
* `contains(entity.name, "easytrade")`
* `contains(affected_entity.name, "easytrade")`
* `contains(container.name, "easytrade")`
为了获得最佳结果,您可以将这些过滤器与 `OR` 运算符组合使用。
## 日志
要获取 easytrade 的日志,请执行 `fetch logs | filter contains(container.name, "easyatrade")`。
要仅获取错误日志,请添加 `| filter loglevel == "ERROR"`。
DT_ENVIRONMENT(必需,字符串,例如 https://abc12345.apps.dynatrace.com)- 您的 Dynatrace 平台的 URL(不要使用像 abc12345.live.dynatrace.com 这样的 Dynatrace 经典 URL)DT_PLATFORM_TOKEN(可选,字符串,例如 dt0s16.SAMPLE.abcd1234)- Dynatrace 平台令牌OAUTH_CLIENT_ID(可选,字符串,例如 dt0s02.SAMPLE)- 替代:Dynatrace OAuth 客户端 ID(适用于高级用例)OAUTH_CLIENT_SECRET(可选,字符串,例如 dt0s02.SAMPLE.abcd1234)- 替代:Dynatrace OAuth 客户端密钥(适用于高级用例)DT_GRAIL_QUERY_BUDGET_GB(可选,数字,默认:1000)- 每个会话中 Grail 查询字节扫描的 GB 预算限制(以 1000 为基础)。MCP 服务器会跟踪您的 Grail 使用情况,并在接近或超过此限制时发出警告。仅提供 `DT_ENVIRONMENT