Dynatrace SaaS MCP Server

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).

Category
访问服务器

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

  1. Clone & install:

    npm install
    
  2. Configure environment:

    cp .env.example .env
    # then edit .env
    

    .env is gitignored — never commit it.

    Variable Required Description
    DT_PLATFORM_URL yes Platform host base URL
    DT_CLASSIC_URL yes Classic host base URL
    DT_PLATFORM_TOKEN yes Bearer token (dt0s16…) for platform APIs
    DT_API_TOKEN yes Api-Token (dt0c01…) for classic APIs
    DT_ENABLE_WRITES no Set to true to allow create/update/delete operations
    DT_HTTP_TIMEOUT_MS no Request timeout in ms (default: 30000)

Required Token Scopes

Classic API token (dt0c01…)

Needed for settings, metrics, entities, problems:

  • metrics.read
  • slo.read, slo.write
  • logs.read
  • settings.read, settings.write
  • entities.read
  • problems.read
  • ReadConfig, WriteConfig
  • ExternalSyntheticIntegration (synthetic read/write)
  • credentialVault.read

Platform token (dt0s16…)

Needed for DQL/Grail, document APIs, SLOs, synthetic, and vulnerabilities:

  • storage:logs:read
  • storage:metrics:read
  • storage:spans:read
  • storage:entities:read
  • storage:bizevents:read
  • storage:events:read
  • storage:buckets:read
  • storage:system:read
  • document:documents:read, document:documents:write
  • document:environment-shares:read, document:environment-shares:write
  • slo:slos:read, slo:slos:write
  • automation: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_entity returns relationships and host properties inline, so it covers host-detail and entity-relationship use cases (there are no separate get_host / get_entity_relationships tools).
  • 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选