New Relic MCP について
New Relic MCPは、New Relicのオブザーバビリティプラットフォーム向けGo製MCPサーバーで、APM、ログ、アラート、ダッシュボードなどを扱う55個のツールを備えています。書き込み操作は既定で無効で、各ツールに安全性ポリシーのメタデータがあります。
主な機能
- 01オブザーバビリティ領域を網羅する55個のツール
- 02NRQLによるメトリクス、ログ、トレースの検索
- 03アラート、ダッシュボード、ワークフロー、通知の管理
- 04米国とEUのデータセンターに対応
- 05リスクメタデータ付きで書き込み操作は既定で無効
活用シーン
- 01アプリケーション性能と分散トレースの検索
- 02アラート違反の確認とポリシー管理
- 03ログとインフラメトリクスの検索
- 04ダッシュボード、ワークフロー、サービスレベル目標の作成
MCP 対応
このMCPサーバーは、単一のNerdGraph GraphQLエンドポイントを通じて、New Relicの検索・管理ツールをMCPクライアントに提供します。書き込みツールを使うには`-write-enabled`による明示的な有効化が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
New Relic MCP サーバー
New Relic のオブザーバビリティプラットフォーム向けに Go で実装された MCP(Model Context Protocol)サーバーです。APM、インフラストラクチャ、ログ、トレース、アラート、ダッシュボード、シンセティクス、ワークフロー、通知、サービスレベル、タグ、エンティティ、ワークロードに、単一の GraphQL エンドポイントを通じて包括的にアクセスできます。
概要
- 登録済みの MCP ツールは 55 個。NerdGraph API の全機能をカバーします
- 安全性を最優先した設計:すべてのツールに
EnforcerProfileメタデータ(リスク、影響、リソースコスト、PII フラグ、冪等性)が付与されており、MCP Bridge を介したポリシーの自動適用に利用できます - 書き込み保護:すべての変更ツールは
-write-enabledフラグで制御されます。デフォルトでは無効です - マルチリージョン:米国および EU のデータセンターをサポートします(
NEWRELIC_REGION=us|eu) - TDD に基づいて構築:すべてのツールで 80% 以上のテストカバレッジを達成しています
レジストリ
このサーバーは、次の MCP レジストリに公開されています。
- Smithery:
karldane/newrelic-mcp - MCP Registry:
io.github.karldane/newrelic-mcp
API アーキテクチャ
すべてのツールは、単一の NerdGraph エンドポイントと通信します。
| リージョン | エンドポイント |
|---|---|
| 米国(デフォルト) | https://api.newrelic.com/graphql |
| EU | https://api.eu.newrelic.com/graphql |
内部クエリヘルパーによって、レスポンスのスコープが決まります。
| ヘルパー | 返される値 | 用途 |
|---|---|---|
actorGraphQuery | data.actor.* | エンティティクエリ、アカウントをまたぐ NRQL |
nerdGraphQuery | data.actor.account.* | アカウントスコープのクエリ(アラート、ワークフローなど) |
rawGraphQuery | data.<mutationName> | すべての変更 |
executeNRQL | パース済みの NRQL 結果 | NRQL ベースのツール |
ツール
NRQL クエリ
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
nrql_query | 任意の NRQL クエリを実行します | actor.account.nrql | 中 | 読み取り |
APM とアプリケーション
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_applications | APM で監視されているすべてのアプリケーションを一覧表示します | actor.entitySearch (domain:APM, type:APPLICATION) | 低 | 読み取り |
get_apm_metrics | APM のパフォーマンスメトリクスを取得します | actor.account.nrql (FROM APMApplication) | 低 | 読み取り |
get_application_metrics | 特定のアプリの詳細なメトリクスを取得します | actor.account.nrql (FROM APMApplication) | 低 | 読み取り |
query_traces | 分散トレースをクエリします | actor.account.nrql (FROM Transaction) | 低 | 読み取り |
get_transaction_traces | トランザクショントレースの詳細を取得します | executeNRQL による NRQL | 低 | 読み取り |
get_trace_details | 特定のトレースの詳細を取得します | executeNRQL による NRQL | 低 | 読み取り |
アラートポリシーと条件
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_alerts | すべてのアラートポリシーを一覧表示します | actor.account.alerts.policiesSearch | 低 | 読み取り |
get_alert_policy | ID を指定して単一のアラートポリシーを取得します | actor.account.alerts.policy | 低 | 読み取り |
get_alert_conditions | ポリシーの条件を取得します | actor.account.alerts.alertConditionsSearch | 低 | 読み取り |
get_alert_violations | アクティブなアラート違反を取得します | actor.account.nrql(NRQL アラートクエリ) | 低 | 読み取り |
list_nrql_alert_conditions | ポリシーの NRQL 条件を一覧表示します | actor.account.alerts.nrqlConditionsSearch | 低 | 読み取り |
create_alert_policy | 新しいアラートポリシーを作成します | alertsPolicyCreate | 低 | 書き込み |
update_alert_policy | アラートポリシーを更新します | alertsPolicyUpdate | 低 | 書き込み |
delete_alert_policy | アラートポリシーを削除します | alertsPolicyDelete | 高 | 書き込み |
create_alert_condition | NRQL アラート条件を作成します | alertsNrqlConditionCreate | 中 | 書き込み |
acknowledge_alert_violation | アラート違反を確認済みにします | alertsViolationAcknowledge | 中 | 書き込み |
合成モニタリング
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_synthetic_monitors | すべての合成モニターを一覧表示します | actor.entitySearch (domain:SYNTH, type:MONITOR) | 低 | 読み取り |
get_synthetic_monitor | GUID で合成モニターを取得します | actor.entity (SyntheticMonitorEntityOutline) | 低 | 読み取り |
list_private_locations | プライベートロケーションを一覧表示します | actor.entitySearch (domain:SYNTH, type:PRIVATE_LOCATION) | 低 | 読み取り |
create_ping_monitor | シンプルな ping モニターを作成します | syntheticsCreateSimpleMonitor | 低 | 書き込み |
delete_synthetic_monitor | 合成モニターを削除します | syntheticsDeleteMonitor | 中 | 書き込み |
ダッシュボード
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_dashboards | すべてのダッシュボードを一覧表示します | actor.entitySearch (domain:DASH, type:DASHBOARD) | 低 | 読み取り |
get_dashboard | GUID でダッシュボードの完全な設定を取得します | actor.entity (DashboardEntity) | 低 | 読み取り |
get_dashboard_data | ダッシュボードウィジェットのデータを取得します | actor.entity (DashboardEntity) | 低 | 読み取り |
create_dashboard | 新しいダッシュボードを作成します | dashboardCreate | 低 | 書き込み |
update_dashboard | 既存のダッシュボードを更新します | dashboardUpdate | 低 | 書き込み |
delete_dashboard | ダッシュボードを削除します | dashboardDelete | 中 | 書き込み |
add_dashboard_widget | ダッシュボードにウィジェットを追加します | dashboardUpdate | 中 | 書き込み |
ログ
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
search_logs | Lucene 構文でログを検索します | actor.account.nrql (FROM Log) | 中 | 読み取り |
tail_logs | 最近のログエントリーをストリーミングします | actor.account.nrql (FROM Log) | 中 | 読み取り |
インフラストラクチャ
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
get_infrastructure_metrics | ホスト/コンテナーのメトリクスを取得します | actor.account.nrql (FROM SystemSample) | 低 | 読み取り |
アラートワークフロー (aiWorkflows)
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_workflows | アラート通知ワークフローを一覧表示します | actor.account.aiWorkflows.workflows | 低 | 読み取り |
get_workflow | ID でワークフローを取得します | actor.account.aiWorkflows.workflows (filter) | 低 | 読み取り |
create_workflow | 新しいアラートワークフローを作成します | aiWorkflowsCreateWorkflow | 低 | 書き込み |
update_workflow | ワークフローを更新します | aiWorkflowsUpdateWorkflow | 低 | 書き込み |
delete_workflow | ワークフローを削除します | aiWorkflowsDeleteWorkflow | 高 | 書き込み |
通知チャネルと宛先 (aiNotifications)
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_notification_channels | すべての通知チャネルを一覧表示します | actor.account.aiNotifications.channels | 低 | 読み取り |
list_destinations | 通知の宛先を一覧表示します | actor.account.aiNotifications.destinations | 低 | 読み取り |
create_slack_channel | Slack 通知チャネルを作成します | aiNotificationsCreateChannel (type:SLACK) | 低 | 書き込み |
create_email_channel | メール通知チャネルを作成します | aiNotificationsCreateChannel (type:EMAIL) | 低 | 書き込み |
delete_notification_channel | 通知チャネルを削除します | aiNotificationsDeleteChannel | 高 | 書き込み |
サービスレベル
| ツール | 説明 | GraphQL オペレーション | リスク | 影響 |
|---|---|---|---|---|
list_service_levels | エンティティの SLI を一覧表示します | actor.entity (... EntityInterfaceWithServiceLevel) | 低 | 読み取り |
create_service_level | SLO を含む SLI を作成します | serviceLevelCreate | 中 | 書き込み |
update_service_level | SLI の SLO 目標を更新します | serviceLevelUpdate | 低 | 書き込み |
タグ管理(タグ付け)
| ツール | 説明 | GraphQL 操作 | リスク | 影響 |
|---|---|---|---|---|
get_entity_tags | エンティティのすべてのタグを取得します | actor.entity.tags | Low | Read |
add_entity_tags | エンティティにタグを追加します | taggingAddTagsToEntity | Low | Write |
remove_entity_tags | エンティティからタグを削除します | taggingDeleteTagFromEntity | Med | Write |
replace_entity_tags | エンティティのすべてのタグを置き換えます | taggingReplaceTagsOnEntity | Med | Write |
エンティティ操作
| ツール | 説明 | GraphQL 操作 | リスク | 影響 |
|---|---|---|---|---|
search_entities | 高度なエンティティ検索 | actor.entitySearch (queryBuilder) | Low | Read |
delete_entity | GUID でエンティティを削除します | entityDelete | High | Write |
アカウント横断 NRQL
| ツール | 説明 | GraphQL 操作 | リスク | 影響 |
|---|---|---|---|---|
cross_account_nrql | 複数のアカウントにまたがって NRQL を実行します | actor.nrql (multi-account) | Med | Read |
ワークロード
| ツール | 説明 | GraphQL 操作 | リスク | 影響 |
|---|---|---|---|---|
list_workloads | アカウントのすべてのワークロードを一覧表示します | actor.account.workload.workloads | Low | Read |
get_workload | GUID でワークロードを取得します | actor.entity (WorkloadEntity) | Low | Read |
NerdGraph リファレンス
すべてのツールは、New Relic NerdGraph API にアクセスします。以下の NerdGraph のクエリ/ミューテーション名を使用します。
| GraphQL 操作 | ドキュメント |
|---|---|
actor.entity | エンティティ |
actor.entitySearch | エンティティ検索 |
actor.account.nrql | NRQL |
alertsPolicyCreate / Update / Delete | アラートポリシー |
alertsNrqlConditionCreate | NRQL アラート条件 |
syntheticsCreateSimpleMonitor | Synthetic Monitoring |
dashboardCreate / Update / Delete | ダッシュボード |
aiWorkflowsCreate / Update / DeleteWorkflow | ワークフロー |
aiNotificationsCreateChannel / DeleteChannel | 通知チャネル |
serviceLevelCreate / Update | サービスレベル |
taggingAddTagsToEntity / DeleteTagFromEntity / ReplaceTagsOnEntity | タグ |
entityDelete | エンティティの削除 |
インストール
前提条件
- Go 1.22 以降
- API アクセス権のある New Relic アカウント
ソースからのビルド
git clone https://github.com/karldane/newrelic-mcp.git
cd newrelic-mcp
make
ビルドオプション
make # Download deps and build (default)
make deps # Download dependencies only
make build # Build binary only (assumes deps exist)
make build-all # Build for Linux, macOS, and Windows
make test # Run tests
make clean # Remove build artifacts
make install # Install to GOPATH/bin
make help # Show all options
設定
環境変数
| 変数 | 説明 | 必須 | デフォルト |
|---|---|---|---|
NEWRELIC_API_KEY | New Relic API キー(ユーザーまたは管理者) | はい | - |
NEWRELIC_REGION | データセンターのリージョン(us または eu) | いいえ | us |
API キーの取得
- New Relic アカウントにログインします
- アカウント設定で API Keys に移動します
- User Key(読み取り専用の場合)または Admin Key(書き込み操作の場合)を作成します
- キーをコピーし、
NEWRELIC_API_KEYとして設定します
使用方法
基本的な使用方法(読み取り専用)
export NEWRELIC_API_KEY="your-api-key"
./newrelic-mcp
書き込み操作を有効にする
書き込み操作には -write-enabled フラグが必要です。
export NEWRELIC_API_KEY="your-api-key"
./newrelic-mcp -write-enabled
書き込みツールはデフォルトで無効になっています。-write-enabled を設定すると、すべての変更操作(作成、更新、削除、確認)が利用可能になります。各書き込みツールには ImpactWrite を含む EnforcerProfile が設定されており、MCP Bridge のオペレーターはポリシーを個別に適用できます。
ツール一覧
MCP 経由でツールの全一覧を取得します。
{
"tool": "tools/list"
}
安全機能
EnforcerProfile メタデータ
すべてのツールで安全性プロファイルを宣言します。
| フィールド | 説明 | 値 |
|---|---|---|
RiskLevel | 誤用による潜在的な影響 | low、med、high、critical |
ImpactScope | ツールが影響を与える対象 | read、write |
ResourceCost | API 呼び出しの重み(1~10) | 整数 |
PIIExposure | ツールが機密データを返すかどうか | true / false |
Idempotent | 再試行が安全かどうか | true / false |
このメタデータにより、ツール一覧をハードコーディングすることなく、MCP Bridge によるポリシーの自動適用が可能になります。
リスク分類
- 低リスク:読み取り専用のクエリ、ログ検索、メトリクスの取得、一覧表示操作
- 中リスク:破壊的でないリソース(アラート条件、サービスレベル、ダッシュボード、チャネル)の作成、アラートの確認
- 高リスク:リソース(ポリシー、エンティティ、ダッシュボード、ワークフロー、チャネル)の削除
書き込み保護
書き込みツールはデフォルトで無効になっており、次のものが必要です。
- 適切な権限を持つ有効な New Relic API キー
-write-enabledコマンドラインフラグ
使用例
アプリケーションのパフォーマンスをクエリする
{
"tool": "nrql_query",
"arguments": {
"query": "SELECT average(duration) FROM Transaction WHERE appName = 'MyApp' TIMESERIES SINCE 1 hour ago"
}
}
アクティブなアラートを一覧表示する
{
"tool": "get_alert_violations",
"arguments": {}
}
Ping モニターを作成する
{
"tool": "create_ping_monitor",
"arguments": {
"name": "My Monitor",
"uri": "https://example.com/health",
"locations": "US_EAST_1,US_WEST_1",
"period": "EVERY_5_MINUTES"
}
}
アカウント横断の NRQL クエリ
{
"tool": "cross_account_nrql",
"arguments": {
"query": "SELECT count(*) FROM Transaction",
"account_ids": "1234567,7654321"
}
}
アーキテクチャ
このサーバーは New Relic GraphQL クライアントをラップし、MCP Framework を通じて各ツールを登録します。ツールは NerdGraph の操作と 1 対 1 で対応しており、REST API の呼び出しは行いません。
Client (MCP Host)
│
▼
newrelic-mcp (MCP Server)
│
├── actorGraphQuery → actor.* (entities, entitySearch, cross-account NRQL)
├── nerdGraphQuery → actor.account.* (alerts, workflows, notifications, workloads)
├── rawGraphQuery → mutation results
└── executeNRQL → actor.account.nrql (NRQL query tools)
│
▼
New Relic NerdGraph (api.newrelic.com/graphql)
テスト
go test ./newrelic -v
テストでは次の項目をカバーします。
- 正常系(NerdGraph の応答をモック)
- 空または結果なしの応答
- 必須パラメーターの不足
- 書き込み有効時/無効時の制御
- API エラー応答
- 想定外の応答形式
ライセンス
このプロジェクトは Functional Source License, Version 1.1, ALv2 Future License の下でライセンスされています。
Copyright 2026 Karl Dane
詳細な条件については LICENSE ファイルをご覧ください。
参考資料
- MCP Framework — EnforcerProfile をサポートする基盤フレームワーク
- New Relic NerdGraph API
- NRQL Reference
- New Relic API Explorer — インタラクティブな GraphQL プレイグラウンド
Tool Inventory
The server registers 55 tools total:
- 6 NRQL / APM / Trace tools: nrql_query, list_applications, get_apm_metrics, get_application_metrics, query_traces, get_transaction_traces, get_trace_details
- 10 Alert tools: list_alerts, get_alert_policy, get_alert_conditions, get_alert_violations, list_nrql_alert_conditions, create_alert_policy, update_alert_policy, delete_alert_policy, create_alert_condition, acknowledge_alert_violation
- 5 Synthetic Monitoring tools: list_synthetic_monitors, get_synthetic_monitor, list_private_locations, create_ping_monitor, delete_synthetic_monitor
- 7 Dashboard tools: list_dashboards, get_dashboard, get_dashboard_data, create_dashboard, update_dashboard, delete_dashboard, add_dashboard_widget
- 2 Log tools: search_logs, tail_logs
- 1 Infrastructure tool: get_infrastructure_metrics
- 5 Workflow tools: list_workflows, get_workflow, create_workflow, update_workflow, delete_workflow
- 5 Notification tools: list_notification_channels, list_destinations, create_slack_channel, create_email_channel, delete_notification_channel
- 3 Service Level tools: list_service_levels, create_service_level, update_service_level
- 4 Tag tools: get_entity_tags, add_entity_tags, remove_entity_tags, replace_entity_tags
- 2 Entity tools: search_entities, delete_entity
- 1 Cross-account NRQL tool: cross_account_nrql
- 2 Workload tools: list_workloads, get_workload
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。