New Relic MCP サーバー
NRQLクエリを使用してNew Relicログをクエリするためのシンプルなモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、Claudeなどの大規模言語モデル(LLM)がNew Relicデータとやり取りできるようになります。
特徴
- NRQL を使用して New Relic のログとメトリクスをクエリする
- 詳細なエラーログ
- Claude Desktopとの簡単な統合
- 人間が読める出力フォーマット
- 設定可能なNew RelicアカウントID
セットアップ手順
前提条件
- Python 3.10以上
- New RelicアカウントとAPIキー
- クロードデスクトップアプリケーション
インストール手順
uv
パッケージ マネージャーをインストールします。
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
- プロジェクトの作成と設定:
# Create directory
mkdir newrelic-mcp
cd newrelic-mcp
# Create virtual environment
uv venv
# Activate virtual environment
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies
uv pip install "mcp[cli]" httpx
- 提供されたコードを使用してサーバー ファイル
newrelic_logs_server.py
を作成します。 - 環境変数を設定します。
# On Unix/macOS
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"
# On Windows (CMD)
set NEW_RELIC_API_KEY=your-api-key-here
set NEW_RELIC_ACCOUNT_ID=your-account-id-here
# On Windows (PowerShell)
$env:NEW_RELIC_API_KEY = "your-api-key-here"
$env:NEW_RELIC_ACCOUNT_ID = "your-account-id-here"
クロードデスクトップ統合
構成ファイルを編集して Claude Desktop を構成します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
次の構成を追加します。
{
"mcpServers": {
"newrelic": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/newrelic-mcp",
"run",
"newrelic_logs_server.py"
],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id-here"
}
}
}
}
使用法
NRQLクエリの例
- 基本的なトランザクションクエリ:
SELECT * FROM Transaction SINCE 1 hour ago
- エラー分析:
SELECT * FROM Transaction WHERE error IS TRUE SINCE 1 hour ago LIMIT 10
- パフォーマンス分析:
SELECT average(duration) FROM Transaction FACET name ORDER BY average(duration) DESC LIMIT 5
クロードのプロンプトの例
クロードに次のような質問をすることができます:
- 「過去1時間のすべての取引を表示」
- 「申請書に誤りはありますか?」
- 「最も遅いエンドポイントは何ですか?」
デバッグ
ログの表示
# On macOS/Linux
tail -f ~/Library/Logs/Claude/mcp-server-newrelic.log
# On Windows
type %APPDATA%\Claude\logs\mcp-server-newrelic.log
MCP Inspectorによるテスト
以下を使用してサーバーの機能をテストします。
npx @modelcontextprotocol/inspector uv run newrelic_logs_server.py
よくある問題
- 認証エラー:
- NEW_RELIC_API_KEYが正しく設定されているか確認してください
- APIキーに正しい権限があることを確認する
- APIキーが有効であることを確認する
- クエリ エラー:
- NRQL構文を検証する
- コード内のアカウントIDがあなたのアカウントと一致していることを確認してください
- クエリされたデータが時間範囲内に存在することを確認する
- 接続の問題:
- ネットワーク接続を確認する
- GraphQLエンドポイントにアクセスできることを確認する
- ファイアウォールが接続をブロックしていないことを確認する
セキュリティノート
- APIキーをバージョン管理にコミットしない
- 機密データには環境変数を使用する
- 依存関係を最新の状態に保つ
- クエリパターンとアクセスログを監視する
発達
ローカルテスト
- 環境変数を設定します。
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"
- サーバーを実行します。
uv run newrelic_logs_server.py
コード構造
サーバーは以下を実装します:
- 単一のNRQLクエリツール
- 設定可能なNew RelicアカウントID
- 包括的なエラー処理
- 詳細なログ記録
- 応答のフォーマット
変更のテスト
- 必要に応じてコードを変更する
- MCP Inspectorでテストする
- 変更を適用するには、Claude Desktop を再起動してください。
トラブルシューティングガイド
- サーバーが起動しません:
- Pythonのバージョンを確認する
- すべての依存関係がインストールされていることを確認する
- 仮想環境がアクティブになっていることを確認する
- クエリが機能しない:
- 詳細なエラーメッセージについてはログを確認してください
- NRQL構文を検証する
- クエリされた時間範囲内にデータが存在することを確認する
- クロードが接続していません:
- 設定ファイルの構文を確認する
- パスが絶対パスであることを確認する
- Claudeデスクトップを再起動します
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- プルリクエストを送信する
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。
サポート
問題が発生した場合:
- ログを確認する
- よくある問題のセクションを確認する
- MCP Inspectorでテストする
- GitHubで問題を報告する