MCP とは?
なんで MCP を使うの?
stdout
に出力するか、HTTP エンドポイントを提供できる言語なら何でも MCP サーバーを書ける—Python、JavaScript、Go など。
仕組み
Transport | Execution environment | Deployment | Users | Input | Auth |
---|---|---|---|---|---|
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 リファレンス
vscode.cursor.mcp.registerServer()
を使ってプログラムで MCP サーバーを登録する方法を学ぶ設定場所
プロジェクト設定
プロジェクト専用のツール用に、プロジェクト直下に
.cursor/mcp.json
を作成してね。グローバル設定
どこでも使えるツール用に、ホームディレクトリに
~/.cursor/mcp.json
を作成してね。設定の補間(Interpolation)
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 キーを使う
- コードレビュー: 重要な統合では、サーバーのソースコードを確認する
実例
よくある質問
MCP サーバーって何のためにあるの?
MCP サーバーって何のためにあるの?
MCP サーバーは、Cursor を Google Drive や Notion などの外部ツール/サービスにつなげて、ドキュメントや要件をコーディングのワークフローに取り込むための仕組みだよ。
MCP サーバーの不具合はどうやってデバッグする?
MCP サーバーの不具合はどうやってデバッグする?
MCP のログを見るには: 1. Cursor で Output パネルを開く(Ctrl+Shift+U)
2. ドロップダウンから「MCP Logs」を選ぶ 3. 接続エラー、認証エラー、サーバークラッシュがないか確認
ログにはサーバーの初期化、ツール呼び出し、エラーメッセージが出るよ。
MCP サーバーを一時的に無効化できる?
MCP サーバーを一時的に無効化できる?
できるよ!削除せずにオン/オフを切り替えられる: 1. 設定を開く(
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 キーの権限は必要最小限に絞る - 機密システムに接続する前にサーバーコードをレビュー - サーバーを分離環境で動かすことも検討してね