Cursor Model Context Protocol (MCP) Example について
Cursor IDE向けのMCPサーバー例を集めたリポジトリで、カスタムツールやデータソースの接続を学び、試す用途に適しています。タスク管理、ファイル操作、天気情報の例に加え、クライアント例と接続手順を収録しています。
主な機能
- 01タスク管理MCPサーバーの例
- 02ファイル閲覧・操作サーバーの例
- 03天気情報サービスの例
- 04クライアント例とドキュメント
- 05SSEとStdioによる接続手順
活用シーン
- 01CursorへのMCPサーバー接続を学ぶ
- 02タスクの作成、完了、削除ツールを試す
- 03ファイル操作や天気照会を試す
MCP 対応
タスク、ファイル、天気情報を扱うツールをMCPクライアントに公開するサーバー例を含み、SSEまたはStdioでCursorに接続する手順を示します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cursor Model Context Protocol (MCP) の例
このリポジトリには、カスタムツールやデータソースを使って AI の機能を強化するために、Cursor IDE で利用できる Model Context Protocol(MCP)サーバーの実装例が含まれています。
Model Context Protocol とは?
Model Context Protocol(MCP)は、アプリケーションが大規模言語モデル(LLM)にコンテキストを提供する方法を標準化するオープンプロトコルです。Cursor の AI アシスタントが利用できるカスタムツールを作成できます。
MCP は、AI アプリケーション向けの USB-C のようなものだと考えてください。
- USB-C がさまざまな周辺機器にデバイスを接続する標準的な方法を提供するように、MCP は AI モデルをさまざまなデータソースやツールに接続する標準的な方法を提供します
- AI アシスタントがリアルタイムの情報にアクセスし、専門的な機能を実行し、トレーニングデータを超えて機能を強化できるようにします
プロジェクト構成
example-mcp/
├── mcp-servers/ # Different MCP server implementations
│ ├── task-manager/ # Task manager MCP server example
│ ├── file-explorer/ # File explorer MCP server example
│ └── weather-service/ # Weather service MCP server example
├── client-examples/ # Example code for testing MCP servers
├── docs/ # Additional documentation
└── README.md # This file
MCP サーバーの例
このリポジトリには、次の MCP サーバーの例が含まれています。
1. タスクマネージャー MCP サーバー
タスクを管理するツールを提供するシンプルな MCP サーバーです。
- 新しいタスクを作成する
- すべてのタスクを一覧表示する
- タスクを完了済みとしてマークする
- タスクを削除する
2. ファイルエクスプローラー MCP サーバー
ファイルの参照や操作を可能にする MCP サーバーです。
- ディレクトリ内のファイルを一覧表示する
- ファイルの内容を読み取る
- 新しいファイルを作成する
- ファイルを削除する
3. 天気サービス MCP サーバー
天気情報を提供する MCP サーバーです。
- 地点の現在の天気を取得する
- 地点の天気予報を取得する
- 過去の天気データを取得する
はじめに
前提条件
- Node.js(v14 以降)
- Cursor IDE
MCP サーバーのセットアップ
-
いずれかのサーバーディレクトリに移動します。
cd example-mcp/mcp-servers/task-manager -
依存関係をインストールします。
npm install -
サーバーを起動します。
npm start
Cursor への接続
MCP サーバーを Cursor に接続するには、次の手順を実行します。
- Cursor IDE を開きます
- Settings(左下の歯車アイコン)に移動します
- 「Features」セクションに移動します
- 下にスクロールして「MCP」を表示します
- 「Add New MCP Server」をクリックします
- サーバー名を入力します(例:「Task Manager MCP」)
- トランスポートの種類を選択します。
- SSE:MCP サーバーの URL を入力します(例:
http://localhost:3000) - Stdio:サーバーを起動するコマンドを入力します(例:
node /path/to/example-mcp/mcp-servers/task-manager/index.js)
- SSE:MCP サーバーの URL を入力します(例:
- 「Add」をクリックします
Cursor での MCP ツールの使用
MCP サーバーを接続すると、Cursor の AI 機能で利用できます。
-
AI チャットパネルを開きます(Cmd+I または Ctrl+I)
-
AI に MCP ツールを使うよう依頼します。
Please create a new task titled "Implement user authentication" with the description "Add user login and registration functionality to the application." -
AI は MCP サーバーを使ってタスクを作成し、結果を返します
-
タスクの一覧を尋ねることもできます。
Show me all the current tasks in the task manager.
MCP アーキテクチャ
Model Context Protocol は、クライアント・サーバーアーキテクチャに従っています。
- MCP ホスト:MCP を通じてデータにアクセスするプログラム(Cursor IDE など)
- MCP クライアント:サーバーとの接続を維持するプロトコルクライアント
- MCP サーバー:標準化された Model Context Protocol を通じて特定の機能を公開する軽量なプログラム
- ローカルデータソース:MCP サーバーが安全にアクセスできる、コンピューター上のファイル、データベース、サービス
- リモートサービス:MCP サーバーが接続できる、インターネット経由で利用可能な外部システム
トランスポート
MCP は複数のトランスポート方式をサポートしています。
-
Stdio トランスポート:
- 通信に標準入力/標準出力を使用します
- ローカルプロセスに適しています
-
SSE を使用した HTTP トランスポート:
- サーバーからクライアントへのメッセージに Server-Sent Events を使用します
- クライアントからサーバーへのメッセージには HTTP POST を使用します
すべてのトランスポートは、メッセージのやり取りに JSON-RPC 2.0 を使用します。
独自の MCP サーバーの作成
独自の MCP サーバーを作成するには、次の手順に従います。
-
サーバー用の新しいディレクトリを作成します
-
Node.js プロジェクトを初期化します。
npm init -y -
必要な依存関係をインストールします。
npm install @modelcontextprotocol/server express -
サーバーの実装を含む
index.jsファイルを作成します -
名前、説明、パラメータースキーマを指定してツールを登録します
-
各ツールのハンドラーを実装します
-
Express サーバーをセットアップし、MCP ミドルウェアを適用します
実装例については、このリポジトリのサンプルサーバーを参照してください。
トラブルシューティング
MCP サーバーで問題が発生した場合は、次の手順をお試しください。
- エラーがないかサーバーログを確認します
- サーバーが実行中であり、指定された URL からアクセスできることを確認します
- 接続状態が更新されない場合は、Cursor を再起動します
- 接続エラーがないかCursor のログを確認します(Help > Toggle Developer Tools)
リソース
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。