> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Model Context Protocol (MCP)

> Teams および Enterprise 向けの管理者コントロール付きで、stdio、HTTP、または SSE トランスポートを使用して MCP サーバーを設定し、カスタムツールやサービスによって Cascade を拡張します。

**MCP（Model Context Protocol）** は、LLM がカスタムツールやサービスにアクセスできるようにするプロトコルです。
MCP クライアント（この場合は Cascade）は、提供されるツールにアクセスするために MCP サーバーへリクエストを送信できます。
Cascade は MCP とネイティブに統合されており、Cascade で使用する MCP サーバーを自由に持ち込んで利用できます。
詳しくは [公式 MCP ドキュメント](https://modelcontextprotocol.io/) を参照してください。

<Note>Enterprise ユーザーは、設定から手動で有効化する必要があります</Note>

<div id="adding-a-new-mcp-plugin">
  ## 新しい MCP プラグインの追加
</div>

新しい MCP プラグインは、`Settings` > `Tools` > `Windsurf Settings` > `Add Server` セクションから追加できます。

目的の MCP プラグインが見つからない場合は、`View Raw Config` ボタンをクリックし、生の `mcp_config.json` を編集して手動で追加できます。

MCP サーバーを選択したら、`+ Add Server` をクリックするだけで、そのサーバーとツールを Cascade で利用できるように公開できます。

<Frame>
  <img src="https://mintcdn.com/codeium/d8O4q6w3H2CjrirL/assets/plugins/mcp-server-templates.jpg?fit=max&auto=format&n=d8O4q6w3H2CjrirL&q=85&s=06f96424bd8374333d6969006868456e" width="1666" height="1388" data-path="assets/plugins/mcp-server-templates.jpg" />
</Frame>

Cascade は MCP サーバーに対して、`stdio`、`Streamable HTTP`、`SSE` の 3 種類の[トランスポート](https://modelcontextprotocol.io/docs/concepts/transports)をサポートしています。

また、Cascade は各トランスポートタイプごとに OAuth にも対応しています。

`http` サーバーの場合、URL はエンドポイントを指し、`https://<your-server-url>/mcp` の形式になります。

<Note>新しい MCP プラグインを追加した後は、必ず更新ボタンを押してください。</Note>

<div id="mcp_configjson">
  ## mcp\_config.json
</div>

`~/.codeium/mcp_config.json` ファイルは、Cascade が接続可能なサーバー一覧を記述する JSON ファイルです。

以下は GitHub 用に単一のサーバーをセットアップするサンプル設定です：

```json theme={null}
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
```

使用したいサーバーで必要となる引数と環境変数を必ず指定してください。

サンプルサーバーは [公式 MCP サーバー参照リポジトリ](https://github.com/modelcontextprotocol/servers) または [OpenTools](https://opentools.com/) を参照してください。

<div id="remote-http-mcps">
  ### リモート HTTP MCP
</div>

リモート HTTP MCP では、設定が少し異なり、`serverUrl` または `url` フィールドを指定する必要がある点に注意してください。

以下は HTTP サーバー用の設定例です。

```json theme={null}
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "value"
      }
    }
  }
}
```

<div id="config-interpolation">
  ### 設定の補間
</div>

`~/.codeium/mcp_config.json` ファイルでは、`command`、`args`、`env`、`serverUrl`、`url`、`headers` の各フィールドに含まれる環境変数の補間を行います。

以下は設定例で、`headers` 内で `AUTH_TOKEN` 環境変数を使用しています。

```json theme={null}
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "Bearer ${env:AUTH_TOKEN}"
      }
    }
  }
}
```

<div id="admin-controls-teams-enterprises">
  ## 管理者向け設定 (Teams & Enterprises)
</div>

チーム管理者は、チーム向けの MCP アクセスをオン/オフしたり、チームで利用を許可する MCP サーバーをホワイトリストに登録したりできます。

<Card title="MCP Team Settings" horizontal={true} icon="hammer" href="https://windsurf.com/team/settings">
  チーム向けの MCP 設定を行えます。
</Card>

<Warning>上記のリンクは、あなたにチームの管理者権限がある場合にのみアクセスできます。</Warning>

デフォルトでは、チーム内のユーザーは自分で MCP サーバーを設定できます。ただし、一度でも MCP サーバーをホワイトリストに登録すると、**ホワイトリストに含まれないすべてのサーバーは、そのチームでは利用できなくなります**。

<div id="how-server-matching-works">
  ### サーバーのマッチング動作
</div>

MCP サーバーを許可リストに追加すると、システムは次のルールで**正規表現によるパターンマッチング**を行います:

* **文字列全体の一致**: すべてのパターンは自動的にアンカー（`^(?:pattern)$` でラップ）され、部分一致を防ぎます
* **Command フィールド**: 完全一致、または指定した正規表現パターンに従って一致する必要があります
* **Arguments 配列**: 各引数は対応するパターンに対して個別にマッチします
* **配列の長さ**: 引数の数は許可リストとユーザー設定で完全に一致している必要があります
* **特殊文字**: `$`、`.`、`[`、`]`、`(`、`)` などの文字は正規表現で特別な意味を持つため、リテラルとして一致させたい場合は `\` でエスケープしてください

<div id="configuration-options">
  ### 構成オプション
</div>

<AccordionGroup>
  <Accordion title="オプション 1: プラグインストアのデフォルト（推奨）" description="Windsurf MCP Plugin Store のデフォルト構成を使用するには、Server Config (JSON) フィールドを空のままにします。">
    **管理者ホワイトリスト構成:**

    * **Server ID**: `github-mcp-server`
    * **Server Config (JSON)**: *(空のまま)*

    ```json theme={null}
    {}
    ```

    **対応するユーザー構成（`mcp_config.json`）:**

    ```json theme={null}
    {
      "mcpServers": {
        "github-mcp-server": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
          }
        }
      }
    }
    ```

    これにより、サーバー ID がプラグインストアのエントリと一致する限り、ユーザーは任意の有効な構成で GitHub MCP サーバーをインストールできます。
  </Accordion>

  <Accordion title="オプション 2: 完全一致の構成" description="ユーザーが必ず使用すべき正確な構成を指定します。ユーザーはこの構成に完全一致させる必要があります。">
    **管理者ホワイトリスト構成:**

    * **Server ID**: `github-mcp-server`
    * **Server Config (JSON)**:

    ```json theme={null}
    {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": ""
      }
    }
    ```

    **対応するユーザー構成（`mcp_config.json`）:**

    ```json theme={null}
    {
      "mcpServers": {
        "github-mcp-server": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
          }
        }
      }
    }
    ```

    ユーザーはこの構成を厳密に使用する必要があります。`command` や `args` のいかなる差異もブロックされます。`env` セクションの値は異なっても構いません。
  </Accordion>

  <Accordion title="オプション 3: 柔軟な正規表現パターン" description="セキュリティ制御を維持しつつ、ユーザー構成のバリエーションを許容するために正規表現パターンを使用します。">
    **管理者ホワイトリスト構成:**

    * **Server ID**: `python-mcp-server`
    * **Server Config (JSON)**:

    ```json theme={null}
    {
      "command": "python3",
      "args": ["/.*\\.py", "--port", "[0-9]+"]
    }
    ```

    **対応するユーザー構成（`mcp_config.json`）:**

    ```json theme={null}
    {
      "mcpServers": {
        "python-mcp-server": {
          "command": "python3",
          "args": ["/home/user/my_server.py", "--port", "8080"],
          "env": {
            "PYTHONPATH": "/home/user/mcp"
          }
        }
      }
    }
    ```

    この例は、セキュリティを維持しつつユーザーに柔軟性を提供します:

    * 正規表現 `/.*\\.py` は `/home/user/my_server.py` のような任意の Python ファイルパスにマッチします
    * 正規表現 `[0-9]+` は `8080` や `3000` のような任意の数値ポートにマッチします
    * 管理者が Python スクリプトのみが実行されることを担保しつつ、ユーザーはファイルパスやポートをカスタマイズできます
  </Accordion>
</AccordionGroup>

<div id="common-regex-patterns">
  ### よく使われる正規表現パターン
</div>

| パターン            | マッチする内容       | 例                      |
| --------------- | ------------- | ---------------------- |
| `.*`            | 任意の文字列        | `/home/user/script.py` |
| `[0-9]+`        | 任意の数字         | `8080`, `3000`         |
| `[a-zA-Z0-9_]+` | 英数字とアンダースコア   | `api_key_123`          |
| `\\$HOME`       | 文字通りの `$HOME` | `$HOME`（展開されない）        |
| `\\.py`         | 文字通りの `.py`   | `script.py`            |
| `\\[cli\\]`     | 文字通りの `[cli]` | `mcp[cli]`             |

<div id="notes">
  ## 注意
</div>

<div id="admin-configuration-guidelines">
  ### 管理者向け設定ガイドライン
</div>

* **環境変数**: `env` セクションは正規表現での照合対象ではなく、ユーザーが自由に設定できます
* **無効化ツール**: `disabledTools` 配列は別途処理され、ホワイトリスト照合の対象ではありません
* **大文字小文字の区別**: すべての照合は大文字小文字を区別します
* **エラーハンドリング**: 無効な正規表現パターンはログに記録され、アクセスは拒否されます
* **テスト**: 正規表現パターンは慎重にテストしてください。制限が厳しすぎると、正当なユースケースを妨げる可能性があります

<div id="troubleshooting">
  ### トラブルシューティング
</div>

ユーザーから、ホワイトリスト追加後に MCP サーバーが動作しないと報告があった場合:

1. **完全一致の確認**: ホワイトリストのパターンがユーザーの設定に厳密に一致しているか確認してください
2. **正規表現のエスケープを確認**: 特殊文字はエスケープが必要な場合があります（例: ドットをリテラルにするには `\.`）
3. **ログの確認**: 無効な正規表現パターンは警告としてログに記録されます
4. **パターンのテスト**: 正規表現テスターを使って、パターンが期待どおりに動作するか検証してください

注意: いずれかのサーバーをホワイトリストに登録すると、チームメンバーに対して**それ以外のサーバーはすべて自動的にブロック**されます。

<div id="general-information">
  ### 一般情報
</div>

* MCP のツール呼び出しは、任意のサーバー実装者が作成したコードを実行し得るため、MCP ツール呼び出しの失敗について当社は責任を負いません。念のため再度お伝えします：
* 現在サポートしているのは、MCP サーバーの[tools](https://modelcontextprotocol.io/docs/concepts/tools)、[resources](https://modelcontextprotocol.io/docs/concepts/resources)、および[prompts](https://modelcontextprotocol.io/docs/concepts/prompts)です。
