mcpField
C
Cursor MCP Monitor

Cursor MCP Monitor

ローカル
github.com/willibrandon開発ツール1285 週間前に更新

Cursor MCP Monitor について

Cursor MCP Monitorは、Cursor内のMCP通信を調べる開発者向けの.NETコンソールアプリです。ログをリアルタイムで読み取り、色分けされたターミナル表示とWebダッシュボードを提供します。

主な機能

  1. 01Cursor MCPログのリアルタイム監視
  2. 02イベントとプロトコルエラーの色分け
  3. 03ログローテーションと切り詰めへの対応
  4. 04検索可能なライブWebダッシュボード
  5. 05フィルターとポーリング間隔の設定

活用シーン

  1. 01MCPクライアントとサーバー間通信のデバッグ
  2. 02接続とライフサイクルイベントの確認
  3. 03Cursorログ内のプロトコルエラーの特定

MCP 対応

Cursor内のMCPクライアントとサーバーのやり取りを記録したログを監視します。クライアントにMCPツールを提供するものではありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"CursorMCPMonitor": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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
  • 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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。