Cursor MCP 設定ガイド:Cursor に MCP サーバーを追加・設定する方法
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 つあります。
- Cursor Marketplace。 Customize を開いてマーケットプレイスを閲覧するか、マーケットプレイスのエントリーで Add to Cursor をクリックします。サーバーがインストールされ、OAuth サインインまで行われます。
- インストールリンク。 誰でも次の形式のディープリンクを公開できます(ドキュメント)。
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 セキュリティのベストプラクティスもお読みください。
次のステップ
- MCP サーバーディレクトリやおすすめ MCP サーバーのリストから、追加する価値のあるサーバーを探しましょう。
- 他のクライアントも設定するなら、Claude Code MCP、VS Code MCP 設定、Claude Desktop MCP をご覧ください。
- プロトコル自体が初めてなら、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 キーの期限切れです。