Skip to main content

Command Palette

Search for a command to run...

カスタマイズ

モデルコンテキストプロトコル (MCP)

MCP とは?

Model Context Protocol (MCP) を使用すると、Cursor を外部ツールやデータソースに接続できます。MCP サーバーは、カスタマイズする ページからインストール・管理するか、mcp.json で設定できます。

なぜ MCP を使用するのですか?

MCP は Cursor を外部システムやデータに接続します。プロジェクト構造を繰り返し説明する代わりに、ツールと直接連携できます。

MCP サーバーは、stdout に出力するか HTTP エンドポイントを提供できる任意の言語で作成できます。たとえば、Python、JavaScript、Go などです。

公式プラグインは Cursor Marketplace でブラウズできます。コミュニティ製プラグインと MCP サーバーは cursor.directory でブラウズできます。

仕組み

MCP サーバーは、プロトコルを通じて機能を提供し、Cursor を外部ツールやデータソースに接続します。

Cursor は 3 つのトランスポート方式をサポートします。

トランスポート実行環境デプロイユーザー入力認証
stdioローカルCursor が管理単一ユーザーシェルコマンド手動
SSEローカル/リモートサーバーとしてデプロイ複数ユーザーSSE エンドポイントの URLOAuth
Streamable HTTPローカル/リモートサーバーとしてデプロイ複数ユーザーHTTP エンドポイントの URLOAuth

プロトコルと拡張機能のサポート

Cursor は以下の MCP プロトコルの機能と拡張機能をサポートしています:

機能サポート説明
ツールサポート済みAI モデルが実行できる関数
プロンプトサポート済みユーザー向けのテンプレート化されたメッセージやワークフロー
Resourcesサポート済み読み取りや参照ができる構造化データソース
Rootsサポート済みURI またはファイルシステムの境界に関する、サーバー主導の問い合わせ
Elicitationサポート済みユーザーに追加情報を求める、サーバー主導のリクエスト
Apps (extension)サポート済みMCP ツールが返す対話型 UI ビュー

MCP アプリ

Cursor は MCP Apps 拡張機能 をサポートしています。MCP ツールは、標準のツール出力に加えて、インタラクティブな UI を返すことができます。

MCP Apps はプログレッシブエンハンスメントに対応しています。ホストがアプリ UI をレンダリングできない場合でも、同じツールは通常の MCP レスポンスで引き続き動作します。

MCP サーバーのインストール

ワンクリックインストール

公式プラグインは、Cursor Marketplace の カスタマイズする からワンクリックでインストールできます。カスタムサーバーは mcp.json で設定します。コミュニティ製プラグインと MCP サーバーは、cursor.directory で探してください。マーケットプレイスのエントリで「Add to Cursor」をクリックすると、インストールして OAuth 認証を行えます。

チーム管理者は、チームマーケットプレイス を通じて MCP サーバーを配布することもできます。チームで配布されたサーバーは、個人用およびワークスペースの MCP サーバーとともに カスタマイズする に表示されます。

mcp.json を使用する

JSON ファイルを使用してカスタム MCP サーバーを設定します:

CLI Server - Node.js
{  "mcpServers": {    "server-name": {      "command": "npx",      "args": ["-y", "mcp-server"],      "env": {        "API_KEY": "value"      }    }  }}
CLI Server - Python
{  "mcpServers": {    "server-name": {      "command": "python",      "args": ["mcp-server.py"],      "env": {        "API_KEY": "value"      }    }  }}
Remote Server
// MCP server using HTTP or SSE - runs on a server{  "mcpServers": {    "server-name": {      "url": "http://localhost:3000/mcp",      "headers": {        "API_KEY": "value"      }    }  }}

リモートサーバー向けの静的 OAuth

OAuth を使用する MCP サーバーでは、動的クライアント登録の代わりに、mcp.json で静的 OAuth クライアント認証情報を指定できます。次の場合に使用します。

  • MCP プロバイダーから固定のクライアント ID (必要に応じてクライアント シークレットも) が提供される
  • プロバイダーでリダイレクト URL のホワイトリスト登録が必要である (例: Figma、Linear)
  • プロバイダーが OAuth 2.0 Dynamic Client Registration をサポートしていない

url を使用するリモートサーバーのエントリに、auth オブジェクトを追加します。

Remote Server with Static OAuth
{  "mcpServers": {    "oauth-server": {      "url": "https://api.example.com/mcp",      "auth": {        "CLIENT_ID": "your-oauth-client-id",        "CLIENT_SECRET": "your-client-secret",        "scopes": ["read", "write"]      }    }  }}
フィールド必須説明
CLIENT_IDはいMCP プロバイダーの OAuth 2.0 クライアント ID
CLIENT_SECRETいいえOAuth 2.0 クライアントシークレット (プロバイダーが confidential client を使用する場合)
scopesいいえリクエストする OAuth スコープ。省略した場合、Cursor は /.well-known/oauth-authorization-server を使用して scopes_supported を検出します

固定のリダイレクト URL

Cursor では、MCP サーバーに固定の OAuth リダイレクト URL を使用します。ユーザーが認証する各連携元ごとに、コールバックを登録してください。

https://www.cursor.com/agents/mcp/oauth/callbackhttp://localhost:8787/callback
  • Web と Cursor エージェント: https://www.cursor.com/agents/mcp/oauth/callback
  • デスクトップ app: http://localhost:8787/callback

MCP プロバイダーの OAuth アプリを設定する際、ユーザーが Web とデスクトップの両方から認証する場合は、両方の URL を許可済みのリダイレクト URI として登録してください。サーバーは OAuth の state パラメーターで識別されるため、これらのリダイレクト URL はすべての MCP サーバーで使用できます。

設定の補間と組み合わせる

auth の値は、他のフィールドと同様に補間をサポートします:

{  "mcpServers": {    "oauth-server": {      "url": "https://api.example.com/mcp",      "auth": {        "CLIENT_ID": "${env:MCP_CLIENT_ID}",        "CLIENT_SECRET": "${env:MCP_CLIENT_SECRET}"      }    }  }}

Client ID と Client Secret はハードコーディングせず、環境変数を使用してください。

STDIO サーバー設定

STDIO サーバー (ローカルのコマンドライン サーバー) の場合は、mcp.json で次のフィールドを設定します。

フィールド必須説明例
typeはいサーバー接続の種類"stdio"
commandはいサーバー実行ファイルを起動するコマンド。システムパス上で使用可能であるか、フルパスを指定する必要があります。"npx", "node", "python", "docker"
argsいいえコマンドに渡す引数の配列["server.py", "--port", "3000"]
envいいえサーバー用の環境変数{"API_KEY": "${env:api-key}"}
envFileいいえ追加の変数を読み込む環境ファイルのパス".env", "${workspaceFolder}/.env"

Extension API の使用

MCP サーバーをプログラム経由で登録するために、Cursor では mcp.json ファイルを変更せずに動的な設定を行える Extension API を提供しています。これは特に、エンタープライズ環境や自動化されたセットアップ ワークフローで役立ちます。

Extension API リファレンス

vscode.cursor.mcp.registerServer() を使用して MCP サーバーをプログラム経由で登録します


設定ファイルの場所

プロジェクト設定

プロジェクト固有のツール用に、プロジェクト内に .cursor/mcp.json を作成します。

グローバル設定

どこでも利用できるツール用に、ホームディレクトリに ~/.cursor/mcp.json を作成します。

設定の補間

mcp.json の値で変数を使用できます。Cursor は次のフィールド内の変数を展開します: command、args、env、url、headers。

サポートされている構文:

  • ${env:NAME} 環境変数
  • ${userHome} ホームフォルダへのパス
  • ${workspaceFolder} プロジェクトルート (.cursor/mcp.json を含むフォルダ)
  • ${workspaceFolderBasename} プロジェクトルートの名前
  • ${pathSeparator} と ${/} OS のパス区切り文字

例

{  "mcpServers": {    "local-server": {      "command": "python",      "args": ["${workspaceFolder}/tools/mcp_server.py"],      "env": {        "API_KEY": "${env:API_KEY}"      }    }  }}
{  "mcpServers": {    "remote-server": {      "url": "https://api.example.com/mcp",      "headers": {        "Authorization": "Bearer ${env:MY_SERVICE_TOKEN}"      }    }  }}

認証

MCP サーバーは、認証に環境変数を使用します。API キーとトークンは設定を通じて渡します。

Cursor は、OAuth が必要なサーバーをサポートしています。

エンタープライズ管理者の管理機能

MCP の配布と MCP ポリシーは、それぞれ個別に設定します。チーム管理者は共有 MCP サーバーを配布できます。エンタープライズ管理者は MCP ポリシーを設定できます。

Team MCP の配布

共有の Team MCP サーバーは、Dashboard > プラグイン & MCPs で設定します。これらのサーバーは Cloud Agents で利用できます。

既存のスタンドアロン Team MCP サーバーを Agent Window、IDE、CLI で利用できるようにするには、Team MCP Servers の Add to Team Marketplace を選択します。Cursor は Cloud Agent のアクセスを中断することなく、サーバーを Default チームマーケットプレイスにリンクします。その後、チームメイトは カスタマイズする からインストールして設定できます。

MCP サーバーをマーケットプレイスにリンクしても、全員にインストールまたは有効化されるわけではありません。Dashboard > プラグイン & MCPs で Marketplace Access とプラグインのインストールモードを設定します。手順全体については、既存の Team MCP を移行するを参照してください。

MCP 許可リスト

エンタープライズ管理者は、ユーザーが実行できる MCP サーバーを Cursor ダッシュボードで制御できます。チームが実行できるサーバーとツールを設定するには、Team Settings > MCP Configuration を開きます。プラグイン & MCPs ページからもここにリンクしています。許可リストに追加すると、MCP 設定が承認されます。サーバーが配布またはインストールされるわけではありません。

MCP 許可リストを使って、許可するサーバーを定義します。

  • コマンドエントリ では、コマンドパターンに基づいてローカルの stdio MCP サーバーを許可します。
  • URL エントリ では、URL エントリパターンに基づいてリモートの HTTP/SSE MCP サーバーを許可します。
  • ツール許可リスト では、許可されたサーバーからどのツールを自動実行できるかを制限します。ツール許可リストを空のままにすると、そのサーバーのすべてのツールが許可されます。

ネットワーク制御

リモートMCPのURLは、設定されたURLエントリパターンで制限されます。

ローカルのコマンドベースMCPサーバーは、サーバーごとのネットワークモードに従います。

  • すべて許可: アウトバウンドのネットワークアクセスを許可します。
  • 許可リスト: リストにある宛先のみを許可します。
  • すべて拒否: アウトバウンドのネットワークアクセスをブロックします。
  • サンドボックスなし: コマンドまたはネットワークのサンドボックス化を行わずに実行します。

ユーザー MCP 拡張機能

管理者は、管理者が定義したコマンドまたは URL パターンの対象外でも、ユーザーが自身の MCP サーバーを設定できるようにできます。管理者定義のパターンに一致しないユーザー MCP については、User MCP Network Denylist で一致するネットワーク接続先をブロックできます。

チャットでMCPを使用する

Cursorは、必要に応じてAvailable Toolsに表示されているMCPツールを自動的に使用します。これにはPlan モードも含まれます。特定のツールを名前で指定するか、必要なことを説明してください。サイドバーのカスタマイズするからMCPサーバーを有効または無効にできます。

ツールの承認

Cursorは、デフォルトではMCPツールを使用する前に承認を求めます。引数を表示するには、ツール名の横にある矢印をクリックします。

実行モード

MCPはターミナルコマンドと同じ実行モードに従います。たとえば、Auto-reviewモードでは、許可リストに登録されたMCPツールはすぐに実行され、それ以外はすべて分類器によって判定されます。

ツールのレスポンス

Cursor では、引数とレスポンスを展開して確認できるビューとともに、レスポンスがチャットに表示されます。

コンテキストとしての画像

MCP サーバーは、スクリーンショットや図などの画像を返すことができます。これらは base64 エンコードされた文字列として返してください:

const RED_CIRCLE_BASE64 = "/9j/4AAQSkZJRgABAgEASABIAAD/2w...";// ^ 読みやすさのためbase64を省略server.tool("generate_image", async (params) => {  return {    content: [      {        type: "image",        data: RED_CIRCLE_BASE64,        mimeType: "image/jpeg",      },    ],  };});

実装の詳細は、このサーバーの例を参照してください。Cursor は返された画像をチャットに添付します。モデルが画像をサポートしている場合は、それらを解析します。

セキュリティ上の注意点

MCP サーバーをインストールする際は、次のセキュリティ対策を検討してください。

  • 提供元を確認: MCP サーバーは、信頼できる開発者やリポジトリからのみインストールしてください
  • 権限を確認: サーバーがどのデータや API にアクセスするのかを確認してください
  • API キーを制限する: 必要最小限の権限のみを持つ制限付き API キーを使用してください
  • コードを確認: 重要なインテグレーションでは、サーバーのソースコードを確認してください

MCP サーバーは、外部サービスにアクセスし、ユーザーの代わりにコードを実行できることに注意してください。インストールする前に、そのサーバーが何をするものかを必ず理解してください。

実際の使用例

MCPの実践的な活用例:

  • Xcode連携 — CursorをXcode 26.3+に接続して、ビルド、テスト、SwiftUIプレビュー、Appleのドキュメント検索を利用
  • Web開発ガイド — Linear、Figma、ブラウザツールを開発ワークフローに連携

よくある質問

MCPサーバーは、CursorをGoogle Drive、Notionなどの外部ツールや サービスに接続し、ドキュメントや要件をコーディングワークフローに取り込みます。

MCPログを表示するには:

  1. Cursorで出力パネルを開きます (Cmd+Shift+UCtrl+Shift+U)
  2. ドロップダウンから「MCP Logs」を選択します
  3. 接続エラー、認証の問題、サーバーのクラッシュがないか確認します

ログには、サーバーの初期化、ツール呼び出し、エラーメッセージが表示されます。

はい。削除せずにサーバーのオンとオフを切り替えられます:

  1. サイドバーでカスタマイズするを開きます
  2. 変更したいMCPサーバーを見つけます
  3. トグルを使用して有効または無効にします

無効にしたサーバーは読み込まれず、チャットにも表示されません。トラブルシューティングやツールの煩雑さを減らすのに役立ちます。

MCPサーバーで障害が発生した場合:

  • Cursorがチャットにエラーメッセージを表示します
  • ツール呼び出しが失敗としてマークされます
  • 操作を再試行するか、ログで詳細を確認できます
  • 他のMCPサーバーは通常どおり動作し続けます

Cursorは、1つのサーバーの障害が他のサーバーに影響しないように分離します。

npmベースのサーバーの場合:

  1. カスタマイズするからサーバーを削除します
  2. npmキャッシュをクリアします: npm cache clean --force
  3. サーバーを再追加して最新バージョンを取得します

カスタムサーバーの場合は、ローカルファイルを更新してCursorを再起動します。

はい。ただし、セキュリティのベストプラクティスに従ってください:

  • シークレットには環境変数を使用し、ハードコードしないでください
  • 機密性の高いサーバーはstdioトランスポートでローカル実行してください
  • API keyの権限は必要最小限に制限してください
  • 機密システムに接続する前にサーバーコードを確認してください
  • サーバーを隔離された環境で実行することを検討してください

関連