Cursor MCP Monitor について
Cursor MCP Monitorは、Cursor内のMCP通信を調べる開発者向けの.NETコンソールアプリです。ログをリアルタイムで読み取り、色分けされたターミナル表示とWebダッシュボードを提供します。
主な機能
- 01Cursor MCPログのリアルタイム監視
- 02イベントとプロトコルエラーの色分け
- 03ログローテーションと切り詰めへの対応
- 04検索可能なライブWebダッシュボード
- 05フィルターとポーリング間隔の設定
活用シーン
- 01MCPクライアントとサーバー間通信のデバッグ
- 02接続とライフサイクルイベントの確認
- 03Cursorログ内のプロトコルエラーの特定
MCP 対応
Cursor内のMCPクライアントとサーバーのやり取りを記録したログを監視します。クライアントにMCPツールを提供するものではありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cursor MCP Monitor
Cursor AI エディターにおける Model Context Protocol(MCP)の通信を監視する .NET コンソールアプリケーションです。このツールを使うと、ログファイルをリアルタイムで監視して、MCP サーバーとクライアント間の通信をデバッグおよび分析できます。
MCP とは?
Model Context Protocol(MCP)は、アプリケーションが LLM にコンテキストを提供する方法を標準化するオープンプロトコルです。クライアント・サーバーアーキテクチャを採用しており、次のように構成されています。
- MCP ホスト(Cursor など)は複数のサーバーに接続します
- MCP クライアントはサーバーとの 1 対 1 の接続を維持します
- MCP サーバーは標準化されたプロトコルを通じて特定の機能を公開します
- ローカルデータソースとリモートサービスには、MCP サーバーを介して安全にアクセスします
機能
- Cursor における MCP クライアント・サーバー間の通信をリアルタイムで監視します。
- クライアントの作成および接続イベント
- サーバーの提供内容一覧と機能
- プロトコルエラーと警告
- クライアントのライフサイクル遷移
- Cursor のログディレクトリを監視し、新しい MCP ログファイルを検出します
- メッセージの種類を解析し、色分けして表示します。
- 緑:クライアントの作成と接続の成功
- 黄:サーバーの提供内容一覧
- 赤:プロトコルエラーとクライアントの切断
- 灰:一般的な情報メッセージ
- ログローテーションとファイルの切り詰めに対応します
- クロスプラットフォーム対応(Windows、macOS、Linux)
- 指数バックオフと再試行ロジックによるスマートなエラー処理
- ポーリング間隔とログファイルのパターンを設定可能
- 簡単にカスタマイズできるコマンドラインインターフェイス
- Serilog による構造化ロギングで、可観測性を向上させます。
- 書式設定された出力によるコンソールロギング
- 日次ローテーションによるファイルロギング
- コンテキストプロパティ(マシン名、スレッド ID など)
- ログレベルのフィルタリングと出力のカスタマイズ
インタラクティブダッシュボード
アプリケーションには監視と分析用の Web ベースのダッシュボードが含まれており、アプリケーションの実行中に http://localhost:5050 からアクセスできます。ダッシュボードには WebSocket 接続によるリアルタイムのイベントストリーミングが備わっており、自動再接続処理とイベント発生率の監視にも対応しています。
ターミナル表示では、ミリ秒単位の精度でタイムスタンプを表示し、イベントの種類を簡単に識別できるようメッセージの種類を色分けします。高度な検索機能には、ハイライト表示付きのテキスト検索とキーボードショートカット対応が含まれます。
コマンドパレット(Ctrl/Cmd + P)から、よく使う操作にすばやくアクセスできます。
- ログをクリア(Ctrl/Cmd + K)
- 表示中のエントリをコピー(Ctrl/Cmd + C)
- 自動スクロールを切り替え(Ctrl/Cmd + S)
- 検索にフォーカス(/)
ダッシュボードには、WebSocket の接続状態、アクティブなクライアント数、1 秒あたりのイベント数を示すステータスインジケーターが含まれています。システムテーマの検出に対応した、ダークテーマとライトテーマを利用できます。
インストール
.NET CLI を使用して、ツールをグローバルにインストールできます。
# Install from NuGet.org
dotnet tool install --global CursorMCPMonitor
# Or install from GitHub Packages
dotnet nuget add source --name github "https://nuget.pkg.github.com/willibrandon/index.json"
dotnet tool install --global CursorMCPMonitor --add-source github
インストール後は、次のコマンドを使用して、どこからでもツールを実行できます。
cursor-mcp --help
最新バージョンに更新するには:
dotnet tool update --global CursorMCPMonitor
アンインストールするには:
dotnet tool uninstall --global CursorMCPMonitor
設定
アプリケーションは appsettings.json で設定できます。
{
"LogsRoot": null,
"PollIntervalMs": 1000,
"LogPattern": "Cursor MCP.log",
"Verbosity": "Debug",
"Filter": null,
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "CursorMCPMonitor"
}
},
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft": "Warning"
}
}
}
LogsRoot:Cursor MCP ログを監視するルートディレクトリです。null の場合は、次の場所がデフォルトで使用されます。- Windows:
%AppData%/Cursor/logs - macOS:
~/Library/Application Support/Cursor/logs - Linux:
~/.config/Cursor/logs
- Windows:
PollIntervalMs:新しいログ行を確認する間隔(ミリ秒)ですLogPattern:監視するログファイルのパターンです("Cursor MCP*.log" などのグロブパターンに対応)Verbosity:詳細度レベル(Debug、Information、Warning、Error)です。すべてのメッセージを表示するため、デフォルトは Debug です。Filter:ログ内容を絞り込むための任意のテキストパターンです(このテキストを含む行のみが表示されます)Serilog:構造化ロギングの設定です(Serilog の設定を参照)
環境変数を使用して設定を上書きすることもできます。
# Windows
set LogsRoot=C:\CustomPath\Cursor\logs
set PollIntervalMs=500
# Linux/macOS
export LogsRoot=/custom/path/cursor/logs
export PollIntervalMs=500
Serilog の設定
このアプリケーションでは構造化ログに Serilog を使用しており、appsettings.json ファイルで設定できます。
Serilog:MinimumLevel:Default:デフォルトの最小ログレベルSerilog:MinimumLevel:Override:特定の名前空間の最小ログレベルを上書きしますSerilog:Enrich:ログにコンテキスト情報を追加するエンリッチャーSerilog:Properties:すべてのログイベントに含めるカスタムプロパティ
デフォルトでは、ログは次の場所に出力されます。
- コンソール:人が読みやすい形式で出力されます
- ファイル:
logsディレクトリに保存され、毎日ローテーションされます。ファイル名はcursormonitor-YYYYMMDD.logです
コマンドラインオプション
コマンドラインオプションを使用して、設定を上書きできます。
# Specify a custom logs directory
dotnet run -- --logs-root "C:\Users\username\AppData\Roaming\Cursor\logs"
# Set a custom polling interval (500ms)
dotnet run -- --poll-interval 500
# Use a different log pattern (glob pattern support)
dotnet run -- --log-pattern "Cursor MCP*.log"
# Set verbosity level
dotnet run -- --verbosity debug
# Filter logs to only show lines containing specific text
dotnet run -- --filter "CreateClient"
# Combine multiple options
dotnet run -- --logs-root "/path/to/logs" --poll-interval 500 --verbosity error --filter "Error in MCP"
ビルドと実行
前提条件
- .NET 9.0 SDK 以降
ビルド
dotnet build
実行
dotnet run
Docker のサポート
このアプリケーションは Docker をサポートしています。Docker を使用してビルドおよび実行するには、次の手順に従ってください。
# Make sure you're in the repository root directory
cd /path/to/CursorMCPMonitor
# Build the image (note the -f flag to specify Dockerfile location)
docker build -t cursor-mcp-monitor -f src/CursorMCPMonitor/Dockerfile .
# Run the container with volume mapping for logs
# For Windows PowerShell:
docker run -it --rm -v "$env:APPDATA\Cursor\logs:/app/logs" -e LogsRoot=/app/logs cursor-mcp-monitor
# For Windows CMD:
docker run -it --rm -v "%APPDATA%\Cursor\logs:/app/logs" -e LogsRoot=/app/logs cursor-mcp-monitor
# For macOS/Linux:
docker run -it --rm -v "$HOME/Library/Application Support/Cursor/logs:/app/logs" -e LogsRoot=/app/logs cursor-mcp-monitor
重要:
- Docker のビルドコマンドは、プロジェクトディレクトリではなく、必ずリポジトリのルートディレクトリから実行してください。これにより、必要なファイルがすべてビルドコンテキストに含まれます。
- Docker コンテナを実行する際は、ローカルの Cursor ログディレクトリをコンテナにマウントし、
LogsRoot環境変数がマウント先のディレクトリを指すように設定する必要があります。
ログ記録と可観測性
このアプリケーションでは Serilog を使用して構造化ログを実装しており、次のような利点があります。
- コンテキスト情報:各ログエントリには、マシン名、スレッド ID、ソースコンテキストなどのコンテキストプロパティが含まれます
- 複数の出力形式:ログは整形された形式でコンソールとファイルの両方に出力されます
- ログレベル:異なるログレベル(Debug、Information、Warning、Error、Fatal)を使って、最も関連性の高い情報を絞り込めます
- 構造化データ:ログイベントには、クエリや分析が可能な構造化データが含まれます
- ログファイル:ログファイルはアプリケーションの
logsディレクトリに保存され、毎日ローテーションされます
ログ形式の例(コンソール):
[2025-03-03 12:34:56.789] [INF] [CursorMCPMonitor.Services.LogProcessorService] CreateClient detected: Cursor MCP.log 2025-03-03 12:34:56.123 [info] a602: Handling CreateClient action
ログ形式の例(ファイル):
2025-03-03 12:34:56.789 +00:00 [INF] [CursorMCPMonitor.Services.LogProcessorService] CreateClient detected: Cursor MCP.log 2025-03-03 12:34:56.123 [info] a602: Handling CreateClient action
エラー処理
このアプリケーションには、高度なエラー処理機能が含まれています。
- ファイルアクセスエラーに対するジッター付き指数バックオフ
- 一時的な問題からの自動復旧
- 色分けされたコンソール出力による詳細なエラー報告
- ファイルのローテーションと切り詰めの検出
- コンテキスト情報を含む構造化エラーログ
ユースケース
- クライアントとサーバーのやり取りを監視して、MCP サーバーの実装をデバッグする
- プロトコルメッセージとエラーパターンを分析する
- クライアントのライフサイクルと接続状態を追跡する
- サーバーの機能と提供内容を監視する
- プロトコルが正しく実装されていることを確認する
- 構造化ログを通じて、アプリケーションのパフォーマンスとエラー率を追跡する
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE.txt ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。