Scout Monitoring MCP
公式Scoutの公式MCPは、本番環境からのエラー、トレース、メトリクスデータをAIエージェントにパイプします
Scout Monitoring MCPで何ができますか?
- 監視対象アプリの一覧表示 — 利用可能な Scout APM アプリケーションを一覧表示します。最終アクティブ日でフィルタリングすることもできます。
- アプリのメトリクスの確認 — 特定のアプリケーションについて、応答時間やスループットなどの個別のメトリクスデータを取得します。
- エンドポイントの調査 — アプリのすべてのエンドポイントを集計パフォーマンスメトリクスとともに取得するか、1つのエンドポイントの時系列メトリクスを取得します。
- トレースの調査 — エンドポイントの最近のトレースを取得するか、すべてのスパンと実行の詳細を含む単一のトレースを取得します。
- エラーのトリアージ — アプリの最近のエラーグループを取得します。エンドポイントでフィルタリングすることもできます。
- パフォーマンスインサイトの提示 — N+1 クエリ、メモリの肥大化、低速クエリなどのインサイトを取得します。
ドキュメント
Scout Monitoring MCP
このリポジトリには、Scout の API 経由で https://www.scoutapm.com のデータにアクセスできる MCP サーバーをローカルで実行するためのコードが含まれています。AI アシスタントが Scout Monitoring のデータにアクセスできるように、プルして実行できる Docker イメージを提供しています。
これにより、Scout Monitoring のパフォーマンスデータとエラーデータが AI アシスタントの手元に直接届きます。Rails、Django、FastAPI、Laravel などに対応。AI がエディタやコードベース上で直接修正を行えるよう、行番号情報付きのトレースやエラーを取得できます。N+1 クエリ、遅いエンドポイント、遅いクエリ、メモリ肥大化、スループットの問題など、おなじみのパフォーマンス問題が、あなたが作業しているその場所で明らかになり、説明されます。
これで少しでも生活が良くなったなら、:star: を付けませんか?!
セットアップウィザード
Scout MCP を設定して使い始める最も簡単な方法は、対話型のセットアップウィザードを使うことです。前提条件とインストール手順をすべて処理します。
npx で実行:
npx @scout_apm/wizard
ソースからビルドして実行:
cd ./wizard
npm install
npm run build
node dist/wizard.js
ウィザードでは次のことを順に案内します:
- AI コーディングプラットフォームの選択 (Cursor、Claude Code、Claude Desktop)
- Scout API キーの入力
- MCP サーバー設定の自動構成
対応プラットフォーム
ウィザードは現在、次のプラットフォームのセットアップに対応しています:
- Cursor - MCP 設定を自動構成
- Claude Code (CLI) - 実行すべき正しいコマンドを提示
- Claude Desktop - Windows/Mac の設定ファイルを更新
その他のプラットフォームでは、AI アシスタントの MCP 設定にコピー&ペーストできる JSON を出力します。
前提条件
ウィザードは始めるのに最適な方法ですが、手動でセットアップすることもできます。Scout Monitoring アカウントを作成または保有し、API キーを取得する必要があります。
- https://scoutapm.com/users/sign_up?utm_source=github&utm_medium=github&utm_campaign=scout-mcp-local
- アプリケーションに Scout Agent をインストールして Scout データを送信します!
- 設定にアクセスして API キーを取得または作成します
- これは「Agent Key」では_ありません_。設定ページで作成できる「API Key」です
- これはアカウント内のデータにのみアクセスできる読み取り専用キーです
- Docker をインストールします。以下の手順は、Docker コンテナを起動できることを前提としています
MCP サーバーは現在、環境変数または起動時のコマンドライン引数のいずれかで API キーが設定されていない限り起動しません。
インストール
MCP サーバーを実行するには、提供されている Docker イメージの使用をお勧めします。これは AI アシスタントによって起動され、Scout API キーで設定されることを想定しています。多くのローカルクライアントでは、MCP サーバーを実行するコマンドをどこかに指定できます。以下にいくつかの例を示します。
Docker イメージは Docker Hub で入手できます。
もちろん、このリポジトリをクローンして MCP サーバーを直接実行することもできます。uv などの環境管理ツールの使用をお勧めします。
ローカルクライアントの設定 (例: Claude/Cursor/VS Code Copilot)
MCP を手動で設定する場合、通常は AI アシスタントの設定に、環境変数に API キーを含めた MCP サーバー実行用のコマンドを指定するだけです。JSON の形は次のとおりです (トップレベルのキーは異なります):
{
"mcpServers": {
"scout-apm": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env", "SCOUT_API_KEY", "scoutapp/scout-mcp-local"],
"env": { "SCOUT_API_KEY": "your_scout_api_key_here"}
}
}
}
Claude Code
claude mcp add scoutmcp -e SCOUT_API_KEY=your_scout_api_key_here -- docker run --rm -i -e SCOUT_API_KEY scoutapp/scout-mcp-local
VS Code Copilot
- VS Code Copilot ドキュメント
- 「Add an MCP server to your workspace」オプションをお勧めします
Claude Desktop
Claude の設定ファイルに以下を追加します:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"scout-apm": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env", "SCOUT_API_KEY", "scoutapp/scout-mcp-local"],
"env": { "SCOUT_API_KEY": "your_scout_api_key_here"}
}
}
}
Scout Monitoring MCP の使用
Scout の MCP は、エラーデータとパフォーマンスデータを AI アシスタントの...手元?に直接届けることを目的としています。AI がエディタ上で直接修正を行えるよう、行番号情報付きのトレースやエラーを取得するために使用します。
ほとんどのアシスタントは、生のツール呼び出しを表示し、分析も行います。デスクトップアシスタントは、望むデータを探索するカスタム JS アプリケーションを簡単に作成できます。コードエディタに統合されたアシスタントは、トレースデータとエラーのバックトレースを使って、コードベース上で直接修正を行えます。
Scout の MCP を AI アシスタントの他のツールと組み合わせて、次のことができます:
- エラーとパフォーマンスデータに基づいたリッチな GitHub/GitLab イシューの作成
- JIRA を楽しく - AI アシスタントに詳細をすべて含めたチケットを作成させる
- 特定のエラーやパフォーマンス問題を修正する PR の生成
ツール
Scout MCP は、Scout APM データにアクセスするための次のツールを提供します:
list_apps- 利用可能な Scout APM アプリケーションを一覧表示 (最終アクティブ日によるオプションのフィルタリング付き)get_app_metrics- 特定のアプリケーションの個別メトリクスデータ (response_time、throughput など) を取得get_app_endpoints- 集計されたパフォーマンスメトリクスとともに、アプリケーションのすべてのエンドポイントを取得get_endpoint_metrics- アプリケーション内の特定のエンドポイントの時系列メトリクスを取得get_app_endpoint_traces- 特定のエンドポイントに絞り込んだ、アプリの最近のトレースを取得get_app_trace- すべてのスパンと詳細な実行情報を含む個別のトレースを取得get_app_error_groups- アプリの最近のエラーグループを取得 (オプションでエンドポイントによるフィルタリング付き)get_app_insights- N+1 クエリ、メモリ肥大化、遅いクエリなどのパフォーマンスインサイトを取得
リソース
Scout MCP は、AI アシスタントが読み取って適用できる設定テンプレートをリソースとして提供します:
scoutapm://config-resources/{framework}- 対応フレームワークまたはライブラリ (rails、django、flask、fastapi) のセットアップ手順scoutapm://config-resources/list- 利用可能なすべての設定テンプレートを一覧表示scoutapm://metrics- Scout APM で利用可能なすべてのメトリクスの一覧
便利なプロンプト
セットアップと設定
- 「Rails アプリケーションの Scout モニタリングをセットアップするのを手伝って」
- 「キー ABC123 を使って Django プロジェクト用の Scout APM 設定ファイルを作成して」
パフォーマンスとモニタリング
- 「Scout Monitoring MCP で利用可能なツールを要約して。」
- 「アプリ
my-app-nameの過去 7 日間で最も遅いエンドポイントを見つけて。平均レスポンスタイム、スループット、P95 レスポンスタイムを含む結果の表を生成して。」 - 「アプリ
Fooの過去 24 時間で最も頻度の高いエラーを表示して。最新のエラー詳細を取得し、バックトレースを調べて修正を提案して。」 - 「アプリ
Barの最近の N+1 インサイトを取得して。ID で特定のトレースを取得し、バックトレースデータに基づいて最適化を手伝って。」
トークン使用量
現在、私たちは MCP ツールからのレスポンスサイズを厳密に制御することよりも、利用可能な情報を拡充することに関心があります。AI アシスタントに設定可能なトークン上限がある場合 (例: Claude Code の export MAX_MCP_OUTPUT_TOKENS=50000)、50,000 トークンなど、余裕をもって高く設定することをお勧めします。
ローカル開発
このプロジェクトでは、環境の管理とタスクの実行に uv と taskipy を使用しています。
Inspector で実行
uv run task dev
Inspector 内で接続して API キーを追加し、STDIO トランスポートに設定します
Docker イメージのビルド
docker build -t scout-mcp-local .
リリース
- ブランチを作成し、
uv run python bump_versions.pyでバージョンを上げる - それをマージする
- 新しいバージョンで GitHub リリースを作成する (
gh release create v2025.11.3 --generate-notes --draft)
リリースを公開すると v* タグがプッシュされ、CI が Docker イメージ、PyPI パッケージ、続いて
MCP Registry のエントリを公開します:
server.json→com.scoutapm/scout-mcp-local(このサーバー。バージョンはbump_versions.pyによって更新されます)server.remote.json→com.scoutapm/scout-monitoring(https://scoutapm.com/mcpでホストされているサーバー)。メタデータを変更したときはversionを手動で更新してください。変更のないバージョンはスキップされます。
MCP Registry キー
レジストリは、scoutapm.com の apex にある DNS TXT レコードに Ed25519 公開鍵を保持することで、私たちが com.scoutapm/* 名前空間を所有していることを検証します。CI は、MCP_REGISTRY_PRIVATE_KEY
リポジトリシークレットにある対応する秘密鍵でサインインします。ローテーションするには:
openssl genpkey -algorithm Ed25519 -out key.pem
# Public key for the TXT record: replace the existing v=MCPv1 record, don't add a second one
echo "v=MCPv1; k=ed25519; p=$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
# Private key (hex) for the MCP_REGISTRY_PRIVATE_KEY secret
openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n'
ボット向け:
mcp-name: com.scoutapm/scout-mcp-local