> ## 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)

> Configure servidores MCP para ampliar o Cascade com ferramentas e serviços personalizados via stdio, HTTP ou transporte SSE, com controles administrativos para Teams e Enterprise.

**MCP (Model Context Protocol)** é um protocolo que permite que LLMs acessem ferramentas e serviços personalizados.
Um cliente MCP (neste caso, o Cascade) pode fazer requisições a servidores MCP para acessar as ferramentas que eles disponibilizam.
O Cascade agora se integra nativamente ao MCP, permitindo que você use seus próprios servidores MCP no Cascade.
Consulte a [documentação oficial do MCP](https://modelcontextprotocol.io/) para mais informações.

<Note>Usuários Enterprise devem ativar isso manualmente nas Configurações</Note>

<div id="adding-a-new-mcp-plugin">
  ## Adicionando um novo plugin MCP
</div>

Novos plugins MCP podem ser adicionados acessando a seção `Configurações` > `Tools` > `Windsurf Settings` > `Add Server`.

Se você não encontrar o plugin MCP desejado, poderá adicioná-lo manualmente clicando no botão `View Raw Config` e editando o arquivo `mcp_config.json` bruto.

Ao selecionar um servidor MCP, basta clicar em `+ Add Server` para expor o servidor e suas ferramentas para o 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>

O Cascade oferece suporte a três [tipos de transporte](https://modelcontextprotocol.io/docs/concepts/transports) para servidores
MCP: `stdio`,  `Streamable HTTP` e `SSE`.

O Cascade também oferece suporte a OAuth para cada tipo de transporte.

Para servidores `http`, a URL deve corresponder à do endpoint e ter um formato como `https://<your-server-url>/mcp`.

<Note>Não se esqueça de clicar no botão de atualização após adicionar um novo plugin MCP.</Note>

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

O arquivo `~/.codeium/mcp_config.json` é um arquivo JSON com uma lista de servidores aos quais o Cascade pode se conectar.

Veja um exemplo de configuração que define um único servidor para o GitHub:

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

Certifique-se de fornecer os argumentos obrigatórios e as variáveis de ambiente necessários para os servidores que você quer usar.

Consulte o [repositório de referência oficial de servidores MCP](https://github.com/modelcontextprotocol/servers) ou o [OpenTools](https://opentools.com/) para ver alguns exemplos de servidores.

<div id="remote-http-mcps">
  ### MCPs HTTP remotos
</div>

É importante observar que, para MCPs HTTP remotos, a configuração é um pouco
diferente e exige um campo `serverUrl` ou `url`.

Veja um exemplo de configuração para um servidor HTTP:

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

<div id="config-interpolation">
  ### Interpolação na configuração
</div>

O arquivo `~/.codeium/mcp_config.json` permite a interpolação de
variáveis de ambiente nestes campos: `command`, `args`, `env`, `serverUrl`, `url` e
`headers`.

Aqui está um exemplo de configuração que usa a variável de ambiente `AUTH_TOKEN`
em `headers`.

```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">
  ## Controles administrativos (Teams & Enterprises)
</div>

Os administradores da equipe podem ativar ou desativar o acesso ao MCP para a equipe, bem como adicionar à lista de permissões servidores MCP aprovados para uso pela equipe:

<Card title="Configurações de MCP da equipe" horizontal={true} icon="hammer" href="https://windsurf.com/team/settings">
  Configurações de MCP que podem ser definidas para sua equipe.
</Card>

<Warning>O link acima só funcionará se você tiver privilégios de administrador na sua equipe.</Warning>

Por padrão, os usuários de uma equipe poderão configurar seus próprios servidores MCP. No entanto, assim que você adicionar um único servidor MCP à lista de permissões, **todos os servidores que não estiverem nessa lista serão bloqueados** para sua equipe.

<div id="how-server-matching-works">
  ### Como funciona a correspondência de servidor
</div>

Quando você coloca um servidor MCP na lista de permissões, o sistema usa **correspondência por padrão regex** com as seguintes regras:

* **Correspondência da string completa**: todos os padrões são automaticamente ancorados (envolvidos por `^(?:pattern)$`) para evitar correspondências parciais
* **Campo de comando**: deve corresponder exatamente ou seguir o seu padrão regex
* **Array de argumentos**: cada argumento é comparado individualmente com seu padrão correspondente
* **Comprimento do array**: o número de argumentos deve corresponder exatamente entre a lista de permissões e a configuração do usuário
* **Caracteres especiais**: caracteres como `$`, `.`, `[`, `]`, `(`, `)` têm significado especial em regex e devem ser escapados com `\` se você quiser uma correspondência literal

<div id="configuration-options">
  ### Opções de configuração
</div>

<AccordionGroup>
  <Accordion title="Opção 1: Padrão da Plugin Store (recomendado)" description="Deixe o campo Server Config (JSON) vazio para permitir a configuração padrão da Windsurf MCP Plugin Store.">
    **Configuração da lista de permissões do administrador:**

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

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

    **Configuração de usuário correspondente (`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"
          }
        }
      }
    }
    ```

    Isso permite que os usuários instalem o servidor MCP do GitHub com qualquer configuração válida, desde que o ID do servidor corresponda à entrada na plugin store.
  </Accordion>

  <Accordion title="Opção 2: Configuração com correspondência exata" description="Forneça a configuração exata que os usuários devem usar. Eles devem corresponder exatamente a essa configuração.">
    **Configuração da lista de permissões do administrador:**

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

    **Configuração de usuário correspondente (`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"
          }
        }
      }
    }
    ```

    Os usuários devem usar exatamente essa configuração; qualquer desvio em `command` ou `args` será bloqueado. A seção `env` pode ter valores diferentes.
  </Accordion>

  <Accordion title="Opção 3: Padrões regex flexíveis" description="Use padrões regex para permitir variações nas configurações dos usuários, mantendo os controles de segurança.">
    **Configuração da lista de permissões do administrador:**

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

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

    **Configuração de usuário correspondente (`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"
          }
        }
      }
    }
    ```

    Este exemplo oferece flexibilidade aos usuários, mantendo a segurança:

    * A regex `/.*\\.py` corresponde a qualquer caminho de arquivo Python, como `/home/user/my_server.py`
    * A regex `[0-9]+` corresponde a qualquer porta numérica, como `8080` ou `3000`
    * Os usuários podem personalizar caminhos de arquivos e portas, enquanto os administradores garantem que apenas scripts Python sejam executados
  </Accordion>
</AccordionGroup>

<div id="common-regex-patterns">
  ### Padrões comuns de regex
</div>

| Padrão          | Corresponde a                    | Exemplo                 |
| --------------- | -------------------------------- | ----------------------- |
| `.*`            | Qualquer sequência de caracteres | `/home/user/script.py`  |
| `[0-9]+`        | Qualquer número                  | `8080`, `3000`          |
| `[a-zA-Z0-9_]+` | Alfanumérico + underscore        | `api_key_123`           |
| `\\$HOME`       | `$HOME` literal                  | `$HOME` (não expandido) |
| `\\.py`         | `.py` literal                    | `script.py`             |
| `\\[cli\\]`     | `[cli]` literal                  | `mcp[cli]`              |

<div id="notes">
  ## Notas
</div>

<div id="admin-configuration-guidelines">
  ### Diretrizes de configuração do administrador
</div>

* **Variáveis de ambiente**: a seção `env` não usa correspondência por regex e pode ser configurada livremente pelos usuários
* **Ferramentas desativadas**: o array `disabledTools` é tratado separadamente e não faz parte da correspondência da lista de permissões
* **Diferenciação entre maiúsculas e minúsculas**: toda correspondência diferencia maiúsculas de minúsculas
* **Tratamento de erros**: padrões de regex inválidos serão registrados em log e resultarão em negação de acesso
* **Testes**: teste seus padrões de regex com cuidado - padrões excessivamente restritivos podem bloquear casos de uso legítimos

<div id="troubleshooting">
  ### Solução de problemas
</div>

Se os usuários relatarem que seus servidores MCP não estão funcionando após a inclusão na lista de permissões:

1. **Verifique a correspondência exata**: Certifique-se de que o padrão da lista de permissões corresponda exatamente à configuração do usuário
2. **Verifique o escape de regex**: Caracteres especiais podem precisar ser escapados (por exemplo, `\.` para pontos literais)
3. **Revise os logs**: Padrões de regex inválidos são registrados com avisos
4. **Teste os padrões**: Use um testador de regex para confirmar que seus padrões funcionam como esperado

Lembre-se: depois que você inclui qualquer servidor na lista de permissões, **todos os outros servidores são automaticamente bloqueados** para os membros da sua equipe.

<div id="general-information">
  ### Informações gerais
</div>

* Como as chamadas de ferramentas do MCP podem invocar código escrito por implementadores de servidor diversos, não nos responsabilizamos
  por falhas nessas chamadas de ferramentas do MCP. Reforçando:
* No momento, oferecemos suporte às [ferramentas](https://modelcontextprotocol.io/docs/concepts/tools), aos [recursos](https://modelcontextprotocol.io/docs/concepts/resources) e aos [prompts](https://modelcontextprotocol.io/docs/concepts/prompts) de um servidor MCP.
