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

# Model Context Protocol (MCP)

> stdio、HTTP、SSE トランスポートと、Teams および Enterprise 向けの管理者コントロールを使用して、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/cognitionai/-PTA3zzo2bR9Qfc8/desktop/assets/plugins/mcp-server-templates.jpg?fit=max&auto=format&n=-PTA3zzo2bR9Qfc8&q=85&s=011ca9d571dfa249d10d9f34b7287642" width="1666" height="1388" data-path="desktop/assets/plugins/mcp-server-templates.jpg" />
</Frame>

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

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

`http` サーバーでは、URL はエンドポイントの URL を反映し、`https://<your-server-url>/mcp` のような形式にする必要があります。

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

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

`~/.codeium/mcp_config.json` ファイルは、Cascade が接続できるサーバーの一覧が含まれた JSON ファイルです。

以下は設定例で、GitHub 向けに 1 つのサーバーを設定しています。

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

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

サーバーの例については、[公式の MCP server reference repository](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 チーム設定" horizontal={true} icon="hammer" href="https://windsurf.com/team/settings">
  チームのMCP設定を管理します。
</Card>

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

デフォルトでは、チーム内のユーザーは各自でMCPサーバーを設定できます。ただし、MCPサーバーを1つでも許可リストに追加すると、**許可リストに含まれないすべてのサーバーが**チームでブロックされます。

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

MCPサーバーを許可リストに追加すると、システムは次のルールに従って**正規表現パターンマッチング**を利用します。

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

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

<AccordionGroup>
  <Accordion title="オプション 1: Plugin Store のデフォルト設定（推奨）" description="Windsurf MCP Plugin Store のデフォルト設定を許可するには、Server Config (JSON) フィールドを空のままにします。">
    **Admin Whitelist の設定:**

    * **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"
          }
        }
      }
    }
    ```

    これにより、Server ID が Plugin Store のエントリと一致している限り、ユーザーは任意の有効な設定で GitHub MCPサーバーをインストールできます。
  </Accordion>

  <Accordion title="オプション 2: 完全一致の設定" description="ユーザーが利用する必要がある正確な設定を指定します。ユーザー設定はこの内容に完全一致している必要があります。">
    **Admin Whitelist の設定:**

    * **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="セキュリティ制御を維持しながら、ユーザー設定のバリエーションを許可するには正規表現パターンを利用します。">
    **Admin Whitelist の設定:**

    * **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` のような任意の数値ポートにマッチします
    * admins は 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 サーバーの[ツール](https://modelcontextprotocol.io/docs/concepts/tools)、[リソース](https://modelcontextprotocol.io/docs/concepts/resources)、および[プロンプト](https://modelcontextprotocol.io/docs/concepts/prompts)をサポートしています。
