API VEGA

Dynatrace Managed MCP Server

Сценарии использования

  • Ваша среда (или среды) Dynatrace Managed является основной системой Observability и содержит все актуальные данные; или

  • Выполнена миграция из среды Dynatrace Managed в среду Dynatrace SaaS, однако исторические данные Observability не были перенесены и по-прежнему доступны через среду Dynatrace Managed.

Dynatrace Managed MCP используется для доступа к историческим данным, а отдельный Dynatrace SaaS MCP — для доступа к актуальным и более свежим данным.

Ключевые сценарии использования Dynatrace Managed MCP:

  • Observability в реальном времени — получение данных производственного уровня для раннего обнаружения проблем и проактивного мониторинга

  • Контекстная отладка — устранение неполадок с полным контекстом: отслеживаемые исключения, логи и аномалии

  • Аналитика безопасности — детальный анализ уязвимостей и отслеживание проблем безопасности, включая оценку соответствия требованиям в мультиоблачных средах с расследованием на основе фактических данных

  • Запросы на естественном языке — запросы преобразуются в вызовы инструментов MCP, а значит, в API-запросы, с подсказками по дальнейшим шагам

  • Многоэтапное расследование инцидентов — систематическая оценка воздействия и диагностика неполадок

  • Поддержка нескольких сред — выполнение запросов к нескольким средам Dynatrace Managed через один и тот же MCP-сервер

Возможности

  • Проблемы — получение списка проблем и их подробностей по вашим сервисам (например, Kubernetes)

  • Безопасность — получение списка проблем безопасности и подробностей об уязвимостях

  • Сущности — получение дополнительной информации об отслеживаемой сущности, включая связи между сущностями

  • SLO — получение списка SLO (Service Level Objective) и их деталей, включая результаты оценки и бюджеты ошибок

  • Отслеживание событий — получение списка системных событий и их деталей

  • Анализ логов — поиск и фильтрация логов с помощью расширенных запросов по содержимому и времени

  • Анализ метрик — запрос и анализ метрик производительности с помощью V2 Metrics API

Локальный Dynatrace Managed MCP-сервер позволяет AI-ассистентам взаимодействовать с одним или несколькими самостоятельно развёрнутыми экземплярами Dynatrace Managed, делая данные Observability доступными непосредственно в вашем рабочем процессе с поддержкой AI.

Этот MCP-сервер поддерживает два режима:

  • Локальный режим: запускается на вашей машине и подходит для разработки и тестирования.

  • Удалённый режим: подключение по HTTP/SSE для распределённых конфигураций и сценариев, близких к production.

Совет

Этот MCP-сервер предназначен специально для развёртываний Dynatrace Managed (self-hosted).

Для сред Dynatrace SaaS используйте Dynatrace MCP.

Примечание

Этот проект с открытым исходным кодом поддерживается сообществом.

Для запросов новых функций, вопросов и получения помощи используйте GitHub Issues.

Быстрый старт в режиме stdio (локальный режим)

Вы можете подключить этот MCP-сервер к своему AI-ассистенту, например VSCode, Claude, Cursor, Kiro, Windsurf, ChatGPT или GitHub Copilot.

Для запуска этого MCP-сервера необходимо настроить четыре вещи:

  • API-токен Dynatrace Managed

  • Файл конфигурации: файл dt-config.yaml или dt-config.json, определяющий список сред, которые вы планируете использовать

  • Файл конфигурации подключения MCP-сервера: локальная конфигурация MCP, зависящая от используемого вами инструмента

  • Укажите в DT_CONFIG_FILE путь к вашему файлу dt-config.yaml или dt-config.json в окружении MCP-сервера.

API-токен Dynatrace Managed

Сведения о создании API-токенов в развёртываниях Managed приведены в документации Dynatrace Managed.

Для полной функциональности API-токен должен включать следующие scope (области доступа):

  • Доступ к лентам проблем и событий, метрикам и топологии (DataExport)

  • Чтение сущностей (entities.read)

  • Чтение событий (events.read)

  • Чтение логов (logs.read)

  • Чтение метрик (metrics.read)

  • Чтение проблем (problems.read)

  • Чтение проблем безопасности (securityProblems.read)

  • Чтение SLO (slo.read)

Файл конфигурации

Параметры конфигурации
ПараметрОбязательныйОписаниеПример значения
apiEndpointUrlДаБазовый URL API кластера Dynatrace Managedhttps://dmz123.dynatrace-managed.com
environmentIdДаИдентификатор среды Managed01234567-89ab-cdef-abcd-ef0123456789
aliasДаУдобочитаемое имя средыMyEnvironment
apiTokenТолько в режиме stdioAPI-токен кластера с необходимыми scope, созданный по инструкции вышеdt0s01.ABCDEFGHIJK0123
httpProxyUrlНетURL прокси-сервера для запросов. Не используйте вместе со вторым прокси-параметромhttp://proxy.company.com:8080
httpsProxyUrlНетURL прокси-сервера для запросов. Не используйте вместе со вторым прокси-параметромhttps://proxy.company.com:8080

Настроить среды Dynatrace Managed можно двумя способами.

Способ 1: файл конфигурации (рекомендуется для локальной разработки)

Пример: dt-config.yaml

# Production environment
- apiEndpointUrl: https://my-api.company.com/
  environmentId: abc-123
  alias: production
  # Token is injected from an environment variable at runtime
  apiToken: ${DT_PROD_TOKEN}
  # You can also use the token directly
  # apiToken: dt0s01.ABCDEFGHIJK0123

# Staging environment
- apiEndpointUrl: https://staging-api.company.com/
  environmentId: xyz-789
  alias: staging
  apiToken: ${DT_STAGING_TOKEN}

Пример: dt-config.json

[
  {
    "apiEndpointUrl": "https://my-api.company.com/",
    "environmentId": "abc-123",
    "alias": "production",
    "apiToken": "${DT_PROD_TOKEN}"
  }
]
Способ 2: переменная окружения (Docker/Kubernetes)

Для развёртываний в Kubernetes или если вы предпочитаете переменные окружения, задайте DT_ENVIRONMENT_CONFIGS со строкой JSON — либо в файле .env, либо непосредственно в файле конфигурации подключения MCP-сервера.

DT_ENVIRONMENT_CONFIGS='[{"apiEndpointUrl":"https://api.example.com/","environmentId":"abc-123","alias":"production","apiToken":"dt0s01.ABCDEFGHIJK0123"}]'

Файл конфигурации подключения MCP-сервера

Чтобы подключиться к MCP-серверу, настройте MCP-подключение в своём AI-ассистенте.

Рекомендуем всегда настраивать его для текущего рабочего пространства, а не глобально.

VS Code
{
  "servers": {
    "npx-dynatrace-managed-mcp": {
      "command": "npx",
      "cwd": "${workspaceFolder}",
      "args": ["-y", "@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "envFile": "${workspaceFolder}/.env"
    }
  }
}

Кроме того, эту конфигурацию можно сохранить в пользовательских настройках и определить env следующим образом:

{
  "servers": {
    "npx-dynatrace-managed-mcp": {
      "command": "npx",
      "args": ["-y", "@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "env": {
        "DT_PROD_TOKEN": "dt0s01.ABCDEFGHIJK0123",
        "DT_CONFIG_FILE": "dt-config.yaml"
      }
    }
  }
}
Claude Code

Claude Code может установить этот сервер как плагин — это избавляет от ручной настройки MCP, описанной ниже, и добавляет skill, охватывающий выбор среды и селекторы сущностей. Плагин опубликован в маркетплейсе плагинов сообщества Anthropic:

/plugin marketplace add anthropics/claude-plugins-community
/plugin install dynatrace-managed-mcp@claude-community

Важно

Плагин в маркетплейсе сообщества пока проходит проверку. До его одобрения команда установки выше вернёт ошибку Plugin "dynatrace-managed-mcp" not found in marketplace "claude-community" — до этого момента используйте инструкцию Установка напрямую из этого репозитория ниже.

Во время установки Claude Code запросит конфигурацию кластера: JSON-массив для одного кластера либо путь к файлу dt-config.yaml / dt-config.json для нескольких кластеров. Подробнее см. docs/claude-code-plugin.md.

Примечание

Сторонние маркетплейсы по умолчанию не обновляются автоматически. Чтобы получить новую версию плагина, выполните /plugin marketplace update claude-community.

Установка напрямую из этого репозитория

Этот репозиторий сам является маркетплейсом плагинов — так можно установить плагин до одобрения в маркетплейсе сообщества, опробовать ещё не выпущенные изменения или закрепиться на конкретной ветке:

/plugin marketplace add dynatrace-oss/dynatrace-managed-mcp
/plugin install dynatrace-managed-mcp@dynatrace

Чтобы настроить сервер вручную, используйте приведённый ниже сниппет для Claude Desktop — он также подходит для файла .mcp.json в Claude Code.

Claude Desktop
{
  "mcpServers": {
    "dynatrace-managed-mcp": {
      "command": "npx",
      "args": ["-y", "@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "env": {
        "DT_PROD_TOKEN": "dt0s01.ABCDEFGHIJK0123",
        "DT_CONFIG_FILE": "dt-config.yaml"
      }
    }
  }
}
Kiro
{
  "mcpServers": {
    "dynatrace-managed-mcp": {
      "command": "npx",
      "args": ["-y", "@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "env": {
        "DT_PROD_TOKEN": "dt0s01.ABCDEFGHIJK0123",
        "DT_CONFIG_FILE": "dt-config.yaml"
      }
    }
  }
}

Эту конфигурацию следует сохранить в /.kiro/settings/mcp.json либо в пользовательских настройках (~/.kiro/settings/mcp.json).

Google Gemini CLI

Прямое использование CLI gemini (рекомендуется):

gemini extensions install https://github.com/dynatrace-oss/dynatrace-managed-mcp
export DT_ENVIRONMENT_CONFIGS="[{\"apiEndpointUrl\":\"https://my-api-endpoint.com/\",\"environmentId\":\"my-env-id-1\",\"alias\":\"alias-env\",\"apiToken\":\"my-api-token\"},{\"apiEndpointUrl\":\"https://my-api2-endpoint.com/\",\"environmentId\":\"my-env-id-2\",\"alias\":\"alias-env-2\",\"apiToken\":\"my-api-token-2\"}]"

и убедитесь, что сервер запущен, с помощью

gemini mcp list

Либо вручную в файле ~/.gemini/settings.json или .gemini/settings.json:

{
  "mcpServers": {
    "dynatrace-managed-mcp": {
      "command": "npx",
      "args": ["@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "env": {
        "DT_ENVIRONMENT_CONFIGS": "[{\"apiEndpointUrl\":\"https://my-api-endpoint.com/\",\"environmentId\":\"my-env-id-1\",\"alias\":\"alias-env\",\"apiToken\":\"my-api-token\"},{\"apiEndpointUrl\":\"https://my-api2-endpoint.com/\",\"environmentId\":\"my-env-id-2\",\"alias\":\"alias-env-2\",\"apiToken\":\"my-api-token-2\"}]",
        "DT_CONFIG_FILE": "dt-config.yaml"
      },
      "timeout": 30000,
      "trust": false
    }
  }
}

Режим HTTP-сервера (альтернативный)

По умолчанию этот локальный MCP-сервер использует stdio в качестве транспорта.

Если требуется запустить MCP-сервер в виде HTTP-сервиса (например, для балансировки нагрузки или интеграции с веб-клиентами), используйте режим HTTP-сервера:

Запуск в режиме HTTP-сервера

Убедитесь, что файл конфигурации находится в той же папке. Для конфигураций, запускаемых в режиме HTTP, задавать API-токены не требуется.

# Get help and see all available options
npx -y @dynatrace-oss/dynatrace-managed-mcp-server@latest --help

# Run with HTTP server on default port 3000
npx -y @dynatrace-oss/dynatrace-managed-mcp-server@latest --http

# Run with custom port
npx -y @dynatrace-oss/dynatrace-managed-mcp-server@latest --http --port 3001

# Run with custom host/IP
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --host 127.0.0.1   # recommended for local computers
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --host 0.0.0.0     # recommended for container
npx -y @dynatrace-oss/dynatrace-mcp-server@latest --http --host 192.168.0.1 # recommended when sharing connection over a local network

Предупреждение

В режиме HTTP сервер проверяет заголовок Host, чтобы защититься от атак DNS rebinding. При запуске с --host 0.0.0.0 (или --host ::) по умолчанию принимаются только имена хостов loopback, поэтому удалённые клиенты будут получать 403 Forbidden, пока вы не зададите DT_MCP_ALLOWED_HOSTS с используемыми ими именами хостов. См. раздел «Защита от DNS rebinding».

Файл конфигурации подключения MCP-сервера:

Как было описано ранее, в режиме HTTP API-токены не хранятся в конфигурации. Аутентификацию выполняет пользователь, заполняя заголовок X-Dynatrace-Tokens.

{
  "mcpServers": {
    "dynatrace-managed-mcp": {
      "url": "http://localhost:3000",
      "transport": "http",
      "headers": {
        "Content-Type": "application/json",
        "Accept": "application/json,text/event-stream",
        "X-Dynatrace-Tokens": "alias1=token1;alias2=token2"
      }
    }
  }
}

Рекомендации по производительности

Важно: этот MCP-сервер выполняет API-запросы к средам Dynatrace Managed. Он спроектирован с расчётом на эффективное использование (например, за счёт ограничения размера ответов), однако следует соблюдать осторожность, чтобы не перегружать среды Dynatrace Managed объёмными запросами.

Рекомендации:

  • Используйте узкие временные диапазоны (например, 1–2 часа) вместо масштабных исторических выборок.

  • Используйте конкретные фильтры, чтобы максимально сузить область запросов, — например, селекторы сущностей с указанием ID сущности.

  • Если используется несколько сред, по возможности указывайте, какую именно среду нужно опросить. При одновременном запросе к нескольким средам учитывайте объём данных, который будет возвращён LLM: например, топ-10 проблем из 2 сред = 20 проблем, тогда как топ-10 проблем из 10 сред = 100 проблем.

Защита от DNS rebinding (режим HTTP)

  • DT_MCP_ALLOWED_HOSTS (необязательно): разделённый запятыми список имён хостов, которые сервер принимает в заголовке Host. Порты игнорируются, поэтому указывайте только имена хостов (для IPv6 используйте форму в квадратных скобках, например [::1]).

Если эта переменная не задана, список разрешённых имён формируется на основе --host: к привязанному адресу добавляются localhost, 127.0.0.1 и [::1]. Запросы, у которых заголовок Host отсутствует в списке, отклоняются с ошибкой 403 Forbidden; то же относится к запросам, у которых заголовок Origin содержит имя хоста вне списка. Именно это защищает от атак DNS rebinding.

Проверка активна всегда: не существует конфигурации, в которой она бы незаметно пропускалась.

Важно

При привязке к адресу с wildcard (--host 0.0.0.0 или --host ::) привязанный адрес не позволяет определить, какие имена хостов являются легитимными, поэтому сервер принимает только имена хостов loopback и записывает предупреждение в журнал при запуске. В этом режиме блокируется DNS rebinding, но вместе с ним блокируются и все удалённые клиенты. Если вы запускаете сервер в контейнере или открываете доступ к нему по сети, обязательно задайте DT_MCP_ALLOWED_HOSTS с именами хостов, которые используют ваши клиенты, — иначе они будут получать 403 Forbidden.

Пример: контейнер, привязанный ко всем интерфейсам и доступный по имени mcp.internal.example.com:

DT_MCP_ALLOWED_HOSTS=mcp.internal.example.com node dist/index.js --http --host 0.0.0.0

DT_MCP_ALLOWED_HOSTS заменяет сформированный список, а не расширяет его, поэтому, если вам также нужен локальный доступ, явно укажите имена loopback:

DT_MCP_ALLOWED_HOSTS=mcp.internal.example.com,localhost,127.0.0.1

Устранение неполадок

Проблемы с аутентификацией

В большинстве случаев проблемы с аутентификацией вызваны отсутствующими scope или недействительными токенами. Убедитесь, что добавлены все необходимые scope, перечисленные выше.

При возникновении ошибок можно попросить AI-ассистента показать точную ошибку, возвращённую MCP. При проблемах с запуском проверьте журналы AI-ассистента.

Также можно попробовать запустить MCP напрямую и посмотреть, сообщает ли он об ошибках при старте:

```bash
npx @dynatrace-oss/dynatrace-managed-mcp-server@latest


### Лимит размера заголовков слишком мал

Заголовок `X-Dynatrace-Tokens` растёт с увеличением числа сред. Каждая запись занимает примерно `alias=dt0s01.ABCDEFGHIJK0123` (~110 символов). В Node.js по умолчанию действует ограничение на размер HTTP-заголовков — **16 КБ**, чего хватает примерно на 140–150 сред, после чего запросы отклоняются.

Если сред требуется больше, увеличьте лимит при запуске сервера с помощью флага `--max-http-header-size`:

node --max-http-header-size=65536 ./dist/index.js --http


Если перед MCP-сервером работает **обратный прокси** (например, nginx), прокси также применяет собственный лимит. По умолчанию в nginx это 8 КБ (`large_client_header_buffers`) — примерно 70 сред. Увеличьте значение в конфигурации nginx:

large_client_header_buffers 4 32k;



## Телеметрия

Dynatrace MCP Server отправляет телеметрические данные через Dynatrace OpenKit, чтобы помочь улучшить продукт. Это включает:

- События запуска сервера

- Использование инструментов (какие инструменты вызываются, успех/неудача, длительность выполнения)

- Отслеживание ошибок для отладки и улучшения

**Приватность и отказ от телеметрии:**

- Телеметрия **отключена по умолчанию**, но её можно включить, задав `DT_MCP_ENABLE_TELEMETRY=true`

- Конфиденциальные данные из вашей среды Dynatrace не отслеживаются

- Собираются только анонимная статистика использования и сведения об ошибках

- Статистика использования и данные об ошибках передаются на аналитический endpoint Dynatrace

**Параметры конфигурации:**

- `DT_MCP_ENABLE_TELEMETRY` (boolean, по умолчанию: `false`) — включает телеметрию

- `DT_MCP_TELEMETRY_APPLICATION_ID` (string, по умолчанию: `dynatrace-managed-mcp`) — идентификатор приложения (Application ID) для отслеживания

- `DT_MCP_TELEMETRY_ENDPOINT_URL` (string, по умолчанию: endpoint Dynatrace) — URL endpoint OpenKit

- `DT_MCP_TELEMETRY_DEVICE_ID` (string, по умолчанию: генерируется автоматически) — идентификатор устройства для отслеживания


## Дополнительная документация

### Использование MCP-сервера

- [Области действия API-токенов](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/api_token_scopes.md) — таблица со сведениями о доступных инструментах, вызываемых ими эндпоинтах и необходимых областях действия API-токенов для корректного доступа к ним

- [Архитектура](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/architecture.md) — подробные диаграммы, отображающие архитектуру окружения Dynatrace при работе с MCP-сервером в режиме stdio или http

- [Переменные окружения](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/environment_variables.md) — подробные сведения о доступных переменных окружения

- [Файл правил](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/rule_file.md) — задайте правила для вашего AI-ассистента, чтобы обеспечить бесперебойную работу с кластером Managed

### Разработка

- [Формат changelog](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/CHANGELOG.format.md) — инструкция для разработчиков о том, как вести единообразный и структурированный changelog

- [Разработка](https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/docs/DEVELOPMENT.md) — общие сведения о запуске проекта и его содержимом