MCP とは?
なぜ MCP を使う?
stdout
に出力するか、HTTP エンドポイントを提供できる言語ならどれでも MCP サーバーを書ける — Python、JavaScript、Go など。
仕組み
トランスポート | 実行環境 | デプロイ | ユーザー | 入力 | 認証 |
---|---|---|---|---|---|
stdio | ローカル | Cursor が管理 | 単一ユーザー | シェルコマンド | 手動 |
SSE | ローカル/リモート | サーバーとしてデプロイ | 複数ユーザー | SSE エンドポイントの URL | OAuth |
Streamable HTTP | ローカル/リモート | サーバーとしてデプロイ | 複数ユーザー | HTTP エンドポイントの URL | OAuth |
プロトコル対応
機能 | 対応状況 | 説明 |
---|---|---|
Tools | 対応 | AI モデルが実行する関数 |
Prompts | 対応 | ユーザー向けのテンプレートメッセージとワークフロー |
Resources | 対応 | 読み取り・参照可能な構造化データソース |
Roots | 対応 | 操作対象となる URI/ファイルシステム境界へのサーバー起点の照会 |
Elicitation | 対応 | ユーザーに追加情報を求めるサーバー起点のリクエスト |
MCP サーバーのインストール方法
ワンクリックでインストール
mcp.json
を使う
STDIO サーバーの設定
mcp.json
で次のフィールドを設定してね:
Field | Required | Description | Examples |
---|---|---|---|
type | Yes | サーバーの接続タイプ | "stdio" |
command | Yes | サーバー実行ファイルを起動するコマンド。システムの PATH にあるか、フルパスを指定してね。 | "npx" , "node" , "python" , "docker" |
args | No | コマンドに渡す引数の配列 | ["server.py", "--port", "3000"] |
env | No | サーバー用の環境変数 | {"API_KEY": "${input:api-key}"} |
envFile | No | 追加の環境変数を読み込むための環境ファイルのパス | ".env" , "${workspaceFolder}/.env" |
Extension API の使用
mcp.json
ファイルを変更せずに動的に設定できる拡張 API を提供している。これは特にエンタープライズ環境や自動セットアップのワークフローで有用。
MCP Extension API Reference
vscode.cursor.mcp.registerServer()
を使ってプログラムから MCP サーバーを登録する方法を学ぼう設定の場所
Project Configuration
プロジェクト専用のツールには、プロジェクト内に
.cursor/mcp.json
を作成しよう。Global Configuration
どこでも使えるツールには、ホームディレクトリに
~/.cursor/mcp.json
を作成しよう。コンフィグの補間
mcp.json
の値に変数を使える。Cursor は次のフィールドで変数を解決する: command
、args
、env
、url
、headers
。
サポートされる構文:
${env:NAME}
環境変数${userHome}
ホームフォルダへのパス${workspaceFolder}
プロジェクトのルート(.cursor/mcp.json
を含むフォルダ)${workspaceFolderBasename}
プロジェクトルートの名前${pathSeparator}
と${/}
OS のパス区切り文字
認証
チャットでの MCP の使い方
Available Tools
に表示されている MCP ツールを自動で使うよ。特定のツール名を指定するか、やりたいことをそのまま伝えてね。ツールの有効化・無効化は設定から切り替えられる。
ツールの切り替え
ツールの承認

自動実行
ツールのレスポンス

コンテキストとしての画像
セキュリティ上の考慮事項
- 配布元の確認: 信頼できる開発者やリポジトリからの MCP サーバーだけをインストールする
- 権限の確認: サーバーがアクセスするデータや API をチェックする
- API キーの最小化: 必要最小限の権限に絞った制限付き API キーを使う
- コードの監査: 重要な連携では、サーバーのソースコードをレビューする
実際の例
FAQ
MCP サーバーの目的は?
MCP サーバーの目的は?
MCP サーバーは、Cursor を Google Drive や Notion などの外部ツールやサービスに接続して、ドキュメントや要件をコーディングのワークフローに取り込めるようにするものだよ。
MCP サーバーの問題はどうデバッグする?
MCP サーバーの問題はどうデバッグする?
MCP のログを見るには: 1. Cursor で Output パネルを開く (Ctrl+Shift+U)
2. ドロップダウンから「MCP Logs」を選ぶ 3. 接続エラー、認証エラー、サーバークラッシュを確認する
ログにはサーバーの初期化、ツール呼び出し、エラーメッセージが出るよ。
MCP サーバーを一時的に無効化できる?
MCP サーバーを一時的に無効化できる?
できる!削除せずにオン/オフを切り替えられるよ: 1. Settings を開く (
Ctrl+Shift+J) 2. Features → Model Context Protocol に進む 3.
任意のサーバーのトグルをクリックして有効/無効を切り替える 無効化したサーバーは読み込まれず、チャットにも出てこないよ。
トラブルシューティングやツールの整理に便利。
MCP サーバーがクラッシュしたりタイムアウトしたら?
MCP サーバーがクラッシュしたりタイムアウトしたら?
MCP サーバーが失敗した場合: - Cursor がチャットにエラーメッセージを表示する - ツール呼び出しは失敗としてマークされる - 操作を再試行するか、詳細はログを確認できる - 他の MCP サーバーは通常どおり動作を継続する
Cursor はサーバーの障害を分離して、1つのサーバーが他に影響しないようにしてるよ。
MCP サーバーはどう更新する?
MCP サーバーはどう更新する?
npm ベースのサーバーの場合: 1. 設定からサーバーを削除 2. npm キャッシュをクリア:
npm cache clean --force
3. 最新版を取得するためにサーバーを再追加 カスタムサーバーの場合は、ローカルファイルを更新して Cursor を再起動してね。機密データで MCP サーバーを使える?
機密データで MCP サーバーを使える?
使えるけど、セキュリティのベストプラクティスに従ってね: - 秘密情報は環境変数を使い、ハードコードしない - 機密性の高いサーバーは
stdio
トランスポートでローカル実行する - API キーの権限は必要最小限に絞る - 機密システムに接続する前にサーバーコードをレビューする - サーバーを分離環境で実行することを検討する