Datadog MCP サーバーのWrite 権限を制御する方法を検証してみた
こんにちは、なおにしです。
Datadog MCP サーバーを利用する上で権限周りの検討を行う機会がありましたのでご紹介します。
はじめに
Datadog の公式MCP サーバーが2026/3/9に一般提供(GA)されています。
MCP サーバーで使用されるツールセットは公式ドキュメントにまとまっており、ツールセットの一覧を抜粋すると以下のとおりです。
| ツールセット名 | 説明 |
|---|---|
core |
ログ、メトリクス、トレース、ダッシュボード、モニター、インシデント、ホスト、サービス、イベント、ノートブックのデフォルトツールセット |
alerting |
モニターの検証、モニターグループの検索、モニターテンプレートの取得ツール |
apm |
APMトレース分析、スパン検索、Watchdogインサイト、パフォーマンス調査ツール |
cases |
ケース管理(作成・検索・更新)、プロジェクト管理、Jiraイシュー連携ツール |
dbm |
Database Monitoring連携ツール |
ddsql |
(プレビュー)DDSQL(インフラリソース、ログ、メトリクス、RUM、スパン等に対応したSQL方言)によるDatadogデータクエリツール |
error-tracking |
Error Tracking連携ツール |
feature-flags |
フィーチャーフラグの作成・一覧・更新、環境管理ツール |
llmobs |
LLM ObservabilityスパンおよびExperimentの検索・分析ツール |
product-analytics |
Product Analyticsクエリ連携ツール |
networks |
Cloud Network MonitoringおよびNetwork Device Monitoring分析ツール |
onboarding |
Datadogセットアップ・設定のガイド付きエージェントオンボーディングツール |
security |
コードセキュリティスキャン、セキュリティシグナル・セキュリティファインディング検索ツール |
software-delivery |
Software Delivery(CI VisibilityおよびTest Optimization)連携ツール |
synthetics |
Datadog Syntheticテスト連携ツール |
workflows |
Workflow Automationツール(ワークフローの一覧・検査・実行・設定、エージェント利用設定を含む) |
各ツールセット内で利用可能なツールのそれぞれで必要な権限についても、同ドキュメント内に記載されています。そちらを確認すると分かるのですが、一部Write 権限が必要な操作も含まれています。
Datadog MCP サーバーでは、実際に触ってみると例えばモニターの作成はドラフトまでしかできないなど、内部的にはガードレールが考えられており、冒頭の公式アナウンス内でもその辺りの考慮はなされている旨の記載があるので、Write 権限があるからといって業務影響のある操作(設定をいきなり削除する等)が実行されるようなことは基本的には無いと思います。
とはいえ、役割分担等の兼ね合いからWrite 権限に相当する操作が意図せず実行される可能性がある状況そのものがNG、それでもMCP サーバーを使ってDatadog の管理は効率化したい、というような需要もあるかと思います。
という前提で、Datadog のMCP サーバーで必要となる権限について考えてみます。
Datadog MCP サーバーで必要な権限
ドキュメントには以下のように記載されています。
(和訳)
MCP Serverツールには、以下のDatadogユーザーロール権限が必要です。
許可 必要 mcp_readDatadogからデータを読み取るツール(例えば、モニターのクエリ、ログの検索、ダッシュボードの取得など) mcp_writeDatadogでリソースを作成または変更するツール(例:モニターの作成、ホストのミュート) ユーザーは、
mcp_readまたはmcp_writeに加えて、基盤リソースに対する標準的な Datadog 権限も必要です。例えば、モニターを読み取る MCP ツールを使用するには、mcp_readと モニターの読み取り権限の両方が必要です。リソースレベルの権限の完全なリストについては、Datadog ロール権限を参照してください。
上記を踏まえ、Datadog MCP サーバーではmcp_read または mcp_write に加えてどのような権限が必要なのかを確認します。
先ほどのドキュメントでは各ツールに必要な権限が記載されてはいますが、ツールごとに個別の権限名を列挙する形ではなくアセット名でのパターンであったりorで記載されていたり(例:Permissions Required: Cloud Cost Management Read or Metrics)するので、MCP サーバーを利用する上で要求される権限は具体的にどれなのかという形で進めます。
Datadog のMCP サーバーではドキュメントに記載のとおりOAuth 2.0 による認証が標準で、それができない時にAPI キーとアプリケーションキーの組み合わせを利用するとなっています。
(和訳)
MCPサーバーは認証にOAuth 2.0を利用しています。OAuthフローを完了できない場合(例えばサーバー上の場合)、DD_API_KEYとDD_APPLICATION_KEYのHTTPヘッダーとしてDatadogのAPIキーとアプリケーションキーを提供できます。
API キーとアプリケーションキーを利用する場合は、アプリケーションキーに紐付くユーザーのロールで権限を適切に選択したり、アプリケーションキーのスコープで許可される操作を制限できます。もちろん、どの権限/どのスコープを対象にするのか選択する必要があります。スコープについては以下にまとまっています。
(和訳)
スコープは、組織のDatadogデータへのアプリケーションのアクセス権限を制限および定義できる認証メカニズムです。ユーザーまたはサービスアカウントに代わってデータへのアクセス権限が付与されたアプリケーションは、割り当てられたスコープで明示的に許可された情報のみにアクセスできます。
一方で、OAuth 認証では対象のアプリケーション(今回であればMCP サーバー)で要求されるスコープ一式がMobile and Third-Party Accessのページに登録され、そのアプリケーションに対して利用するユーザーが紐付きます。
Datadog MCP サーバーの場合は、以下のようにDatadog MCP w/Proxyが登録されます。

上記を選択すると以下のように要求されるスコープ一覧が表示されます。このスコープはAdmin ユーザーでも追加/削除といった編集ができません。可能な操作としては、アプリケーション自体をDatadog 組織として有効/無効にするか、有効なアプリケーション内に紐づいているユーザーを削除する(ただし、ユーザーに権限があればアプリケーションを再認証可能)だけです。

というわけで、具体的に必要な権限については上記のMCP サーバーに要求されるスコープ一覧から判別できそうです。
ロールに付与可能な権限の一覧については以下にまとまっており、各権限名に括弧書きでスコープ名が記載されています(正確には、括弧書きの中身がスコープ名であるとドキュメントに明記されている訳ではないです。後述します)。
要求されるスコープに対応する権限名と、その権限が付与されているマネージドロールを整理した上で、Read/Write で分けて表にすると2026年4月6日時点では以下のとおりです。一覧化には生成AI を利用しているので、説明列については参考程度に留めていただければと思います。また、Datadog MCP サーバーは公開されて間もないこともあり、必要なスコープは適宜追加されていることにご注意ください。
Read スコープ一覧(47件)
| # | カテゴリ | スコープ名 | 対応する権限名 | ロール(※1) | 説明 |
|---|---|---|---|---|---|
| 1 | Access Management | user_access_read |
(※2) | (※2) | ユーザー・ロール・設定の閲覧 |
| 2 | APM | apm_read |
APM Read | Read Only | APM・Trace Analyticsの読み取り・クエリ |
| 3 | APM | apm_service_catalog_read |
Service Catalog Read | Read Only | サービスカタログ・定義の閲覧 |
| 4 | APM | apm_api_catalog_read |
API Catalog Read | Read Only | APIカタログ・定義の閲覧 |
| 5 | APM | continuous_profiler_read |
Continuous Profiler Read | Read Only | Continuous Profilerデータの閲覧 |
| 6 | APM | debugger_read |
Dynamic Instrumentation Read | Read Only | Dynamic Instrumentation設定の閲覧 |
| 7 | App Builder & Workflow Automation | workflows_read |
Workflows Read | Read Only | ワークフローの閲覧 |
| 8 | App Builder & Workflow Automation | connections_read |
Connections Read | Read Only | 接続の一覧・閲覧 |
| 9 | Assistant | assistant_access |
Assistant Access | Read Only | Datadog Assistantへのアクセス |
| 10 | Bits AI | bits_investigations_read |
Bits Investigations Read | Read Only | Bits調査の閲覧 |
| 11 | Case and Incident Management | cases_read |
Cases Read | Read Only | ケースの閲覧 |
| 12 | Case and Incident Management | incident_read |
Incidents Read | Read Only | インシデントの閲覧 |
| 13 | Cloud Cost Management | cloud_cost_management_read |
Cloud Cost Management Read | Read Only | Cloud Costデータの閲覧 |
| 14 | Cloud Network Monitoring | network_connections_read |
Network Connections Read | Read Only | Cloud Network接続の読み取り |
| 15 | Cloud Security Platform | security_monitoring_signals_read |
Security Signals Read | Read Only | Security Signalsの閲覧 |
| 16 | Cloud Security Platform | security_monitoring_findings_read |
Security Monitoring Findings Read | Standard | Findings(誤設定・IDリスク)の閲覧 |
| 17 | Compliance | audit_logs_read |
Audit Trail Read | Admin | 監査ログの閲覧 |
| 18 | Cross-Product Features | hosts_read |
(※2) | (※2) | ホスト一覧と属性の閲覧 |
| 19 | Cross-Product Features | timeseries_query |
(※2) | (※2) | 複数プロダクト横断のデータクエリ |
| 20 | Dashboards | dashboards_read |
Dashboards Read | Read Only | ダッシュボードの閲覧 |
| 21 | Database Monitoring | dbm_read |
Database Monitoring Read | Read Only | Database Monitoringデータの閲覧 |
| 22 | Error Tracking | error_tracking_read |
Error Tracking Read | Read Only | Error Trackingデータの閲覧 |
| 23 | Events | events_read |
(※2) | (※2) | イベントデータの読み取り |
| 24 | Feature Flags | feature_flag_environment_config_read |
Feature Flag Environment Read | Read Only | Feature Flag環境設定の閲覧 |
| 25 | Feature Flags | feature_flag_config_read |
Feature Flag Read | Read Only | Feature Flag設定の閲覧 |
| 26 | Infrastructure | cloudcraft_read |
Cloudcraft Read | Read Only | Cloudcraftインフラ図の閲覧 |
| 27 | Integrations | integrations_read |
Integrations Read | Standard | インテグレーション設定の閲覧 |
| 28 | LLM Observability | llm_observability_read |
LLM Observability Read | Read Only | LLM Observabilityの閲覧 |
| 29 | Log Management | logs_read_index_data |
Logs Read Index Data | Read Only | ログインデックスデータの読み取り |
| 30 | Log Management | logs_read_data |
Logs Read Data | Read Only | ログデータの読み取り |
| 31 | MCP | mcp_read |
MCP Read | Read Only | MCPサーバー経由のデータ読み取り |
| 32 | Metrics | metrics_read |
(※2) | (※2) | カスタムメトリクスの閲覧 |
| 33 | Monitors | monitors_read |
Monitors Read | Read Only | モニターの閲覧 |
| 34 | Network Device Monitoring | ndm_devices_read |
NDM Read | Read Only | NDMデータの読み取り |
| 35 | Network Device Monitoring | ndm_device_config_read |
NDM Device Config Read | Admin | NDMデバイス設定の読み取り |
| 36 | Notebooks | notebooks_read |
Notebooks Read | Read Only | ノートブックの閲覧 |
| 37 | Real User Monitoring | rum_apps_read |
RUM Apps Read | Read Only | RUMアプリケーションデータの閲覧 |
| 38 | Real User Monitoring | rum_session_replay_read |
RUM Session Replay Read | Read Only | Session Replayの閲覧 |
| 39 | Reference Tables | reference_tables_read |
Reference Tables Read | Read Only | Reference Tablesの閲覧 |
| 40 | Service Level Objectives | slos_read |
SLOs Read | Read Only | SLO・ステータス補正の閲覧 |
| 41 | Sheets | sheets_read |
Sheets Read | Read Only | Sheetsの閲覧 |
| 42 | Software Delivery | ci_visibility_read |
CI Visibility Read | Read Only | CI Visibilityの閲覧 |
| 43 | Software Delivery | code_coverage_read |
Code Coverage Read | Read Only | Code Coverageデータの閲覧 |
| 44 | Software Delivery | test_optimization_read |
Test Optimization Read | Read Only | Test Optimizationの閲覧 |
| 45 | Synthetic Monitoring | synthetics_read |
Synthetics Read | Read Only | Syntheticテスト・結果の閲覧 |
| 46 | Synthetic Monitoring | synthetics_global_variable_read |
Synthetics Global Variable Read | Standard | Syntheticsグローバル変数の閲覧・利用 |
| 47 | Teams | teams_read |
(※2) | (※2) | チームデータの閲覧 |
Write スコープ一覧(20件)
| # | カテゴリ | スコープ名 | 対応する権限名 | ロール(※1) | 説明 |
|---|---|---|---|---|---|
| 1 | APM | debugger_write |
Dynamic Instrumentation Write | Admin | Dynamic Instrumentation設定の編集(変数キャプチャなし) |
| 2 | APM | debugger_capture_variables |
Dynamic Instrumentation Capture Variables | Admin | Dynamic Instrumentationプローブの作成・変更(変数キャプチャあり) |
| 3 | APM | debugger_write_pre_prod |
Dynamic Instrumentation Write Pre-Prod | Standard | Dynamic Instrumentation設定の編集(pre-prod環境向け) |
| 4 | App Builder & Workflow Automation | workflows_write |
Workflows Write | Standard | ワークフローの作成・編集・削除 |
| 5 | App Builder & Workflow Automation | workflows_run |
Workflows Run | Standard | ワークフローの実行 |
| 6 | App Builder & Workflow Automation | on_prem_runner_use |
Private Action Runner Contribute | Standard | Private Action Runnerのアタッチ |
| 7 | App Builder & Workflow Automation | connections_resolve |
Connections Resolve | Standard | コネクションの解決 |
| 8 | Bits AI | bits_investigations_write |
Bits Investigations Write | Standard | Bits調査の実行・設定 |
| 9 | Case and Incident Management | cases_write |
Cases Write | Standard | ケースの作成・更新 |
| 10 | Case and Incident Management | incident_write |
Incidents Write | Standard | インシデントの作成・閲覧・管理 |
| 11 | Dashboards | dashboards_write |
Dashboards Write | Standard | ダッシュボードの作成・変更 |
| 12 | Error Tracking | error_tracking_write |
Error Tracking Issue Write | Standard | Error Trackingイシューの編集 |
| 13 | Feature Flags | feature_flag_config_write |
Feature Flag Write | Standard | Feature Flag設定の編集 |
| 14 | LLM Observability | llm_observability_write |
LLM Observability Write | Standard | LLM Observabilityリソースの作成・更新・削除 |
| 15 | MCP | mcp_write |
MCP Write | Standard | MCPサーバー経由のデータ書き込み |
| 16 | Monitors | monitors_write |
Monitors Write | Standard | モニターの編集・削除・解決 |
| 17 | Notebooks | notebooks_write |
Notebooks Write | Standard | ノートブックの作成・変更 |
| 18 | Reference Tables | reference_tables_write |
Reference Tables Write | Standard | Reference Tablesの作成・変更 |
| 19 | Sheets | sheets_write |
Sheets Write | Standard | Sheetsの作成・変更 |
| 20 | Synthetic Monitoring | synthetics_write |
Synthetics Write | Standard | Syntheticテストの作成・編集・削除 |
※1 ロールの凡例:
- Admin = Datadog Admin Role
- Standard = Datadog Standard Role
- Read Only = Datadog Read Only Role
※ 2 Permissions list のドキュメントに該当スコープ名の記載がないもの(6件)
user_access_readhosts_readtimeseries_queryevents_readmetrics_readteams_read
上記についてはスコープの内容およびAccess Control のドキュメントに以下の記載もあることから、権限を明示的に付与していなくてもユーザーが暗黙的に持っている閲覧権限に相当していると捉えていますが、調べた限りではドキュメントにそのように明記されているわけではないことをご留意ください。
Users without any roles cannot use Datadog effectively, but still maintain limited access.
(和訳)ロールを持たないユーザーはDatadogを効果的に使用できないが、限定的なアクセスは維持される。
さらに補足ですが、先ほどのスコープのドキュメントには注意書きとして以下の内容がありました。
(和訳)
このページには、OAuthクライアントに割り当てることができる認証スコープのみが表示されます。スコープ付きアプリケーションキーに割り当て可能な権限の全リストについては、「Datadogロール権限」を参照してください。
- OAuthクライアント→ 認可スコープ(限定されたセット)のみを割り当てることができます。
- スコープ付きアプリケーションキー→ 任意のDatadog権限を割り当てることができます。
ですが、実際にDatadog MCP サーバーに必要なスコープを見ると、このドキュメントには記載の無いスコープ(mcp_readなど)が割り当てられており、それらはPermissions list のドキュメントには存在します。また、このドキュメントからのリンク先がPermissions list のドキュメントなので、権限名(Monitors Read など)の下にある括弧書きは、両ドキュメントに記載があるもの(monitors_readなど)からスコープ名を表していると類推できます。(このようにScopes とPermissions で用語もドキュメントも異なるのに、実質は同じようなものになっていて個人的には若干混乱してしまったため、備忘録的な意味合いで類推の過程を残しています)
というわけで、Datadog MCP サーバーの利用に必要なスコープと権限が確認できたので、続いてMCP サーバーによるアクセスをどのように制御するか考えます。
Write 権限を抑止するアプローチ
今回はWrite 権限のみを明示的に抑止するにはということに焦点を当てて確認します。
方針としては以下2つになるかと思います。
mcp_write権限をアタッチしないmcp_write権限をアタッチした上で特定操作(monitors_writeなど)の権限をアタッチしない
さらに、状況に応じて上記をどのような形で適用するのかを設計する必要があると思いますが、今回は上記それぞれを適用した場合の挙動を検証するまでに留めます。
適用方針については以下のような検討事項が出てくるかと思います。いずれのパターンでも、カスタムロールで制御する場合はAutomatically Receives Permissionsを設定した上でmcp_writeやその他の権限を取捨選択することで、効率的に管理できそうです。
OAuth 認証の場合
前述のとおり、OAuth 認証では専用のスコープセットが作成されるため、スコープの各項目を取捨選択することはできません。また、ブラウザでのユーザー認証操作が必要となることから、サービスアカウントを使用することもできません。
一方で、スコープセット自体はDatadog 管理となるため、必要なスコープの追加に自動で追従することが可能です。
従って、アプローチとしてはスコープセットに紐づくユーザーのロールにアタッチする権限でWrite を制限することになります。
普段使用しているDatadog ユーザーをそのまま流用するのであれば、mcp_write権限のみをアタッチしないようにカスタムロールを構成すれば良いかと思います。何らかの理由で既存ユーザーのカスタムロールを構成できない場合は、MCP サーバー用ユーザーを新規作成してDatadog Read Only Roleやその他権限を制限したカスタムロールをアタッチするやり方もあるかと思いますが、利用者ごとにユーザーを2つ管理することになります。
API キー/アプリケーションキーによる認証の場合
MCP サーバー用のアプリケーションキーを発行し、スコープまたはロールでWrite 権限を制御することができます。OAuth 認証と異なり、MCP サーバーが要求するスコープへの自動追従ができないため、アプリケーションキーのスコープで制御した場合はMCP サーバーが要求するスコープに変化があった際に、最新のスコープで実現可能な機能を利用したい場合は手動で対応が必要です。
また、ブラウザでのユーザー認証操作を必要としないため、MCP サーバー用のサービスアカウントを作成し、サービスアカウントに紐づくアプリケーションキーで権限を制御することも可能です。
やってみた
mcp_write権限をアタッチしない場合
普段はDatadog Admin Roleを使用しているけどMCP サーバーからWrite 操作は実行して欲しくない、という状況でOAuth 認証によるDatadog MCP サーバーの利用を試してみます。
まず、mcp_write権限を無効にしたカスタムロールを作成します。Datadog Admin Roleはマネージドロールなので編集はできませんが、クローンを作成することは可能なので、既存の権限がアタッチされたクローンを作成するところから始めます。

ロール名を変更し、Automatically Receives PermissionsにDatadog Admin Roleを指定します。こうすることで、今後Datadog Admin Roleに付与される新しい権限を今回作成するロールが自動的に受け取れるようになります。

Datadog Admin RoleにはデフォルトでMCP Write (mcp_write) が付与されているので、明示的に権限をデタッチします。

上記で作成したカスタムロールを付与したユーザーで、Datadog MCP サーバーのOAuth 認証を実行します。MCP サーバーはClaude Code から呼び出します。mcp_write権限がなくてもMCP サーバーの認証自体は成功しています。また、利用可能なツールは「42個」になっています。

例として、現在設定されているモニターの取得を指示してみると、以下のとおり問題なく取得できました。

続いて、新しいモニターの作成を指示すると、モニター作成用のツール自体が存在しない旨が出力されました。

先ほど作成したカスタムロールで、MCP Write (mcp_write) をアタッチしてMCP サーバーを再接続します。

再接続はClaude Code 上で実行可能です。

再接続後は以下のとおりです。利用可能なツールが「50個」に増えています。

どのツールが増えたのか聞いてみると以下のとおりでした。MCP Write (mcp_write) をアタッチしていない場合、Write 関連のツール自体が有効にならないことが分かります。

ちなみに、そのままモニター作成を指示すると、以下のとおりドラフト作成までがサポートされている範囲となります。

mcp_write権限をアタッチした上で特定操作(monitors_writeなど)の権限をアタッチしない場合
Datadog MCP サーバーで提供されるツールセットの内、特定ツールセット内の特定のWrite 権限だけは無効化したいという場合には、このパターンでのアプローチが必要になるかと思います。
先ほどカスタムロールでMCP Write (mcp_write) をアタッチしているので、同じカスタムロールで今度はMonitors Write (monitors_write) をデタッチしてみます。

MCP サーバーを再接続します。利用可能なツール数は「50個」のまま変わりませんでした。

改めて新しいモニターの作成を指示してみると、作成を試行するものの権限不足のエラーが発生して処理が停止されました。

権限不足ですぐに処理を停止してくれる場合は良いのですが、パラメーターの問題の可能性等を疑って処理を継続しようとする場合もあるので、トークンの消費を考えるとMCP Write (mcp_write) による制御で要件を十分満たすのであればそうした方が良さそうです。
まとめ
便利そうだけど本番影響があるか分からないから活用は慎重に、というような環境に対してDatadog MCP サーバーの活用を推進したい状況のため、権限周りを確認してみました。
本記事がどなたかのお役に立てれば幸いです。









