dynatrace-managed-mcp について
dynatrace-managed-mcp は、セルフホストの Dynatrace Managed 環境向けのローカル MCP サーバーです。AI アシスタントからログ、イベント、メトリクス、問題、セキュリティ問題などの可観測性データを参照できます。複数の Managed 環境を一つのサーバーから照会でき、stdio と HTTP の両方で動作します。
主な機能
- 01問題、セキュリティ問題、エンティティの照会
- 02内容と時間でフィルタするログ検索
- 03V2 Metrics API によるメトリクス分析
- 04SLO、エラーバジェット、システムイベントの一覧取得
- 05複数の Managed 環境の設定
活用シーン
- 01履歴の可観測性データを使った障害調査
- 02AI アシスタントからのイベントや異常の調査
- 03脆弱性やマルチクラウドのコンプライアンス結果の確認
MCP 対応
本プロジェクトは MCP サーバーであり、問題、ログ、メトリクス、SLO などの照会機能をツールとして MCP クライアントに公開し、内部では Dynatrace Managed の API を呼び出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dynatrace-oss/dynatrace-managed-mcp-serverDT_MCP_RATE_LIMIT_MAX_CALLSMaximum number of tool calls allowed per rate limit window. Defaults to 20.DT_MCP_RATE_LIMIT_WINDOW_MSRate limit window size in milliseconds. Defaults to 20000 (20 seconds).DT_ENVIRONMENT_CONFIGSAn escaped JSON array that defines the Dynatrace Managed environment(s) to connect to. See README file for contents of this.LOG_LEVELLogging level (e.g. debug, info, warning, error)DT_MCP_DISABLE_TELEMETRYDisable telemetryローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dynatrace Managed MCP サーバー
ユースケース
- Dynatrace Managed 環境が主要なオブザーバビリティシステムであり、すべてのライブデータを含んでいる場合、または
- Dynatrace Managed 環境から Dynatrace SaaS 環境への移行が行われたものの、過去のオブザーバビリティデータは移行されておらず、Dynatrace Managed 環境を通じて引き続きアクセスできる場合。 Dynatrace Managed MCP は過去のデータへのアクセスに使用し、別の Dynatrace SaaS MCP はライブデータおよびより新しいデータへのアクセスに使用します。
Dynatrace Managed MCP の具体的なユースケースには、次のようなものがあります。
- リアルタイムのオブザーバビリティ - 本番レベルのデータを取得し、早期検出とプロアクティブな監視を実現
- コンテキストを踏まえたデバッグ - 監視対象の例外、ログ、異常に関する完全なコンテキストで問題を修正
- セキュリティインサイト - 詳細な脆弱性分析とセキュリティ問題の追跡を取得。これにはエビデンスに基づく調査によるマルチクラウドコンプライアンス評価を含めることができます。
- 自然言語クエリ - クエリは MCP ツールの使用、ひいては API クエリにマッピングされ、次のステップに向けたガイダンスが得られます
- 多段階のインシデント調査 - 体系的な影響評価とトラブルシューティング
- マルチ環境サポート - 同じ MCP サーバーから複数の Dynatrace Managed 環境をクエリ
機能
- Problems - サービス(たとえば Kubernetes)から問題の一覧表示と詳細取得
- Security - セキュリティ問題/脆弱性の一覧表示と詳細取得
- Entities - 監視対象エンティティに関する詳細情報の取得(リレーションシップマッピングを含む)
- SLO - Service Level Objective の詳細(評価とエラーバジェットを含む)の一覧表示と取得
- Event Tracking - システムイベントの一覧表示と取得
- Log Investigation - 高度なコンテンツおよび時間ベースのクエリによるログの検索とフィルタリング
- Metrics Analysis - V2 Metrics API を使用したパフォーマンスメトリクスのクエリと分析
ローカルの Dynatrace Managed MCP サーバー を使用すると、AI アシスタントが 1 つ以上のセルフホスト型 Dynatrace Managed デプロイメントと連携でき、オブザーバビリティデータを AI 支援ワークフローに直接取り込むことができます。
この MCP サーバーは 2 つのモード をサポートしています。
- ローカルモード: 開発とテストのために自分のマシン上で実行します。
- リモートモード: 分散型または本番相当のセットアップのために HTTP/SSE 経由で接続します。
ヒント
この MCP サーバーは、Dynatrace Managed(セルフホスト型)デプロイメント専用に設計されています。 Dynatrace SaaS 環境には、Dynatrace MCP をご利用ください。 [!NOTE] このオープンソース製品はコミュニティによってサポートされています。 機能リクエスト、質問、サポートについては、GitHub Issues をご利用ください。
stdio(ローカル)モードでのクイックスタート
この MCP サーバーは、VSCode、Claude、Cursor、Kiro、Windsurf、ChatGPT、GitHub Copilot などの AI アシスタントに追加できます。
この MCP サーバーを実行するには、次の 4 つを設定する必要があります。
- Dynatrace Managed API トークン
- 設定ファイル: 使用する環境のリストを定義する
dt-config.yamlまたはdt-config.jsonファイル - MCP サーバー接続設定ファイル: 使用するツールに依存するローカルの MCP 設定
- MCP サーバーの環境で、
DT_CONFIG_FILEにdt-config.yamlまたはdt-config.jsonファイルのパスを設定します。
Dynatrace Managed API トークン
Managed デプロイメントで API トークンを作成する方法については、Dynatrace Managed のドキュメントを参照してください。 API トークンには、完全な機能を利用するために次のスコープを含める必要があります。
- 問題とイベントのフィード、メトリクス、トポロジーへのアクセス (
DataExport) - エンティティの読み取り (
entities.read) - イベントの読み取り (
events.read) - ログの読み取り (
logs.read) - メトリクスの読み取り (
metrics.read) - 問題の読み取り (
problems.read) - セキュリティ問題の読み取り (
securityProblems.read) - SLO の読み取り (
slo.read)
設定ファイル
設定パラメータ
| パラメータ | 必須 | 説明 | 値の例 |
|---|---|---|---|
| apiEndpointUrl | はい | Dynatrace Managed クラスター API のベース URL | https://dmz123.dynatrace-managed.com |
| environmentId | はい | Managed 環境の ID | 01234567-89ab-cdef-abcd-ef0123456789 |
| alias | はい | 環境の人間が読みやすい名前 | MyEnvironment |
| apiToken | stdio モードのみ | 上記の手順で作成した、必要なスコープを持つクラスターの API トークン | dt0s01.ABCDEFGHIJK0123 |
| httpProxyUrl | いいえ | リクエスト用のプロキシサーバーの URL。もう一方のプロキシパラメータと併用しないでください | http://proxy.company.com:8080 |
| httpsProxyUrl | いいえ | リクエスト用のプロキシサーバーの URL。もう一方のプロキシパラメータと併用しないでください | https://proxy.company.com:8080 |
Dynatrace Managed 環境を設定する方法は 2 つ あります。
方法 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 デプロイメントの場合、または環境変数を好む場合は、.env ファイルまたは MCP サーバー接続設定ファイルに直接、JSON 文字列で DT_ENVIRONMENT_CONFIGS を設定できます。
DT_ENVIRONMENT_CONFIGS='[{"apiEndpointUrl":"https://api.example.com/","environmentId":"abc-123","alias":"production","apiToken":"dt0s01.ABCDEFGHIJK0123"}]'
MCP サーバー接続設定ファイル
実際に MCP サーバーに接続するには、AI アシスタントで MCP 接続を設定する必要があります。
グローバルに使用するのではなく、常に現在のワークスペースに対して設定することをお勧めします。
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 設定を省略でき、環境の選択とエンティティセレクターをカバーするスキルが追加されます。これは 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 のスニペットを使用してください - これは Claude Code の .mcp.json にも適用されます。
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"
}
}
}
}
この設定は <project-root>/.kiro/settings/mcp.json、またはユーザーレベルの設定 (~/.kiro/settings/mcp.json) に保存する必要があります。
Google Gemini CLI
gemini CLI を直接使用する場合 (推奨):
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 サービスとして実行する必要があるシナリオ (例: ロードバランシングや Web クライアントとの統合) では、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 モードでは、サーバーは DNS リバインディング攻撃から保護するために
Hostヘッダーを検証します。--host 0.0.0.0(または--host ::) の場合、デフォルトでは ループバック のホスト名のみが受け入れられるため、リモートクライアントは、クライアントが使用するホスト名をDT_MCP_ALLOWED_HOSTSに設定するまで403 Forbiddenを受け取ります。詳細は DNS リバインディング保護 を参照してください。
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 サーバーは、Dynatrace Managed 環境に対して API 呼び出しを行います。効率的な使用 (例: レスポンスサイズの制限) のために設計されていますが、大きなクエリで Dynatrace Managed 環境に過負荷をかけないよう注意する必要があります。
ベストプラクティス:
- 大規模な履歴クエリではなく、特定の時間範囲 (例: 1〜2 時間) を使用してください。
- クエリのスコープを可能な限り制限するために、特定のフィルターを使用してください。例えば、エンティティ ID を指定するエンティティセレクターなどです。
- 複数の環境を使用する場合は、該当する場合、どれをクエリするかを具体的に指定してください。一度に複数をクエリする場合は、LLM に返されるデータ量に注意してください。例えば、2 つの環境からの上位 10 件の問題 = 20 件の問題に対し、10 の環境からの上位 10 件の問題 = 100 件の問題となります。
DNS リバインディング対策(HTTP モード)
DT_MCP_ALLOWED_HOSTS(任意): サーバーがHostヘッダーで受け入れるホスト名のカンマ区切りリストです。ポートは無視されるため、ホスト名のみを列挙してください(IPv6 の場合はブラケット形式を使用します。例:[::1])。
この変数が設定されていない場合、許可リストは --host から導出されます。つまり、バインドされたアドレスに加えて localhost、127.0.0.1、[::1] です。Host ヘッダーがリストにないリクエストは 403 Forbidden で拒否され、同様にリストにないホスト名の Origin ヘッダーを伴うリクエストも拒否されます。これが DNS リバインディング攻撃 を防ぐ仕組みです。
検証は常に有効です。サイレントにスキップされる構成は存在しません。
重要
ワイルドカードアドレス(
--host 0.0.0.0または--host ::)にバインドする場合、バインドされたアドレスはどのホスト名が正当であるかを識別できないため、サーバーはループバックのホスト名のみを受け入れ、起動時に警告をログに出力します。このモードでは DNS リバインディングはブロックされますが、すべてのリモートクライアントも同様にブロックされます。コンテナ内で実行する場合や、サーバーをネットワークに公開する場合は、クライアントが使用するホスト名を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 は導出されたリストを拡張するのではなく置き換えるため、ローカルアクセスも必要な場合はループバック名を明示的に含めてください:
DT_MCP_ALLOWED_HOSTS=mcp.internal.example.com,localhost,127.0.0.1
トラブルシューティング
認証の問題
ほとんどの場合、認証の問題はスコープの不足または無効なトークンに起因します。上記に記載されている必須スコープをすべて追加していることを確認してください。
エラーが発生した場合は、AI アシスタントに MCP から返された正確なエラーを問い合わせることができます。起動の問題については、AI アシスタントのログを確認してください。
また、MCP を直接実行して、起動時にエラーが報告されるかどうかを確認することもできます:
```bash
npx @dynatrace-oss/dynatrace-managed-mcp-server@latest
```
ヘッダーサイズの上限が小さすぎる
X-Dynatrace-Tokens ヘッダーは環境の数に応じて大きくなります。各エントリはおよそ
alias=dt0s01.ABCDEFGHIJK0123(約 110 文字)です。Node.js はデフォルトで HTTP ヘッダーサイズの上限を
16 KB に設定しており、これはリクエストが拒否されるまでにおよそ 140~150 の環境に対応します。
より多くの環境が必要な場合は、サーバー起動時に --max-http-header-size フラグで上限を引き上げてください:
node --max-http-header-size=65536 ./dist/index.js --http
MCP サーバーの前段にリバースプロキシ(nginx など)を実行している場合、プロキシも独自の上限を適用します。nginx のデフォルトは 8 KB(large_client_header_buffers)で、およそ 70 の環境に相当します。nginx の設定で引き上げてください:
large_client_header_buffers 4 32k;
テレメトリー
Dynatrace MCP Server は、製品改善のために Dynatrace OpenKit を介したテレメトリーデータの送信を行います。これには以下が含まれます:
- サーバー起動イベント
- ツールの使用状況(どのツールが呼び出されたか、成功/失敗、実行時間)
- デバッグと改善のためのエラートラッキング
プライバシーとオプトアウト:
- テレメトリーはデフォルトで無効ですが、
DT_MCP_ENABLE_TELEMETRY=trueを設定することで有効にできます - Dynatrace 環境からの機密データは追跡されません
- 収集されるのは匿名の使用統計とエラー情報のみです
- 使用統計とエラーデータは Dynatrace の分析エンドポイントに送信されます
設定オプション:
DT_MCP_ENABLE_TELEMETRY(boolean、デフォルト:false)- テレメトリーを有効化DT_MCP_TELEMETRY_APPLICATION_ID(string、デフォルト:dynatrace-managed-mcp)- 追跡用のアプリケーション IDDT_MCP_TELEMETRY_ENDPOINT_URL(string、デフォルト: Dynatrace エンドポイント)- OpenKit エンドポイント URLDT_MCP_TELEMETRY_DEVICE_ID(string、デフォルト: 自動生成)- 追跡用のデバイス識別子
追加ドキュメント
MCP サーバーの使用方法
- API トークンスコープ - 利用可能なツール、それらが呼び出すエンドポイント、およびそれらに適切にアクセスするために必要な API トークンスコープに関する情報を含む表
- アーキテクチャ - stdio モードまたは http モードで MCP サーバーを使用する際の Dynatrace 環境のアーキテクチャを表す詳細な図
- 環境変数 - 利用可能な環境変数に関する詳細情報
- ルールファイル - Managed クラスターをスムーズに使用するために AI アシスタントのルールを決定します
開発
- Changelog フォーマット - 一貫性のある構造化された changelog の書き方に関する開発者向けの手順
- 開発 - プロジェクトの実行とその内容に関する一般的な情報
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。