Open2

Cursor MCP Clientの利用について📝

まさぴょん🐱まさぴょん🐱

Cursor MCP Clientの利用について📝

Cursor Settingsを選択する📝

Add new global MCP Server を押す。

すると、mcp.jsonが開かれるので、以下のように内容を追記する。

mcp.json
{
    "mcpServers": {
      "playwright": {
        "command": "npx",
        "args": [
          "@playwright/mcp@latest"
        ]
      },
      "lapras": {
        "command": "npx",
        "args": [
          "-y",
          "@lapras-inc/lapras-mcp-server"
        ],
        "env": {
          "LAPRAS_API_KEY": "<YOUR_LAPRAS_API_KEY>" // LAPRASのAPI Keyを取得してください。
        }
      }
    }
}
  

追加したMCP Server は、このように反映されます。
(追加した後は、リフレッシュボタンを押して設定を反映させましょう📝)

lapras-mcp-serverを利用して、求人検索をしている様子📝

Playwright MCPを利用して、Web操作をさせている時の様子📝

まさぴょん🐱まさぴょん🐱

Cursor の mcp.json について設定内容について📝

1. どこに置く? – 配置場所と検索順序

スコープ 既定パス 説明
プロジェクト固有 <project>/.cursor/mcp.json リポジトリ共有用。チーム全員で同じ MCP を使う場合に便利。([Cursor][1], [Nx][2])
グローバル ~/.cursor/mcp.json (Windows は %USERPROFILE%\.cursor\mcp.json) どのワークスペースでも共通で使いたい MCP を定義。Cursor はまずローカル → 次にグローバルの順に読み込みます。([Cursor - Community Forum][3])

Tips
GUI からサーバーを追加すると最初に空の mcp.json が自動生成されます。v0.47 以降 UI がなくなったため手動編集が前提になりました。([Cursor - Community Forum][4])


2. JSON スキーマの概要

mcp.json
{
  "mcpServers": {
    "<server-name>": {
      // ★ stdio (ローカルプロセス) なら…
      "command": "python",          // or "npx", "go", など任意
      "args": ["path/to/server.py"],
      // ★ SSE (リモート/ローカル常駐) なら…
      // "url": "http://localhost:8000/sse",

      /* 共通オプション */
      "env": { "API_KEY": "value" },   // 起動時の環境変数
      "cwd": "/optional/working/dir",  // プロセスを起動する作業ディレクトリ
      "enabled": true                  // false にすると一時的に無効化
    }
  }
}
フィールド 必須 説明
command stdio で必須 実行ファイルまたはランチャー (python, npx, node, uv 等)([Medium][5], [PyPI][6])
args stdio で必須 配列でコマンドライン引数を列挙。配列でないと mcpServers must be an object エラーになるので注意。([Cursor - Community Forum][4])
url SSE で必須 http(s)://host:port/sse 形式のエンドポイント。Cursor は HTTP + Server-Sent Events で接続。([DEV Community][7])
env 任意 API キーなどを文字列で渡す。複数可。([Cursor][1])
cwd 任意 プロセスを起動するワーキングディレクトリ。大型プロジェクトでルート相対のパス解決が必要な場合に便利。([GitHub][8])
enabled 任意 false にすると設定を残したまま一時停止できる(Medium 記事でも利用例あり)。([Medium][5])

3. 代表的な設定例

3-1. Node.js CLI (stdio)

mcp.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
    }
  }
}

Cursor がローカルで npx -y @modelcontextprotocol/server-github を実行し、標準入出力で通信します。([Cursor][1], [Medium][5])

3-2. Python CLI (stdio)

mcp.json
{
  "mcpServers": {
    "duckdb": {
      "command": "/usr/bin/python",
      "args": ["duckdb_server.py"],
      "cwd": "/opt/duckdb-mcp",
      "env": { "PORT": "8010" }
    }
  }
}

cwd を指定して仮想環境下のスクリプトを呼び出す例。([GitHub][8], [PyPI][6])

3-3. Remote SSE

mcp.json
{
  "mcpServers": {
    "hackernews": {
      "url": "https://mcp.composio.dev/hackernews/<secure-token>",
      "env": { "API_KEY": "value" }
    }
  }
}

手元でプロセスを立ち上げないため、CI や複数マシン共有に向いています。([DEV Community][7])


4. 使いこなしのポイント & よくあるハマりどころ

  1. 40 ツール制限
    Cursor は最大 40 個までしかツール定義を LLM に渡さないため、大量に登録する場合は enabled:false で絞り込むか、プロジェクト別に分割が必要です。([Medium][5])

  2. 秘密情報の扱い
    env は平文で保存されるため、そのまま Git にコミットしないこと。Vault の出力展開は JSON 上はただの文字列になるので注意が必要です。([Reddit][9])

    • 実運用では .cursor/mcp.json.gitignore に追加 し、CI 用には環境変数で上書きする方式が推奨です。
  3. 「Editor が mcp.json を開くだけで UI が出ない」問題
    v0.47 で UI が一時的に削除され、手動編集が必要になりました。ファイルが空配列になっていると認識されないので、必ずオブジェクト形式で書き直してください。([Cursor - Community Forum][4])

  4. 動作確認
    Cmd/Ctrl + Shift + J → MCP タブでステータス(緑点)を確認。エラー時は View → Output → Cursor MCP に詳細ログが出ます。([Cursor - Community Forum][3])


5. ベストプラクティスまとめ

項目 推奨
バージョン管理 プロジェクト固有の場合でも API キーは別ファイル (.env) に分離し、mcp.json では ENV_VAR_NAME のみ参照させる
大規模構成 ツールが 40 個を越える場合は enabled:false やプロジェクト分割を活用
クロスプラットフォーム command は絶対パスより npx, python など PATH 検出可能な呼び方に寄せる
CI/CD 実行ユーザーに PATH/CWD が正しく通るよう、cwd を活用して「どこからでも動く」書き方に統一
セキュリティ Vault/1Password-CLI などでトークンを動的に注入し、平文コミットを回避

参考・引用

https://docs.cursor.com/context/model-context-protocol

https://dev.to/composiodev/how-to-connect-cursor-to-100-mcp-servers-within-minutes-3h74