Datadog MCP Server について
Datadog MCP Server は、Datadog API を利用してインシデント管理やオブザーバビリティデータへのアクセスを提供する、コミュニティによって保守されている MCP サーバーです。インシデント、モニター、ログ、ダッシュボード、メトリクス、APM トレース、ホスト、RUM を対象とします。Datadog, Inc. との公式な提携や承認はありません。
主な機能
- 01インシデントの一覧表示と詳細取得
- 02モニターの状態取得とログ検索
- 03メトリクス、APM トレース、ダッシュボードの照会
- 04ホストの一覧表示、ミュートおよびダウンタイムの管理
- 05RUM アプリケーション、イベント、ページパフォーマンスの照会
活用シーン
- 01AI クライアントから Datadog のインシデントを確認し、対応を追跡する
- 02トラブルシューティング中にログとメトリクスを検索する
- 03ホストのメンテナンスに合わせてダウンタイムを設定または取り消す
MCP 対応
本プロジェクトは MCP サーバーであり、list_incidents、get_logs、query_metrics など約 20 のツールを MCP クライアントに公開して Datadog API へのアクセスを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Datadog MCP Server
免責事項:これはコミュニティによって保守されているプロジェクトであり、Datadog, Inc. と公式に提携しているものではなく、同社から承認やサポートを受けているものでもありません。この MCP サーバーは Datadog API を利用していますが、Model Context Protocol エコシステムの一環として、独立して開発されています。
Datadog API 用の MCP サーバーです。インシデント管理などを実現します。
機能
- オブザーバビリティツール:MCP サーバーを通じて、インシデント、モニター、ログ、ダッシュボード、メトリクスなど、Datadog の主要な監視機能を活用できます。
- 拡張性の高い設計:Datadog API を簡単に追加統合できるよう設計されており、今後の機能拡張にもシームレスに対応できます。
ツール
-
list_incidents- Datadog のインシデント一覧を取得します。
- 入力:
filter(任意の文字列):インシデントのフィルターパラメーター(例:ステータス、優先度)。pagination(任意のオブジェクト):ページサイズやオフセットなどのページネーション情報。
- 戻り値:Datadog のインシデントと関連メタデータの配列。
-
get_incident- 特定の Datadog インシデントの詳細情報を取得します。
- 入力:
incident_id(文字列):詳細を取得するインシデント ID。
- 戻り値:インシデントの詳細情報(タイトル、ステータス、タイムスタンプなど)。
-
get_monitors- Datadog モニターのステータスを取得します。
- 入力:
groupStates(任意の配列):フィルターするステータス(例:alert、warn、no data、ok)。name(任意の文字列):名前でフィルターします。tags(任意の配列):タグでフィルターします。
- 戻り値:モニターデータとステータスの概要。
-
get_logs- Datadog のログを検索して取得します。
- 入力:
query(文字列):Datadog のログクエリ文字列。from(数値):エポック秒で指定する開始時刻。to(数値):エポック秒で指定する終了時刻。limit(任意の数値):返すログの最大数(デフォルトは 100)。
- 戻り値:一致したログの配列。
-
list_dashboards- Datadog のダッシュボード一覧を取得します。
- 入力:
name(任意の文字列):ダッシュボードを名前でフィルターします。tags(任意の配列):ダッシュボードをタグでフィルターします。
- 戻り値:URL 参照を含むダッシュボードの配列。
-
get_dashboard- Datadog の特定のダッシュボードを取得します。
- 入力:
dashboard_id(文字列):取得するダッシュボードの ID。
- 戻り値:タイトルやウィジェットなどのダッシュボードの詳細。
-
query_metrics- Datadog のメトリクスデータを取得します。
- 入力:
query(文字列):メトリクスのクエリ文字列。from(数値):エポック秒で指定する開始時刻。to(数値):エポック秒で指定する終了時刻。
- 戻り値:指定した期間のメトリクスデータ。
-
list_traces- Datadog から APM トレースの一覧を取得します。
- 入力:
query(string):Datadog APM トレースのクエリ文字列。from(number):エポック秒での開始時刻。to(number):エポック秒での終了時刻。limit(optional number):返すトレースの最大数(デフォルトは 100)。sort(optional string):トレースの並び順(デフォルトは '-timestamp')。service(optional string):サービス名で絞り込みます。operation(optional string):操作名で絞り込みます。
- 戻り値:Datadog APM から取得した、条件に一致するトレースの配列。
-
list_hosts- Datadog からホストの一覧を取得します。
- 入力:
filter(optional string):検索結果を絞り込むフィルター文字列。sort_field(optional string):ホストを並べ替えるフィールド。sort_dir(optional string):並び順(asc/desc)。start(optional number):ページネーションの開始位置。count(optional number):返すホストの最大数(最大:1000)。from(optional number):この UNIX タイムスタンプ以降のホストを検索します。include_muted_hosts_data(optional boolean):ミュートされたホストのステータスと有効期限を含めます。include_hosts_metadata(optional boolean):ホストのメタデータ(バージョン、プラットフォームなど)を含めます。
- 戻り値:名前、ID、エイリアス、アプリ、ミュート状態などの詳細を含むホストの配列。
-
get_active_hosts_count- Datadog でアクティブなホストの合計数を取得します。
- 入力:
from(optional number):アクティブなホストの合計数を取得する期間を秒数で指定します(デフォルトは 2h)。
- 戻り値:アクティブで稼働中のホストの合計数。
-
mute_host- Datadog のホストをミュートします。
- 入力:
hostname(string):ミュートするホストの名前。message(optional string):このホストのミュートに関連付けるメッセージ。end(optional number):ミュートを終了する POSIX タイムスタンプ。override(optional boolean):true の場合、ホストがすでにミュートされていれば、既存の終了時刻を置き換えます。
- 戻り値:成功ステータスと確認メッセージ。
-
unmute_host- Datadog のホストのミュートを解除します。
- 入力:
hostname(string):ミュートを解除するホストの名前。
- 戻り値:成功ステータスと確認メッセージ。
-
list_downtimes- Datadog のスケジュール済みダウンタイムの一覧を取得します。
- 入力:
currentOnly(optional boolean):true の場合、現在アクティブなダウンタイムのみを返します。monitorId(optional number):モニター ID で絞り込みます。
- 戻り値:スコープ、モニター情報、スケジュールなどの詳細を含む、スケジュール済みダウンタイムの配列。
-
schedule_downtime- Datadog でダウンタイムをスケジュールします。
- 入力:
scope(string):ダウンタイムを適用するスコープ(例:'host:my-host')。start(optional number):ダウンタイムの開始時刻を示す UNIX タイムスタンプ。end(optional number):ダウンタイムの終了時刻を示す UNIX タイムスタンプ。message(optional string):ダウンタイムに含めるメッセージ。timezone(optional string):ダウンタイムのタイムゾーン(例:'UTC'、'America/New_York')。monitorId(optional number):ミュートするモニターの ID。monitorTags(optional array):フィルタリングに使用するモニタータグのリスト。recurrence(optional object):ダウンタイムの繰り返し設定。type(string):繰り返しの種類('days'、'weeks'、'months'、'years')。period(number):繰り返しの間隔(1 以上)。weekDays(optional array):週単位で繰り返す場合の曜日。until(optional number):繰り返しの終了時刻を示す UNIX タイムスタンプ。
- 戻り値:ID やアクティブ状態など、スケジュール済みダウンタイムの詳細。
-
cancel_downtime- Datadog でスケジュール済みのダウンタイムをキャンセルします。
- 入力:
downtimeId(number):キャンセルするダウンタイムの ID。
- 戻り値:ダウンタイムのキャンセル確認。
-
get_rum_applications- 組織内のすべての RUM アプリケーションを取得します。
- 入力:なし。
- 戻り値:RUM アプリケーションのリスト。
-
get_rum_events- Datadog から RUM イベントを検索して取得します。
- 入力:
query(string):Datadog RUM クエリ文字列。from(number):開始時刻(エポック秒)。to(number):終了時刻(エポック秒)。limit(optional number):返すイベントの最大数(デフォルト:100)。
- 戻り値:RUM イベントの配列。
-
get_rum_grouped_event_count- 指定したディメンションで RUM イベントを検索、グループ化し、件数を集計します。
- 入力:
query(optional string):RUM 検索に追加するクエリフィルター(デフォルト:"\*")。from(number):開始時刻(エポック秒)。to(number):終了時刻(エポック秒)。groupBy(optional string):結果をグループ化するディメンション(デフォルト:"application.name")。
- 戻り値:グループ化されたイベント件数。
-
get_rum_page_performance- RUM データからページ(ビュー)のパフォーマンスメトリクスを取得します。
- 入力:
query(optional string):RUM 検索に追加するクエリフィルター(デフォルト:"\*")。from(number):開始時刻(エポック秒)。to(number):終了時刻(エポック秒)。metricNames(array of strings):取得するメトリクス名の配列(例:'view.load_time'、'view.first_contentful_paint')。
- 戻り値:各メトリクスの平均値、最小値、最大値、件数を含むパフォーマンスメトリクス。
-
get_rum_page_waterfall- アプリケーション名とセッション ID で絞り込んだ RUM ページ(ビュー)のウォーターフォールデータを取得します。
- 入力:
applicationName(string):イベントを絞り込むアプリケーション名。sessionId(string):イベントを絞り込むセッション ID。
- 戻り値:指定したアプリケーションとセッションのウォーターフォールデータ。
セットアップ
Datadog 認証情報
この MCP サーバーを使用するには、有効な Datadog API 認証情報が必要です。
DATADOG_API_KEY:Datadog API キーDATADOG_APP_KEY:Datadog アプリケーションキーDATADOG_SITE(optional):Datadog サイト(例:datadoghq.eu)DATADOG_SUBDOMAIN(optional):Datadog サブドメイン(例:<your-subdomain>.datadoghq.com)DATADOG_STORAGE_TIER(optional):v2 ログ検索のログストレージ階層。サポートされている値:indexes、online-archives、flex。
サーバーを実行する前に、環境変数としてエクスポートしてください。
export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site" # Optional
export DATADOG_SUBDOMAIN="your_datadog_subdomain" # Optional
export DATADOG_STORAGE_TIER="flex" # Optional: indexes | online-archives | flex
インストール
Smithery 経由でのインストール
Smithery 経由で Claude Desktop 用 Datadog MCP Server を自動的にインストールするには:
npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude
手動インストール
pnpm install
pnpm build
pnpm watch # for development with auto-rebuild
Claude Desktop での使用方法
Claude Desktop で使用するには、claude_desktop_config.json に以下を追加してください。
MacOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
{
"mcpServers": {
"datadog": {
"command": "/path/to/mcp-server-datadog/build/index.js",
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>", // Optional
"DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
"DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
}
}
}
}
または、npx で指定します。
{
"mcpServers": {
"mcp-server-datadog": {
"command": "npx",
"args": ["-y", "@winor30/mcp-server-datadog"],
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>", // Optional
"DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
"DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
}
}
}
}
デバッグ
MCP サーバーは標準入出力を介して通信するため、デバッグが難しい場合があります。MCP Inspector の使用をおすすめします。次のコマンドでインスペクターを実行できます。
npm run inspector
インスペクターから、ブラウザーで開いてログを確認したり、リクエストを手動で送信したりできる URL が表示されます。
コントリビューション
コントリビューションを歓迎します!ご提案、バグ報告、改善案がありましたら、お気軽に Issue またはプルリクエストを作成してください。
ライセンス
このプロジェクトはApache License, Version 2.0 の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。