MCP.so
ログイン
ブログに戻る

Cursor MCP 設定ガイド:Cursor に MCP サーバーを追加・設定する方法

2026年10月15日MCP.so TeamMCP.so Team

Cursor MCP の設定ガイド。~/.cursor/mcp.json と .cursor/mcp.json の書き方、stdio とリモートサーバーの追加、シークレットの渡し方、インストールリンク、MCP エラーの解決方法を解説します。

Cursor に MCP サーバーを追加する方法

Cursor に MCP サーバーを追加するには、mcp.json ファイルに記述します。~/.cursor/mcp.json はすべてのプロジェクトで有効になり、リポジトリ内の .cursor/mcp.json はそのプロジェクト専用になります。ローカルサーバーは command と args(stdio)、リモートサーバーは url(Streamable HTTP または SSE)で指定します。Cursor Marketplace やインストールリンクからワンクリックでインストールし、サイドバーの Customize でオン・オフを切り替えることもできます。

以下の内容はすべて公式の Cursor MCP ドキュメントと照合済みです。接続するサーバーがまだ決まっていない場合は、まず MCP サーバーディレクトリをご覧ください。

クイックリファレンス

タスク場所
グローバルサーバー(全プロジェクト)~/.cursor/mcp.json
プロジェクトサーバー(git にコミット可)リポジトリ内の .cursor/mcp.json
ローカルサーバーcommand + args(+ env、envFile)
リモートサーバーurl(+ headers、auth)
サーバーの有効化・無効化サイドバーの Customize でトグルを切り替え
リンクからインストールcursor://anysphere.cursor-deeplink/mcp/install?...
MCP ログを見るOutput パネルで MCP Logs を選択
ターミナルで同じサーバーを使うagent mcp list(Cursor CLI)

ステップ 1:グローバルかプロジェクトかを選ぶ

Cursor は 2 か所から MCP サーバーを読み込みます。

  • ホームディレクトリの ~/.cursor/mcp.json:どこでも使いたいツール(ドキュメントサーバー、ブラウザー、メモリーサーバーなど)向け。
  • プロジェクト内の .cursor/mcp.json:そのコードベースに属するツール(そのデータベース、その課題管理ツールなど)向け。このファイルをコミットすればチームメイトも同じサーバーを使えますが、シークレットは絶対に書かないでください(ステップ 3 参照)。

どちらのファイルも同じ形式です。トップレベルに mcpServers オブジェクトがあり、各キーが Cursor 上に表示されるサーバー名になります。

ステップ 2:サーバーを追加する

Cursor は 3 種類のトランスポートをサポートしています。ドキュメントによると、stdio サーバーは Cursor 自身が起動・管理し、SSE と Streamable HTTP サーバーは URL で接続して OAuth で認証できます。

ローカル stdio サーバー

stdio サーバーは、Cursor があなたのマシン上で起動するプログラムです。以下は、エージェントに本物のブラウザーを与える Playwright MCP サーバーの例です。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

Python サーバーも同じ形です。command を python(または uvx)にし、スクリプトやパッケージを args に入れます。stdio で使えるフィールドは type("stdio")、command(必須)、args、env、envFile です。

リモートサーバー(Streamable HTTP または SSE)

リモートサーバーに必要なのは URL だけです。Cursor は Streamable HTTP と旧来の SSE トランスポートの両方に対応しています。

{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:CONTEXT7_API_KEY}"
      }
    }
  }
}

これは最新のライブラリドキュメントをエージェントに提供する Context7 MCP サーバーです。多くのホスト型サーバー(例えば Notion、Linear、Sentry)はヘッダーではなく OAuth を使います。url だけを書けば、初回接続時に Cursor がブラウザーでサインイン画面を開きます。2 つのトランスポートの違いは SSE と Streamable HTTP をご覧ください。

複数のサーバーを併用する

各サーバーは mcpServers のキーの 1 つにすぎないので、1 つのファイルにローカルとリモートのエントリーを並べて書けます。通常は再起動不要です。サーバーが表示されない場合は、Customize でいったんオフにしてからオンに戻してください。

ステップ 3:mcp.json にシークレットを書かない

コミット済みの .cursor/mcp.json に API キーを直書きするのは最もよくある失敗です。Cursor にはこれを避ける仕組みが 2 つ組み込まれています。

変数の展開。 Cursor は command、args、env、url、headers 内の変数を解決します。

変数展開される値
${env:NAME}シェルの環境変数
${userHome}ホームフォルダー
${workspaceFolder}プロジェクトルート(.cursor/mcp.json を含むフォルダー)
${workspaceFolderBasename}プロジェクトルートのフォルダー名
${pathSeparator} または ${/}OS のパス区切り文字

例えば、GitHub MCP サーバーに GitHub トークンを Bearer ヘッダーとして渡す場合:

{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${env:GITHUB_PAT}"
      }
    }
  }
}

envFile(stdio のみ)。 変数を 1 つずつ並べる代わりに、ローカルサーバーに dotenv ファイルを読み込ませます。

{
  "mcpServers": {
    "my-tools": {
      "command": "python",
      "args": ["${workspaceFolder}/tools/mcp_server.py"],
      "envFile": "${workspaceFolder}/.env"
    }
  }
}

その .env は .gitignore に入れておきましょう。envFile は stdio サーバーでのみサポートされる点に注意してください。リモートサーバーでは headers 内で ${env:...} を使います。

静的 OAuth クライアント

リモートサーバーが動的登録ではなく事前登録済みの OAuth アプリを必要とする場合は、CLIENT_ID(必須)、CLIENT_SECRET(任意)、scopes(任意。省略するとサーバーの OAuth メタデータから自動検出)を含む auth オブジェクトを追加します。デスクトップアプリ用のリダイレクト URL として http://localhost:8787/callback を登録してください。フローの仕組みは MCP 認証ガイドで解説しています。

ステップ 4:ワンクリックのインストールリンク

ワンクリックでの導入方法は 2 つあります。

  1. Cursor Marketplace。 Customize を開いてマーケットプレイスを閲覧するか、マーケットプレイスのエントリーで Add to Cursor をクリックします。サーバーがインストールされ、OAuth サインインまで行われます。
  2. インストールリンク。 誰でも次の形式のディープリンクを公開できます(ドキュメント)。
cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64_ENCODED_CONFIG

config はサーバーオブジェクト単体(例:{"command":"npx","args":["-y","@playwright/mcp@latest"]})を base64 エンコードしたもので、外側の mcpServers は含みません。名前は name に入れます。ターミナルで次のように作れます。

echo -n '{"command":"npx","args":["-y","@playwright/mcp@latest"]}' | base64

リンクをクリックすると Cursor がインストール確認を表示します。インストールリンクは実行するコードと同じように扱い、承認する前に config をデコードしてコマンドを確認してください。

ステップ 5:ツールの利用・承認・制限

サーバーを有効にすると、エージェントはそのツールを認識し、いつ呼び出すかを自分で判断します。デフォルトでは、Cursor は MCP ツールを呼び出すたびに承認を求めます。ツール名の横の矢印をクリックすると、実際の引数を確認できます。auto-review 実行モードでは、許可リストにあるツールは即座に実行され、それ以外の呼び出しは Cursor の分類器を通ります。

Cursor が対応しているのはツールだけではありません。prompts、resources、roots、elicitation、そして MCP Apps 拡張(ツールがインタラクティブな UI を返す仕組み)もサポート対象として挙げられています。

40 ツールの上限は? 以前の Cursor は最初の 40 個の MCP ツールだけをモデルに送り、それを超えると警告を表示していました。2026 年 1 月以降、Cursor は動的コンテキスト探索(dynamic context discovery)を採用しています。ツールの説明はファイルに同期され、エージェントは最初はツール名だけを受け取り、必要なときに完全なスキーマを読み込みます。Cursor によると、MCP ツールを呼び出した実行ではエージェントの総トークンが約 46.9% 減少しました。それでもサーバーが少ないほどツールの選び間違いは減るので、使っていないサーバーは Customize で無効にしておきましょう。ツール選択に問題がある場合は、MCP ツールディスカバリーのガイドが参考になります。

ステップ 6:Cursor CLI でも同じサーバーを使う

Cursor CLI(agent)はエディターと同じ mcp.json 設定を使います(CLI MCP ドキュメント)。

agent mcp list                  # configured servers and their status
agent mcp list-tools playwright # a server's tools and parameters
agent mcp login notion          # authenticate a server from mcp.json
agent mcp disable playwright    # stop loading a server

Cursor MCP のトラブルシューティング

まずはログを確認します。Output パネル(macOS では Cmd+Shift+U、Windows と Linux では Ctrl+Shift+U)を開き、ドロップダウンから MCP Logs を選びます。失敗したサーバーはチャットにエラーを表示し、そのツール呼び出しを失敗として扱いますが、他のサーバーは動き続けます。

症状考えられる原因と対処
サーバーが表示されないJSON が不正(末尾のカンマ、括弧の閉じ忘れ)か、Customize でオフになっている。ファイルを検証し、トグルを確認する。
spawn npx ENOENT やコマンドが見つからないCursor の PATH に Node/Python がない。npx/python を絶対パスで指定するか、それらが通っているシェルから Cursor を起動する。
静的クライアントで OAuth サインインに失敗するプロバイダーの OAuth アプリに http://localhost:8787/callback をリダイレクト URL として登録する(デスクトップアプリが使用)。
リモートサーバーが 401 や 403 を返すヘッダーがない、または期限切れ。Cursor を起動した環境で ${env:NAME} が実際に設定されているか確認する。
npm サーバーが古いバージョンのままCustomize で削除し、npm cache clean --force を実行してから追加し直す。
エージェントがツールを使わない似たツールが多すぎる。不要なサーバーを無効にするか、プロンプトでツール名を指定する。

サーバーの挙動がおかしくログだけでは分からない場合は、MCP Inspector で Cursor の外からテストしましょう。そこでも失敗するなら、問題は Cursor ではなくサーバー側です。

セキュリティ上の注意

ローカル MCP サーバーはあなたのユーザー権限で動作し、すべてのツール結果はモデルのコンテキストに入ります。信頼できるソースのサーバーだけをインストールし、公式サーバー(ディレクトリで「Official」と書かれたもの)を優先し、データを書き込むツールでは承認プロンプトをオンのままにしてください。本番システムに接続する前に MCP セキュリティのベストプラクティスもお読みください。

次のステップ

よくある質問

Cursor の MCP 設定ファイルはどこにありますか?

Cursor はホームディレクトリの ~/.cursor/mcp.json からグローバルな MCP サーバーを、プロジェクトルートの .cursor/mcp.json からプロジェクト用サーバーを読み込みます。どちらも同じ mcpServers の JSON 形式です。

Cursor にリモート MCP サーバーを追加するには?

mcp.json の mcpServers に url フィールド(必要なら headers も)を持つエントリーを追加します。Cursor は Streamable HTTP と SSE の両方に対応し、OAuth を使うサーバーではブラウザーでサインイン画面を開きます。

Cursor の MCP に 40 ツールの上限はまだありますか?

以前のバージョンは最初の 40 個の MCP ツールだけをモデルに送っていました。2026 年 1 月以降は動的コンテキスト探索により必要なときだけツールの詳細を読み込みますが、不要なサーバーを無効にするとツール選択の精度が上がります。

Cursor で MCP サーバーが動かないのはなぜですか?

Output パネルで「MCP Logs」を選んでエラーを確認してください。よくある原因は、不正な JSON、npx などのコマンドが Cursor の PATH にないこと、環境変数の未設定、API キーの期限切れです。