Datadog MCP Server について
Datadog MCP Server は、公式 Datadog API からモニター、ダッシュボード、メトリクス、イベント、ログ、インシデントを取得する MCP サーバーです。AI アシスタントを使って Datadog のデータ調査を支援させたい運用担当者や開発者向けです。
主な機能
- 01モニターとダッシュボードのデータ取得
- 02メトリクス一覧とメタデータの取得
- 03イベントとログの検索
- 04ログの集計と分析
- 05最小権限で設定する Application Key
活用シーン
- 01AI アシスタントでアラート状態のモニターを確認する
- 02特定サービスのエラーログを検索し集計する
- 03障害調査のためにダッシュボード定義を取得する
MCP 対応
このプロジェクトは MCP サーバーであり、get-monitors、search-logs、aggregate-logs などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Datadog MCP サーバー
Datadog API と連携するための Model Context Protocol(MCP)サーバーです。
機能
- モニタリング:モニターのデータと設定にアクセスします
- ダッシュボード:ダッシュボードの定義を取得して表示します
- メトリクス:利用可能なメトリクスとそのメタデータを照会します
- イベント:指定した期間内のイベントを検索して取得します
- ログ:高度なフィルタリングと並べ替えオプションを使用してログを検索します
- インシデント:インシデント管理データにアクセスします
- API 統合:Datadog の v1 API と v2 API を直接統合します
- 包括的なエラー処理:API や認証の問題を明確なエラーメッセージで通知します
- サービス固有のエンドポイント:ログとメトリクスに異なるエンドポイントを使用できます
前提条件
- Node.js(バージョン 16 以降)
- Datadog アカウント:
- API キー - Organization Settings > API Keys で確認できます
- Application キー - Organization Settings > Application Keys で確認できます
Application キーのスコープ
セキュリティを強化するため、この MCP サーバーに必要な最小限の権限のみを付与するように Application キーのスコープを設定できます。デフォルトでは、Application キーは作成者のすべての権限を継承しますが、スコープ付き Application キーを使用すれば、最小権限の原則に従うことができます。
必要なスコープ
各機能には、以下のスコープが必要です。
| ツール | 必要なスコープ | 説明 |
|---|---|---|
get-monitors、get-monitor | monitors_read | モニターの設定と状態への読み取りアクセス |
get-dashboards、get-dashboard | dashboards_read | ダッシュボード定義への読み取りアクセス |
get-metrics、get-metric-metadata | metrics_read | メトリクスの一覧とメタデータへの読み取りアクセス |
get-events | events_read | イベントストリームのイベントへの読み取りアクセス |
search-logs、aggregate-logs | logs_read_data | ログの検索と集計に必要なログデータへの読み取りアクセス |
get-incidents | incident_read | インシデント管理データへの読み取りアクセス |
スコープ付き Application キーの作成
- Organization Settings > Application Keys に移動します
- New Key をクリックします
- 名前を入力します(例:「MCP Server - Read Only」)
- Scopes で、必要な権限のみを選択します:
- すべての機能を使用する場合:
monitors_read、dashboards_read、metrics_read、events_read、logs_read_data、incident_read - ログのみの場合:
logs_read_data - モニタリングのみの場合:
monitors_read、dashboards_read、metrics_read
- すべての機能を使用する場合:
- Create Key をクリックします
Note:Application キーの作成時にスコープを指定しないと、作成者のすべての権限を持つフルアクセスのキーになります。本番環境では、常に明示的なスコープを指定することをおすすめします。
インストール
npm 経由(推奨)
npm install -g datadog-mcp-server
ソースから
- このリポジトリをクローンします
- 依存関係をインストールします:
npm install - プロジェクトをビルドします:
npm run build
設定
Datadog MCP サーバーは、環境変数またはコマンドライン引数を使用して設定できます。
環境変数
Datadog の認証情報を含む .env ファイルを作成します:
DD_API_KEY=your_api_key_here
DD_APP_KEY=your_app_key_here
DD_SITE=datadoghq.com
DD_LOGS_SITE=datadoghq.com
DD_METRICS_SITE=datadoghq.com
Note:DD_LOGS_SITE と DD_METRICS_SITE は省略可能です。指定しない場合は、デフォルトで DD_SITE の値が使用されます。
コマンドライン引数
サイトのグローバル設定を使用した基本的な使い方:
datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.eu
サービス固有のエンドポイントを使用した高度な使い方:
datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.com --logsSite=logs.datadoghq.com --metricsSite=metrics.datadoghq.com
注:サイトの引数に https:// を付ける必要はありません。自動的に追加されます。
リージョン別エンドポイント
Datadog のリージョンによってエンドポイントが異なります:
- 米国(デフォルト):
datadoghq.com - EU:
datadoghq.eu - US3(GovCloud):
ddog-gov.com - US5:
us5.datadoghq.com - AP1:
ap1.datadoghq.com
Claude Desktop での使用方法
これを claude_desktop_config.json に追加します。
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": [
"datadog-mcp-server",
"--apiKey",
"<YOUR_API_KEY>",
"--appKey",
"<YOUR_APP_KEY>",
"--site",
"<YOUR_DD_SITE>(e.g us5.datadoghq.com)"
]
}
}
}
ログとメトリクスに個別のエンドポイントを指定する、より高度な設定は次のとおりです。
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": [
"datadog-mcp-server",
"--apiKey",
"<YOUR_API_KEY>",
"--appKey",
"<YOUR_APP_KEY>",
"--site",
"<YOUR_DD_SITE>",
"--logsSite",
"<YOUR_LOGS_SITE>",
"--metricsSite",
"<YOUR_METRICS_SITE>"
]
}
}
}
Claude Desktop の設定ファイルの場所:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
MCP Inspector での使用方法
MCP Inspector ツールで使用するには、次のようにします。
npx @modelcontextprotocol/inspector datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key
使用可能なツール
サーバーは次の MCP ツールを提供します。
- get-monitors:オプションのフィルタリングを指定してモニターを取得します
- get-monitor:ID を指定して特定のモニターの詳細を取得します
- get-dashboards:すべてのダッシュボードを一覧表示します
- get-dashboard:ID を指定して特定のダッシュボードを取得します
- get-metrics:使用可能なメトリクスを一覧表示します
- get-metric-metadata:特定のメトリクスのメタデータを取得します
- get-events:指定した期間内のイベントを取得します
- get-incidents:オプションのフィルタリングを指定してインシデントを一覧表示します
- search-logs:高度なクエリフィルタリングを使ってログを検索します
- aggregate-logs:ログデータの分析と集計を実行します
例
例:モニターを取得する
{
"method": "tools/call",
"params": {
"name": "get-monitors",
"arguments": {
"groupStates": ["alert", "warn"],
"limit": 5
}
}
}
例:ダッシュボードを取得する
{
"method": "tools/call",
"params": {
"name": "get-dashboard",
"arguments": {
"dashboardId": "abc-def-123"
}
}
}
例:ログを検索する
{
"method": "tools/call",
"params": {
"name": "search-logs",
"arguments": {
"filter": {
"query": "service:web-app status:error",
"from": "now-15m",
"to": "now"
},
"sort": "-timestamp",
"limit": 20
}
}
}
例:ログを集計する
{
"method": "tools/call",
"params": {
"name": "aggregate-logs",
"arguments": {
"filter": {
"query": "service:web-app",
"from": "now-1h",
"to": "now"
},
"compute": [
{
"aggregation": "count"
}
],
"groupBy": [
{
"facet": "status",
"limit": 10,
"sort": {
"aggregation": "count",
"order": "desc"
}
}
]
}
}
}
例:インシデントを取得する
{
"method": "tools/call",
"params": {
"name": "get-incidents",
"arguments": {
"includeArchived": false,
"query": "state:active",
"pageSize": 10
}
}
}
トラブルシューティング
403 Forbidden エラーが発生した場合は、次の点を確認してください。
- API キーと Application キーが正しいこと
- キーに、要求されたリソースへのアクセスに必要な権限があること
- アカウントが要求されたデータにアクセスできること
- お使いのリージョンに適したエンドポイント(EU のお客様の場合は
datadoghq.euなど)を使用していること
デバッグ
問題が発生した場合は、Claude Desktop の MCP ログを確認してください。
# On macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
# On Windows
Get-Content -Path "$env:APPDATA\Claude\Logs\mcp*.log" -Tail 20 -Wait
よくある問題:
- 403 Forbidden:Datadog API キーの認証に関する問題です
- API キーまたは App キーの形式が無効:キー文字列全体を使用していることを確認してください
- サイト設定のエラー:正しい Datadog ドメインを使用していることを確認してください
- エンドポイントの不一致:ログとメトリクスに別々のドメインを使用している場合は、サービス固有のエンドポイントが正しく設定されていることを確認してください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。