Datadog と MCP Apps 周辺のサンプル/ツールをまとめた monorepo です。
主な内容は次の2つです。
- Datadog Logs を調査する MCP サーバー
- ローカル PC のメトリクスとログを Datadog に送る Node.js サンプル
| Package | Path | 用途 |
|---|---|---|
@kajidog/mcp-datadog-logs |
apps/mcp-datadog-logs |
Datadog Logs を MCP から検索/集計/可視化する公開 npm package |
@kajidog/datadog-pc-telemetry-sample |
apps/datadog-pc-telemetry-sample |
ローカル PC のメトリクスとログを Datadog に送るサンプル |
@kajidog/investigator-ui |
packages/investigator-ui |
MCP Apps 用 UI。サーバーに単一 HTML として同梱 |
@kajidog/investigation-shared |
packages/shared |
UI と MCP サーバー間で共有する型 |
ローカル PC から Datadog に次のデータを送る最小サンプルです。
v2.MetricsApi.submitMetricsによるカスタムメトリクス送信v2.LogsApi.submitLogによるログ送信- CPU 使用率、メモリ使用量、load average、uptime、Node.js process memory などの収集
実行方法:
cd apps/datadog-pc-telemetry-sample
cp .env.example .env.env に Datadog の API key と site を設定します。Japan site の場合は ap1.datadoghq.com です。
DD_API_KEY=your-datadog-api-key
DD_SITE=ap1.datadoghq.com
DD_ENV=dev
DD_SERVICE=datadog-pc-telemetry-sample送信せずに payload を確認:
npm run dry-runDatadog に1回送信:
npm run dev10秒ごとに60回送信:
npm run dev -- --samples=60 --interval=10詳細は apps/datadog-pc-telemetry-sample/README.md を見てください。
Datadog Logs を MCP クライアントから調査するためのサーバーです。
MCP Apps 対応クライアントでは、タイムライン・ファセット・メッセージパターン付きの調査画面が開きます(スクリーンショットはすべてモックデータ)。
ダークモードにも対応しており、ログ行をクリックすると raw ログの JSON 詳細を展開できます。
| ダークモード | ログ詳細(raw JSON) |
|---|---|
![]() |
![]() |
エクスポートされる HTML レポートは自己完結の単一ファイルで、テーマ切替(Auto / Light / Dark)とブラウザ単体でのフィルタ操作に対応しています。
| HTML レポート(ライト) | HTML レポート(ダーク) |
|---|---|
![]() |
![]() |
できること:
- ログ検索・集計 — モデル向けのコンパクトなテキスト出力。ファセット別カウントや、
interval指定でファセット別の時系列集計 - 横断調査 — 調査ツールに
metricsQueriesを渡すと、ログと同じ時間窓のイベント(デプロイ・アラート)とメトリクスを一括取得し、タイムラインに重畳表示。ログ行から抽出した trace_id は「トレース候補」として要約に提示され、datadog_get_traceにそのままピボットできる(events_read/timeseries_queryが無い場合は該当データだけスキップ) - メトリクスクエリ —
datadog_query_metricsでメトリクス時系列(例avg:system.cpu.user{service:web} by {host})を系列ごとの統計値+ダウンサンプル値のコンパクトなテキストで取得 - ヘッドレス調査 — 調査結果(ログ行・タイムライン・ファセット・イベント・メトリクス)はサーバー側セッションに保持し、モデルには要約と
viewUUIDだけを返すのでコンテキストを圧迫しない - セッション掘り下げ —
datadog_get_session_logsで保持済みの行を Datadog API を呼ばずに絞り込み(status / service / パターン#N/ 部分一致)、row=[N]やlogIdで生ログ1件を取得 - MCP Apps UI での調査画面 — タイムラインチャート(イベントマーカー重畳)、イベントリスト、メトリクスパネル、ファセットサイドバー、メッセージパターンパネル、ログテーブル(trace_id チップ付き。クリックで絞り込み、UI からクエリ・期間を変えて再実行)
- メッセージパターン分析 — ログメッセージをテンプレート(
Payment failed for order <*>)に自動クラスタリングし、要約・UI・レポートに表示 - エクスポート — 自己完結の HTML レポート、または絞り込み済みログ行の CSV / JSON 出力
- セッション永続化 — 調査セッションをローカルにキャッシュし、サーバー再起動後も
viewUUIDを引き続き利用可能
調査で使う findings は Markdown として UI と HTML レポートに描画されます。また from/to に絶対時刻を渡す場合はタイムゾーン付き ISO 8601(Z や +09:00)が必須です。
公開 package:
npx -y @kajidog/mcp-datadog-logs必要な環境変数:
DD_API_KEYDD_APP_KEYDD_SITE
Japan site の場合、MCP 側も必ず DD_SITE=ap1.datadoghq.com を指定してください。DD_SITE を省略すると datadoghq.com に送るため、AP1 の key では 401 になります。
詳細は apps/mcp-datadog-logs/README.md を見てください。
Datadog Application Key に必要な権限は docs/datadog-permissions.md にまとめています。
pnpm install
pnpm build
pnpm test
pnpm lint個別パッケージの実行例:
pnpm -C apps/datadog-pc-telemetry-sample dry-run
pnpm -C apps/datadog-pc-telemetry-sample dev
pnpm --filter @kajidog/investigator-ui dev
DD_API_KEY=... DD_APP_KEY=... pnpm --filter @kajidog/mcp-datadog-logs devpnpm build
DD_SITE=ap1.datadoghq.com DD_API_KEY=... DD_APP_KEY=... npx @modelcontextprotocol/inspector node apps/mcp-datadog-logs/dist/index.js@kajidog/mcp-datadog-logs の公開は changesets で管理しています。
pnpm changesetmain に merge すると Release workflow が version PR を作成し、その PR を merge すると npm に publish されます。publish には repository secret の NPM_TOKEN が必要です。
version PR を merge するときは、server package の src/version.ts と package.json の version が揃っていることを確認してください。




