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 は次のフィールド内の変数を展開します: commandargsenvurlheaders

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

  • ${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 > Integrations & MCP で設定します。これらのサーバーは Cloud Agents で利用できます。

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

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

MCP 許可リスト

エンタープライズ管理者は、ユーザーが実行できる MCP サーバーを Cursor ダッシュボードで制御できます。チームが実行できるサーバーとツールを設定するには、Team Settings > MCP Configuration を開きます。許可リストに追加すると、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の権限は必要最小限に制限してください
  • 機密システムに接続する前にサーバーコードを確認してください
  • サーバーを隔離された環境で実行することを検討してください

関連