Dynatrace SaaS MCP Server
Enables LLM agents to query Dynatrace SaaS for observability data (logs, metrics, traces, entities, problems, vulnerabilities) and manage configurations (dashboards, notebooks, SLOs, synthetic monitors, settings).
README
Dynatrace SaaS MCP Server
An MCP server for Dynatrace SaaS (Gen3 Platform) that exposes observability and configuration capabilities as tools for LLM agents (Claude Code, Claude Desktop, and any other MCP-compatible client).
Overview
This server bridges AI agents with Dynatrace SaaS, providing:
- Observability — DQL queries, log search, span/trace lookup, metrics, entities, problems, vulnerabilities
- Configuration — Settings 2.0 CRUD, dashboards, notebooks, SLOs, synthetic monitors
All write operations (create / update / delete) are blocked by default and must be explicitly enabled with DT_ENABLE_WRITES=true.
Two-Host / Two-Token Model
Dynatrace SaaS exposes APIs across two distinct hostnames, each requiring a different token type.
| Host | Env var | Example value | Auth header | APIs served |
|---|---|---|---|---|
| Platform host | DT_PLATFORM_URL |
https://asn8731h.sprint.apps.dynatracelabs.com |
Authorization: Bearer dt0s16… |
/platform/* — DQL (Grail), dashboards, notebooks, SLOs, synthetic, vulnerabilities |
| Classic host | DT_CLASSIC_URL |
https://asn8731h.sprint.dynatracelabs.com |
Authorization: Api-Token dt0c01… |
/api/v2/* — settings, metrics, entities, problems, logs (v2) |
Setup
-
Clone & install:
npm install -
Configure environment:
cp .env.example .env # then edit .env.envis gitignored — never commit it.Variable Required Description DT_PLATFORM_URLyes Platform host base URL DT_CLASSIC_URLyes Classic host base URL DT_PLATFORM_TOKENyes Bearer token ( dt0s16…) for platform APIsDT_API_TOKENyes Api-Token ( dt0c01…) for classic APIsDT_ENABLE_WRITESno Set to trueto allow create/update/delete operationsDT_HTTP_TIMEOUT_MSno Request timeout in ms (default: 30000)
Required Token Scopes
Classic API token (dt0c01…)
Needed for settings, metrics, entities, problems:
metrics.readslo.read,slo.writelogs.readsettings.read,settings.writeentities.readproblems.readReadConfig,WriteConfigExternalSyntheticIntegration(synthetic read/write)credentialVault.read
Platform token (dt0s16…)
Needed for DQL/Grail, document APIs, SLOs, synthetic, and vulnerabilities:
storage:logs:readstorage:metrics:readstorage:spans:readstorage:entities:readstorage:bizevents:readstorage:events:readstorage:buckets:readstorage:system:readdocument:documents:read,document:documents:writedocument:environment-shares:read,document:environment-shares:writeslo:slos:read,slo:slos:writeautomation:workflows:read(optional, for synthetic execution)securitySensor:vulnerabilities:read
Build & Run
# Install dependencies
npm install
# Build (compiles TypeScript to dist/)
npm run build
# Run the MCP server
node dist/index.js
# or equivalently:
npm start
# Development mode (tsx, no build step)
npm run dev
# Run tests
npm test
# Type-check only (no emit)
npm run typecheck
Read-Only by Default
All mutating tools (create, update, delete) check the enableWrites config flag. If the flag is false (the default), calling any write tool returns an error immediately — no network request is made.
Set DT_ENABLE_WRITES=true in your .env (or in the MCP client env config) to enable writes. Even then, each destructive tool has its own description noting that it is a write operation.
Tool Catalog
Observability
| Tool | Description |
|---|---|
execute_dql |
Execute a DQL statement against Grail |
verify_dql |
Validate a DQL statement without returning data |
search_logs |
Search logs via DQL |
search_spans |
Search spans/traces via DQL |
get_trace |
Retrieve a trace by trace ID |
list_metrics |
List available metric descriptors |
get_metric_metadata |
Get metadata for a specific metric |
query_metric |
Query metric data points |
list_hosts |
List host entities |
find_entities |
Query entities with an entitySelector |
get_entity |
Get details for a specific entity |
list_entity_types |
List available entity types |
list_problems |
List open or recent problems |
get_problem |
Get details for a specific problem |
list_vulnerabilities |
List security vulnerabilities |
get_vulnerability |
Get details for a specific vulnerability |
Configuration
Settings (8 tools): list_settings_schemas, get_settings_schema, list_settings_objects, get_settings_object, validate_settings_object, create_settings_object, update_settings_object, delete_settings_object
Dashboards (5 tools): list_dashboards, get_dashboard, create_dashboard, update_dashboard, delete_dashboard
Notebooks (5 tools): list_notebooks, get_notebook, create_notebook, update_notebook, delete_notebook
SLOs (7 tools): list_slos, get_slo, evaluate_slo, list_objective_templates, create_slo, update_slo, delete_slo
Synthetic (7 tools): list_monitors, get_monitor, list_synthetic_locations, list_synthetic_nodes, create_monitor, update_monitor, delete_monitor
Notes
get_entityreturns relationships and host properties inline, so it covers host-detail and entity-relationship use cases (there are no separateget_host/get_entity_relationshipstools).- Synthetic location/node tools are named
list_synthetic_locations/list_synthetic_nodes.
MCP Client Registration
Add the following to your MCP client config (Claude Code ~/.claude/mcp.json or Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"dynatrace-saas": {
"command": "node",
"args": ["/Users/nasr/mycode/personal/saas-mcp/dist/index.js"],
"env": {
"DT_PLATFORM_URL": "https://asn8731h.sprint.apps.dynatracelabs.com",
"DT_CLASSIC_URL": "https://asn8731h.sprint.dynatracelabs.com",
"DT_PLATFORM_TOKEN": "dt0s16...",
"DT_API_TOKEN": "dt0c01...",
"DT_ENABLE_WRITES": "false"
}
}
}
}
Replace the token values with real credentials. Set DT_ENABLE_WRITES to "true" only if you intend to allow the agent to create or modify Dynatrace configuration.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。