mcpField
D
datadog-mcp

datadog-mcp

ローカル
github.com/tantiopeクラウド・インフラ617 週間前に更新

datadog-mcp について

datadog-mcpは、ログ、メトリクス、トレース、モニターなどのDatadog可観測性APIをAIアシスタントに公開します。ローカルのstdioとリモートのHTTPに対応し、読み取り専用にも設定できます。

主な機能

  1. 01ログとトレースの検索・集計
  2. 02メトリクスのクエリと確認
  3. 03モニターとダッシュボードの管理
  4. 04イベント、インシデント、SLOの操作
  5. 05stdioまたはHTTPトランスポート

活用シーン

  1. 01ログとトレースを関連付けてエラーを調査
  2. 02メトリクスの傾向とモニターの動作を確認
  3. 03AIクライアントからDatadogリソースを管理

MCP 対応

このMCPサーバーは、可観測性のクエリとリソース管理に使うDatadog APIツールを互換クライアントに公開します。stdioとHTTPのトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"tantiope-datadog": {
"command": "npx",
"args": [
"-y",
"datadog-mcp"
],
"env": {
"DD_API_KEY": "<DD_API_KEY>",
"DD_APP_KEY": "<DD_APP_KEY>",
"DD_SITE": "<DD_SITE>"
}
}
}
}
起動コマンドnpx -y datadog-mcp
設定が必要な環境変数
DD_API_KEYシークレットDatadog API key
DD_APP_KEYシークレットDatadog Application key
DD_SITEDatadog site (e.g., datadoghq.com, datadoghq.eu, us3.datadoghq.com)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmdatadog-mcp1.0.9

ツール

19

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
idstringいいえモニター ID(get/update/delete/mute/unmute に必須)
endnumberいいえミュート終了タイムスタンプ(mute 操作用)
namestringいいえ名前でフィルター(list 操作用)
tagsarrayいいえタグで絞り込み
limitnumberいいえ返すモニターの最大数
querystringいいえ検索アクションの検索クエリ
actionenumはい実行する操作list | get | search | create | update | delete | mute | unmute
configobjectいいえモニター設定(create/update 用)
messagestringいいえミュートメッセージ(mute 操作用)
groupStatesarrayいいえグループ状態でフィルター:alert、warn、no data、ok

詳細

Datadog MCP サーバー

Quality gate CI/Release npm License Coverage

免責事項:これはコミュニティによって保守されているプロジェクトであり、Datadog, Inc. との公式な提携、承認、サポートを受けていません。この MCP サーバーは Datadog API を利用していますが、独立して開発されています。

AI アシスタントに Datadog のオブザーバビリティ機能への完全なアクセスを提供する MCP サーバーです。grep のようなログ検索、期間・ステータス・エラーによる APM トレースの絞り込み、トークン効率を高めるスマートサンプリングモード、ログ・トレース・メトリクス間の相互相関に対応しています。stdio(ローカル)と http(リモート/Kubernetes)の両トランスポートをサポートしています。

クイックスタート

Claude Desktop/VS Code/Cursor の最小構成 — 必須のキーは 2 つだけです:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": ["-y", "datadog-mcp"],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key"
      }
    }
  }
}

オプションの設定を追加する場合(EU サイト、カスタムのデフォルト上限、より長いログ期間):

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": ["-y", "datadog-mcp"],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key",
        "DD_SITE": "datadoghq.eu",
        "MCP_DEFAULT_LIMIT": "50",
        "MCP_DEFAULT_LOG_LINES": "200",
        "MCP_DEFAULT_METRIC_POINTS": "1000",
        "MCP_DEFAULT_TIME_RANGE": "24"
      }
    }
  }
}

HTTP サーバーとして実行する場合(コンテナや Kubernetes Pod 内など)、同じ env ブロックにトランスポート変数を追加します:

"env": {
  "DD_API_KEY": "your-api-key",
  "DD_APP_KEY": "your-app-key",
  "MCP_TRANSPORT": "http",
  "MCP_PORT": "3000",
  "MCP_HOST": "0.0.0.0"
}

設定

必須の環境変数
DD_API_KEY=your-api-key
DD_APP_KEY=your-app-key
オプションの環境変数
DD_SITE=datadoghq.com  # Default. Use datadoghq.eu for EU, etc.

# Limit defaults (fallbacks when the AI doesn't specify)
MCP_DEFAULT_LIMIT=50              # General tools default limit
MCP_DEFAULT_LOG_LINES=200         # Logs tool default limit
MCP_DEFAULT_METRIC_POINTS=1000    # Metrics timeseries data points
MCP_DEFAULT_TIME_RANGE=24         # Default time range in hours

# Transport (alternative to CLI flags — useful in Kubernetes)
MCP_TRANSPORT=stdio               # stdio | http
MCP_PORT=3000                     # HTTP port
MCP_HOST=0.0.0.0                  # HTTP host
オプションのフラグ
--site=datadoghq.com     # Datadog site (overrides DD_SITE)
--transport=stdio|http   # Transport mode (default: stdio)
--port=3000              # HTTP port when using http transport
--host=0.0.0.0           # HTTP host when using http transport
--read-only              # Block all write operations
--disable-tools=synthetics,rum,security    # Comma-separated list of tools to disable

トランスポート

トランスポート使用する場面エンドポイント
stdio(デフォルト)Claude Desktop、Cursor、VS Code などのローカル MCP クライアント該当なし(プロセスの stdin/stdout)
httpリモート/コンテナ/KubernetesPOST /mcp · GET /mcp(SSE) · DELETE /mcp · GET /health

--transport=http または MCP_TRANSPORT=http で選択します。

デプロイ

Docker
{
  "mcpServers": {
    "datadog": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "DD_API_KEY",
        "-e", "DD_APP_KEY",
        "-e", "DD_SITE",
        "ghcr.io/tantiope/datadog-mcp"
      ],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key",
        "DD_SITE": "datadoghq.com"
      }
    }
  }
}
Kubernetes

トランスポート設定にはコンテナ引数ではなく、環境変数を使用します:

env:
  - name: DD_API_KEY
    value: "your-api-key"
  - name: DD_APP_KEY
    value: "your-app-key"
  - name: MCP_TRANSPORT
    value: "http"
  - name: MCP_PORT
    value: "3000"
  - name: MCP_HOST
    value: "0.0.0.0"

注記: Kubernetes の args: は Dockerfile の CMD 全体を置き換えるため、Node.js はアプリケーションではなくフラグを受け取ります。環境変数を使えばこの問題を回避できます。

ツール

ツールアクションカテゴリ説明必要なスコープ
monitorslistアラート任意のフィルターを指定してモニターを一覧表示しますmonitors_read
monitorsgetアラートIDでモニターを取得しますmonitors_read
monitorssearchアラートクエリでモニターを検索しますmonitors_read
monitorscreateアラート新しいモニターを作成します。config は、ドキュメント化されたオプション(notifyNoData、renotifyInterval、thresholds、…)をカバーする型付きスキーマに照らして検証されます。不明なキーは warnings に表示されます。作成せずに検証するには dry_run: true を渡します(/api/v1/monitor/validate を使用し、読み取り専用モードで利用できます)。monitors_write
monitorsupdateアラート既存のモニターを更新します。create と同じ検証済みスキーマを使用し、部分的な設定も受け付けます。検証エラーがある場合、HTTP 呼び出しの前に EINVALID_MONITOR_CONFIG: として処理を中断しますmonitors_write
monitorspreviewアラート任意の変数と条件を含む context を使って、モニターテンプレート(インラインの message または monitor_id/id を指定)をレンダリングします。{rendered, variablesUsed, variablesMissing, conditionalsResolved, tagConditionalsResolved} を返します。Datadog の Mustache のサブセットに対応しています。変数置換、ドキュメント化された6つの条件(is_alert、is_warning、is_no_data、is_recovery、is_alert_to_warning、is_warning_to_alert)、タグ条件 {{#is_match "tag" "val"}}/{{#is_exact_match "tag" "val"}}(および ^ による否定)をサポートします。{{#each}}/パーシャルは EUNSUPPORTED_TEMPLATE_SYNTAX を発生させます。読み取り専用です。monitors_read
monitorstest_notificationアラート既知の制限事項:ENOT_SUPPORTED を返します。Datadog にはテスト通知をトリガーするための公開 REST エンドポイントがありません。応答にはドキュメントへの参照が含まれます。n/a
monitorsdeleteアラートモニターを削除しますmonitors_write
monitorsmuteアラートモニターをミュートしますmonitors_write
monitorsunmuteアラートモニターのミュートを解除しますmonitors_write
monitorstopアラート実際のモニター名とコンテキストの内訳を含む、アラート頻度上位 N 件のモニターを取得します。警告: total_count には再通知/再評価が含まれます(アラート状態の間、Datadog は renotify_interval 分ごとに再通知イベントを生成します)。実際の発火を取得するには action=history を使用してください。monitors_read
monitorshistoryアラート1つのモニターについて、指定した時間範囲内の実際の状態遷移をカウントして一覧表示します。transitionType(デフォルトは ["alert","alert recovery"]。発火と復旧を含み、再通知は除外)および任意の group で絞り込みます。{transitions: [...], count, meta} を返します。count は実際の遷移数です(例:7日間ずっとアラート状態のバーンレートモニター1つの場合、生イベント98件に対して実際の遷移は38件です)。monitors_read, events_read
dashboardslist可視化すべてのダッシュボードを一覧表示しますdashboards_read
dashboardsget可視化IDでダッシュボードを取得しますdashboards_read
dashboardscreate可視化新しいダッシュボードを作成しますdashboards_write
dashboardsupdate可視化ダッシュボードを更新しますdashboards_write
dashboardsdelete可視化ダッシュボードを削除しますdashboards_write
logssearchログクエリ構文とフィルターを使ってログを検索しますlogs_read_data, logs_read_index_data
logsaggregateログgroupBy を使ってログデータを集計しますlogs_read_data
logs_pipelineslist, getログ設定ログ処理パイプラインとそのプロセッサーを確認しますlogs_read_config
logs_pipelinescreate, update, delete, reorderログ設定パイプラインとプロセッサーチェーンを作成・管理しますlogs_write_config
logs_pipelinesget_orderログ設定パイプラインの評価順序を読み取りますlogs_read_config
logs_indexeslist, getログ設定インデックス(フィルター、保持期間、Flex ティア、除外フィルター)を確認します。Datadog によると create/delete は UI でのみ可能なため、公開されていませんlogs_read_config
logs_indexesupdate, reorderログ設定インデックスのフィルター/保持期間/クォータを更新し、評価順序を変更しますlogs_write_config
logs_indexesget_orderログ設定インデックスの評価順序を読み取りますlogs_read_config
logs_archiveslist, getログ設定ログアーカイブ(S3/GCS/Azure の宛先)を確認します。プロバイダーごとの認証情報フィールドは変更せずに転送されますlogs_read_archives
logs_archivescreate, update, delete, reorderログ設定アーカイブの宛先を管理します。SDK 呼び出しの前に destination.type を `s3gcs
logs_archivesget_orderログ設定アーカイブの評価順序を読み取りますlogs_read_archives
metricsqueryメトリクス時系列データをクエリします。応答の meta には、(rollup(method, seconds) から解析した)rollupRequested と methodInferred フラグ、(返された pointlist の間隔から導出され、複数系列の場合は intervalsObserved の重複を除いた)rollupEffective、および Datadog によるサイレントなダウンサンプリングを呼び出し元が検出できる rollupOverridden: boolean が含まれます。metrics_read, timeseries_query
metricssearchメトリクス名前でメトリクスを検索しますmetrics_read
metricslistメトリクスアクティブなメトリクスを一覧表示しますmetrics_read
metricsmetadataメトリクスメトリクスのメタデータを取得しますmetrics_read
tracessearchAPMフィルターを使ってスパンを検索しますapm_read
tracesaggregateAPMトレースデータを集計しますapm_read
tracesservicesAPMAPM サービスを一覧表示しますapm_service_catalog_read
eventslistイベントイベントを一覧表示しますevents_read
eventsgetイベントIDでイベントを取得しますevents_read
eventscreateイベントイベントを作成しますevents_read
eventssearchイベントv2 API とカーソルページネーションを使ってイベントを検索します。任意の transitionType フィルター(例:["alert","alert recovery"])を指定すると、モニターの状態遷移イベントに絞り込めます。指定しない場合、source:alert には再通知も含まれます。モニター固有の発火を取得するには monitors action=history を使用してください。任意の timezone を指定すると、すべてのタイムスタンプに *Local の ISO 8601 形式の値が追加されます。結果が0件の場合は、原因の手がかりとなる diagnostics 配列(UNINDEXED_TAG_PREFIX、NARROW_TIME_RANGE、RESTRICTIVE_SOURCE_FILTER)が含まれます。events_read
eventshistogramイベントIANA timezone において、イベントを hour_of_day、day_of_week、day_of_month ごとにサーバー側でバケット化します(Intl.DateTimeFormat により DST に対応)。search と同じ transitionType フィルターを指定できるため、モニターのヒストグラムから再通知を除外できます。基盤となる検索はカーソルページネーションを使用し、上限は limits.maxEventsForHistogram(デフォルト5000、環境変数 MCP_MAX_EVENTS_HISTOGRAM)です。上限に達すると bucketCountIncomplete: true と、続きを取得するための nextCursor を返します。events_read
eventsaggregateイベントmonitor_name、source などでクライアント側集計を行いますevents_read
eventstopイベント汎用的な groupBy に対応し、件数上位 N 件のイベントグループを取得します(デプロイ、設定、アラートなど)。コンテキストタグのないグループは "no_context" として含まれますevents_read
eventstimeseriesイベント時間単位または日単位の件数で、アラートの傾向を時間バケットごとに表示しますevents_read
eventsincidentsイベントトリガー/復旧のペアを使ってアラートをインシデントに重複排除しますevents_read
incidentslistインシデントインシデントを一覧表示しますincident_read
incidentsgetインシデントIDでインシデントを取得しますincident_read
incidentssearchインシデントインシデントを検索しますincident_read
incidentscreateインシデントインシデントを作成しますincident_write
incidentsupdateインシデントインシデントを更新しますincident_write
incidentsdeleteインシデントインシデントを削除しますincident_write
sloslistSLOSLO を一覧表示します。各項目には query、monitorIds、monitorTags、groups、UI の url が含まれ、取得 → 編集 → 更新の一連の操作で定義フィールドが保持されます。slos_read
slosgetSLOIDで SLO を取得します(list と同じ形式です)。slos_read
sloscreateSLOSLO を作成しますslos_write
slosupdateSLOSLO を更新しますslos_write
slosdeleteSLOSLO を削除しますslos_write
sloshistorySLOSLO の履歴を取得しますslos_read
syntheticslistSyntheticSynthetic テストを一覧表示しますsynthetics_read
syntheticsgetSyntheticPublic ID でテストを取得しますsynthetics_read
syntheticscreateSyntheticテストを作成しますsynthetics_write
syntheticsupdateSyntheticテストを更新しますsynthetics_write
syntheticsdeleteSyntheticテストを削除しますsynthetics_write
syntheticstriggerSyntheticテスト実行をトリガーしますsynthetics_write
syntheticsresultsSyntheticテスト結果を取得しますsynthetics_read
downtimeslistダウンタイムダウンタイムを一覧表示しますmonitors_downtime
downtimesgetダウンタイムIDでダウンタイムを取得しますmonitors_downtime
downtimescreateダウンタイムダウンタイムを作成しますmonitors_downtime
downtimesupdateダウンタイムダウンタイムを更新しますmonitors_downtime
downtimescancelダウンタイムダウンタイムをキャンセルしますmonitors_downtime
downtimeslistByMonitorダウンタイムモニターのダウンタイムを一覧表示しますmonitors_downtime
hostslistインフラストラクチャホストを一覧表示しますhosts_read
hoststotalsインフラストラクチャホストの合計数を取得しますhosts_read
hostsmuteインフラストラクチャホストをミュートしますhosts_read
hostsunmuteインフラストラクチャホストのミュートを解除しますhosts_read
rumapplicationsRUMRUM アプリケーションを一覧表示しますrum_read
rumeventsRUMRUM イベントを検索しますrum_read
rumaggregateRUMRUM データを集計しますrum_read
rumperformanceRUMCore Web Vitals(LCP、FCP、CLS、FID、INP)を取得しますrum_read
rumwaterfallRUMリソース/アクション/エラーを含むセッションのタイムラインを取得しますrum_read
securityrulesセキュリティセキュリティルールを一覧表示しますsecurity_monitoring_rules_read
securitysignalsセキュリティセキュリティシグナルを検索しますsecurity_monitoring_signals_read
securityfindingsセキュリティセキュリティ検出結果を一覧表示しますsecurity_monitoring_findings_read
notebookslistノートブックノートブックを一覧表示しますnotebooks_read
notebooksgetノートブックIDでノートブックを取得しますnotebooks_read
notebookscreateノートブックノートブックを作成しますnotebooks_write
notebooksupdateノートブックノートブックを更新しますnotebooks_write
notebooksdeleteノートブックノートブックを削除しますnotebooks_write
userslist管理ユーザーを一覧表示しますuser_access_read
usersget管理IDでユーザーを取得しますuser_access_read
teamslist管理チームを一覧表示しますteams_read
teamsget管理IDでチームを取得しますteams_read
teamsmembers管理チームメンバーを一覧表示しますteams_read
tagslistインフラストラクチャすべてのタグを一覧表示しますhosts_read
tagsgetインフラストラクチャホストのタグを取得しますhosts_read
tagsaddインフラストラクチャホストにタグを追加しますhosts_read
tagsupdateインフラストラクチャホストのタグを更新しますhosts_read
tagsdeleteインフラストラクチャホストのタグを削除しますhosts_read
usagesummary課金使用状況の概要usage_read
usagehosts課金ホストの使用状況usage_read
usagelogs課金ログの使用状況usage_read
usagecustom_metrics課金カスタムメトリクスの使用状況usage_read
usageindexed_spans課金インデックス化されたスパンの使用状況usage_read
usageingested_spans課金取り込まれたスパンの使用状況usage_read
authvalidate認証API キーと App キーの有効性をテストします—

制限の制御

AI アシスタントはクエリ制限を完全に制御できます。MCP_DEFAULT_* 環境変数は、AI が制限を指定しない場合に使用されるフォールバック値を設定するだけで、AI がリクエストできる上限を設定するものではありません。

ツールデフォルトパラメーター説明
ログ200limit返すログ行数
メトリクス(時系列)1000pointLimit系列ごとのデータポイント数(解像度を制御)
一般的なツール50limit返す結果数

ツールレベルのトークン削減機能(ログの compact: true、sample: "diverse" | "spread" | "first"、フィールド投影、診断)は、各ツールの MCP 説明に記載され、呼び出し時に AI が選択します。

注目すべき動作

知っておくと役立つパターンをいくつか紹介します。その他の動作は、ツールの説明から AI が確認できます。

  • 再通知と実際の発報。 monitors top と source:alert を指定した events search は、Datadog が発行する再通知(モニターが Alert 状態の間、renotify_interval ごとに 1 回)をすべてカウントします。実際の状態遷移を取得するには、monitors history(デフォルトは transitionType: ["alert","alert recovery"])を使うか、events search に transitionType を渡します。
  • DST に対応した時間バケット。 events histogram は Intl.DateTimeFormat を使い、任意の IANA timezone における hour_of_day/day_of_week/day_of_month ごとにバケットを作成します。基になる検索結果をカーソルでページングします。上限は MCP_MAX_EVENTS_HISTOGRAM(デフォルト 5000)で制御され、上限を超えると bucketCountIncomplete と nextCursor が返されます。
  • 作成前に検証。 dry_run: true を指定した monitors create は、保存する代わりに /api/v1/monitor/validate を呼び出します。--read-only モードでも使用できます。
  • モニターテンプレートのプレビュー。 monitors preview は context ペイロードに対して通知をレンダリングします。変数置換に加え、Datadog のドキュメントに記載された 6 つの条件式(is_alert、is_warning、is_no_data、is_recovery、is_alert_to_warning、is_warning_to_alert)と、タグ条件式 {{#is_match "tag" "val"}}(部分一致)および {{#is_exact_match "tag" "val"}}(完全一致)に対応しています。^ による否定と、複数の比較値の OR 条件にも対応し、値は context.variables に対して解決されます(大文字と小文字を区別します)。{{#each}} とパーシャルを使うと EUNSUPPORTED_TEMPLATE_SYNTAX が発生します。
  • SLO の往復編集。 slos get は query、monitorIds、monitorTags、groups、UI の url を返すため、定義フィールドを失わずに編集して slos update に渡せます。
  • 相互相関。 logs(sample:"diverse") → dd.trace_id を取得 → traces(query:"trace_id:<id>") → metrics(query:"p95:trace.express.request{service:...}")(パーセンタイルには .duration のないルートメトリクスを使用)。

ディープリンク

各クエリのレスポンスには、設定済みの DD_SITE に対応した datadog_url フィールドが含まれます。対応するサイトは datadoghq.com(デフォルト)、.eu、us3/us5/ap1.datadoghq.com、ddog-gov.com です。logs、metrics、traces、events、monitors、rum、slos で利用できます。

貢献

貢献を歓迎します!提案、バグ報告、改善案があれば、お気軽に issue または pull request をお送りください。

ライセンス

このプロジェクトは Apache License, Version 2.0 の下でライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。