> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Listar servidores MCP

GET https://api.elevenlabs.io/v1/convai/mcp-servers

Recupere todas as configurações de servidor MCP disponíveis no workspace.

Reference: https://elevenlabs.io/docs/api-reference/mcp/list

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Response

### 200

Resposta bem-sucedida

- `mcp_servers` (list of MCPServerResponseModel, required)

## Errors

### 422 Unprocessable Entity Error

Erro de validação

- `detail` (list of ValidationError, optional)

## Types

### MCPServerResponseModel

Modelo de resposta que representa uma configuração de servidor MCP.

- `id` (string, required)
- `config` (MCPServerConfig-Output, required)
- `metadata` (MCPServerMetadataResponseModel, required) — Os metadados do servidor MCP
- `access_info` (ResourceAccessInfo, optional, nullable) — As informações de acesso do servidor MCP
- `dependent_agents` (list of McpServerResponseModelDependentAgentsItems, optional) — Lista de agentes que dependem deste servidor MCP.

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### MCPServerConfig-Output

- `url` (McpServerConfigOutputUrl, required) — A URL do servidor MCP. Se ela contiver um segredo, armazene-o como um segredo do workspace; caso contrário, armazene-a como uma string simples. Deve usar https
- `name` (string, required)
- `approval_policy` (enum, optional, default: require_approval_all) — Define a política de aprovação no nível do servidor MCP para a execução de ferramentas.
  - Allowed values: `auto_approve_all`, `require_approval_all`, `require_approval_per_tool`
- `tool_approval_hashes` (list of MCPToolApprovalHash, optional) — Lista de hashes de aprovação de ferramentas para aprovação por ferramenta quando approval_policy for REQUIRE_APPROVAL_PER_TOOL
- `transport` (enum, optional, default: SSE) — O tipo de transporte usado para se conectar ao servidor MCP
  - Allowed values: `SSE`, `STREAMABLE_HTTP`
- `secret_token` (McpServerConfigOutputSecretToken, optional, nullable) — O token secreto (cabeçalho Authorization) armazenado como um segredo do workspace ou segredo embutido
- `request_headers` (map from string to McpServerConfigOutputRequestHeaders, optional) — Os cabeçalhos incluídos na solicitação
- `request_meta` (map from string to McpServerConfigOutputRequestMeta, optional) — Entradas enviadas no campo `_meta` do MCP de solicitações tools/call. Os valores podem ser escalares JSON ou referências a um segredo do espaço de trabalho, uma variável dinâmica ou uma variável de ambiente resolvida por chamada.
- `auth_connection` (McpServerConfigOutputAuthConnection, optional, nullable) — Conexão de autenticação opcional a usar para autenticar neste servidor MCP
- `description` (string, optional, default: )
- `pre_tool_speech` (enum, optional, default: auto) — Controla se o agente fala antes de esta ferramenta ser chamada. 'auto' (padrão) decide com base na latência recente da ferramenta, 'force' sempre faz o agente falar e 'off' desativa totalmente esse comportamento, independentemente da latência. Aplica-se a todas as ferramentas deste servidor MCP, salvo se houver uma substituição por ferramenta.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, default: allow) — Controla se o usuário pode interromper o agente durante esta chamada de ferramenta. 'allow' (padrão) permite que o usuário interrompa a qualquer momento, 'disable_during_tool' suprime interrupções apenas enquanto a ferramenta está em execução e 'disable_during_tool_and_turn' suprime interrupções enquanto a ferramenta é executada e durante a resposta do agente que a segue. Aplica-se a todas as ferramentas deste servidor MCP, salvo se houver uma substituição por ferramenta.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (enum, optional, nullable) — Tipo de som predefinido para chamadas de ferramenta, reproduzido durante a execução de todas as ferramentas deste servidor MCP
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Determina quando o som de chamada da ferramenta deve tocar para todas as ferramentas deste servidor MCP.
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, default: immediate) — Determina quando e como todas as ferramentas deste servidor MCP são executadas: 'immediate' executa a ferramenta imediatamente quando solicitada pelo LLM; 'post_tool_speech' aguarda o agente terminar de falar antes de executar; e 'async' executa a ferramenta em segundo plano, sem bloquear — ideal para operações demoradas.
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, default: 30) — O tempo máximo, em segundos, para aguardar a conclusão de cada chamada de ferramenta MCP. Deve estar entre 5 e 300 segundos, inclusive.
- `tool_config_overrides` (list of MCPToolConfigOverride-Output, optional) — Lista de substituições de configuração por ferramenta que substituem os padrões no nível do servidor para ferramentas específicas
- `disable_compression` (boolean, optional, default: false) — Indica se deve desativar a compactação HTTP para este servidor MCP. Ative esta opção se o servidor não oferecer suporte a respostas compactadas.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `pre_tool_speech`. Se for true, todas as ferramentas deste servidor MCP exigirão fala antes da execução da ferramenta.
- `disable_interruptions` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `interruption_mode`. Se for true, o usuário não poderá interromper o agente enquanto qualquer ferramenta deste servidor MCP estiver em execução.

### MCPServerMetadataResponseModel

- `created_at` (integer, required)
- `owner_user_id` (string, optional, nullable)

### ResourceAccessInfo

- `is_creator` (boolean, required) — Indica se o usuário que faz a solicitação é o criador do agente
- `creator_name` (string, required) — Nome do criador do agente
- `creator_email` (string, required) — E-mail do criador do agente
- `role` (enum, required) — A função do usuário que faz a solicitação
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — O nível de acesso para usuários anônimos. Se for None, o recurso não será compartilhado publicamente.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Por que o usuário solicitante tem acesso a este recurso. 'creator' = o chamador é o proprietário. 'explicit' = o chamador (ou um dos grupos do workspace dele) está listado em role_to_group_ids além do grupo everyone de todo o workspace. 'workspace_default' = o grupo everyone de todo o workspace está listado em role_to_group_ids (todos os membros não anônimos do workspace, incluindo administradores, veem este recurso). 'workspace_admin' = o chamador é administrador do workspace e a função de administrador é o *único* caminho de acesso; reservado para documentos que ninguém mais pode ver. Permite que a interface revele por que um visualizador com desvio de administrador vê um documento que não foi compartilhado explicitamente com ele.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### McpServerResponseModelDependentAgentsItems

- `type`: `available` (DependentAvailableAgentIdentifier)
  - `access_level` (enum, required)
    - Allowed values: `admin`, `editor`, `commenter`, `viewer`
  - `created_at_unix_secs` (integer, required)
  - `id` (string, required)
  - `name` (string, required)
  - `referenced_resource_ids` (list of string, optional) — Se o agente for um dependente transitivo, contém os IDs dos recursos dos quais o agente depende diretamente.
- `type`: `unknown` (DependentUnknownAgentIdentifier)
  - `id` (string, required)
  - `referenced_resource_ids` (list of string, optional) — Se o agente for um dependente transitivo, contém os IDs dos recursos dos quais o agente depende diretamente.

### ValidationErrorLocItems

### McpServerConfigOutputUrl

A URL do servidor MCP. Se ela contiver um segredo, armazene-o como um segredo do workspace; caso contrário, armazene-a como uma string simples. Deve usar https

### MCPToolApprovalHash

Modelo para armazenar hashes de aprovação de ferramentas para aprovação por ferramenta.

- `tool_name` (string, required) — O nome da ferramenta MCP
- `tool_hash` (string, required) — Hash SHA256 dos parâmetros e da descrição da ferramenta
- `approval_policy` (enum, optional, default: requires_approval) — A política de aprovação desta ferramenta
  - Allowed values: `auto_approved`, `requires_approval`

### McpServerConfigOutputSecretToken

O token secreto (cabeçalho Authorization) armazenado como um segredo do workspace ou segredo embutido

### McpServerConfigOutputRequestHeaders

### McpServerConfigOutputRequestMeta

### McpServerConfigOutputAuthConnection

Conexão de autenticação opcional a usar para autenticar neste servidor MCP

### MCPToolConfigOverride-Output

- `tool_name` (string, required) — O nome da ferramenta MCP
- `pre_tool_speech` (enum, optional, nullable, default: auto) — Se definido, substitui a configuração pre_tool_speech do servidor para esta ferramenta.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, nullable, default: allow) — Se definido, substitui a configuração interruption_mode do servidor para esta ferramenta.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (McpToolConfigOverrideOutputToolCallSound, optional, nullable) — Substitui a configuração tool_call_sound do servidor para esta ferramenta. Um nome de som reproduz esse som; 'off' substitui por nenhum som (silêncio); null significa não substituir (herdar o padrão do servidor).
- `tool_call_sound_behavior` (enum, optional, nullable, default: auto) — Se definido, substitui a configuração tool_call_sound_behavior do servidor para esta ferramenta.
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, nullable, default: immediate) — Se definido, substitui a configuração execution_mode do servidor para esta ferramenta.
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, nullable) — Se definido, substitui o tempo limite de resposta do servidor para esta ferramenta MCP (segundos).
- `assignments` (list of DynamicVariableAssignment, optional) — Atribuições de variáveis dinâmicas para esta ferramenta MCP
- `input_overrides` (map from string to McpToolConfigOverrideOutputInputOverrides, optional, nullable) — Mapeamento do caminho JSON para a configuração de substituição de entrada
- `response_mocks` (list of ToolResponseMockConfig-Output, optional, nullable) — Respostas simuladas com condições de parâmetros opcionais. Avaliadas de cima para baixo; a primeira correspondência prevalece.
- `force_pre_tool_speech` (boolean, optional, nullable, deprecated) — DESCONTINUADO: use `pre_tool_speech`. Se definido, substitui a configuração force_pre_tool_speech do servidor para esta ferramenta.
- `disable_interruptions` (boolean, optional, nullable, deprecated) — DESCONTINUADO: use `interruption_mode`. Se definido, substitui a configuração disable_interruptions do servidor para esta ferramenta.

### ConvAISecretLocator

Usado para referenciar um segredo do armazenamento de segredos do agente.

- `secret_id` (string, required)

### ConvAIUserSecretDBModel

Modelo de segredos específico do usuário que não é compartilhado com outros usuários em um espaço de trabalho.

- `name` (string, required)
- `encrypted_value` (string, required)
- `nonce` (string, required)
- `id` (string, required)

### ConvAIDynamicVariable

Usado para referenciar uma variável dinâmica.

- `variable_name` (string, required)

### ConvAIEnvVarLocator

Usado para referenciar uma variável de ambiente pelo rótulo.

- `env_var_label` (string, required)

### AuthConnectionLocator

Usado para referenciar uma conexão de autenticação do armazenamento de conexões de autenticação do espaço de trabalho.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Referencia uma variável de ambiente do tipo 'auth_connection' pelo rótulo. Em tempo de execução, é resolvida para a conexão de autenticação do ambiente atual, recorrendo ao ambiente padrão.

- `env_var_label` (string, required)

### McpToolConfigOverrideOutputToolCallSound

Substitui a configuração tool_call_sound do servidor para esta ferramenta. Um nome de som reproduz esse som; 'off' substitui por nenhum som (silêncio); null significa não substituir (herdar o padrão do servidor).

### DynamicVariableAssignment

Configuração para extrair valores das respostas de ferramentas e atribuí-los a variáveis dinâmicas.

- `dynamic_variable` (string, required) — O nome da variável dinâmica à qual atribuir o valor extraído
- `value_path` (string, required) — Caminho em notação de ponto para extrair o valor da origem, por exemplo, 'user.name' ou 'data.0.id'.
- `source` ("response", optional, default: response) — A origem da qual extrair o valor. No momento, apenas 'response' é compatível.
- `sanitize` (boolean, optional, default: false) — Se for true, o valor desta atribuição será removido da resposta da ferramenta antes de ser enviado ao LLM e à transcrição, mas ainda será processado para atribuição de variável.
- `preserve_native_type` (boolean, optional, default: false) — Se for true, valores não escalares (listas, objetos) extraídos da resposta da ferramenta serão armazenados em seu tipo nativo, em vez de serem convertidos em strings JSON. Ative esta opção para usar arrays extraídos diretamente como variáveis dinâmicas de lista.

### McpToolConfigOverrideOutputInputOverrides

- `source`: `constant` (ConstantSchemaOverride)
  - `constant_value` (WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue, required, nullable) — O valor constante a ser usado
- `source`: `dynamic_variable` (DynamicVariableSchemaOverride)
  - `dynamic_variable` (string, required) — O nome da variável dinâmica a ser usada
- `source`: `llm` (LLMSchemaOverride)
  - `prompt` (string, optional, nullable) — Substituição do prompt para o LLM. Se não for fornecida, será usada a descrição do esquema original.
- `source`: `omit` (OmitSchemaOverride)

### ToolResponseMockConfig-Output

- `mock_result` (string, required) — O valor retornado que o LLM vê quando este mock está ativo.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Se a lista estiver vazia, o mock sempre será ativado.
- `is_error` (boolean, optional, default: false) — Se for true, o resultado do mock será apresentado ao LLM como um erro da ferramenta, em vez de um resultado bem-sucedido.

### WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue

O valor constante a ser usado

### UnitTestToolCallParameter

- `eval` (UnitTestToolCallParameterEval, required)
- `path` (string, required)

### UnitTestToolCallParameterEval

- `type`: `anything` (MatchAnythingParameterEvaluationStrategy)
- `type`: `exact` (ExactParameterEvaluationStrategy)
  - `expected_value` (string, required) — O valor exato da string ao qual o parâmetro deve corresponder.
- `type`: `llm` (LLMParameterEvaluationStrategy)
  - `description` (string, required) — Uma descrição da estratégia de avaliação a ser usada no teste.
- `type`: `regex` (RegexParameterEvaluationStrategy)
  - `pattern` (string, required) — Um padrão regex para comparar com a resposta do agente.

## Examples

**Response**

```json
{
  "mcp_servers": [
    {
      "id": "string",
      "config": {
        "url": "string",
        "name": "string",
        "approval_policy": "require_approval_all",
        "tool_approval_hashes": [
          {
            "tool_name": "string",
            "tool_hash": "string",
            "approval_policy": "requires_approval"
          }
        ],
        "transport": "SSE",
        "secret_token": {
          "secret_id": "string"
        },
        "request_headers": {},
        "request_meta": {},
        "auth_connection": {
          "auth_connection_id": "string"
        },
        "description": "",
        "pre_tool_speech": "auto",
        "interruption_mode": "allow",
        "tool_call_sound": "typing",
        "tool_call_sound_behavior": "auto",
        "execution_mode": "immediate",
        "response_timeout_secs": 30,
        "tool_config_overrides": [
          {
            "tool_name": "string",
            "pre_tool_speech": "auto",
            "interruption_mode": "allow",
            "tool_call_sound": "typing",
            "tool_call_sound_behavior": "auto",
            "execution_mode": "immediate",
            "response_timeout_secs": 1,
            "assignments": [
              {
                "dynamic_variable": "string",
                "value_path": "string",
                "source": "response",
                "sanitize": false,
                "preserve_native_type": false
              }
            ],
            "input_overrides": {},
            "response_mocks": [
              {
                "mock_result": "string",
                "parameter_conditions": [
                  {
                    "eval": {
                      "description": "string",
                      "type": "string"
                    },
                    "path": "string"
                  }
                ],
                "is_error": false
              }
            ],
            "force_pre_tool_speech": true,
            "disable_interruptions": true
          }
        ],
        "disable_compression": false,
        "force_pre_tool_speech": false,
        "disable_interruptions": false
      },
      "metadata": {
        "created_at": 1,
        "owner_user_id": "string"
      },
      "access_info": {
        "is_creator": true,
        "creator_name": "John Doe",
        "creator_email": "john.doe@example.com",
        "role": "admin",
        "access_source": "creator"
      },
      "dependent_agents": [
        {
          "type": "available",
          "access_level": "admin",
          "created_at_unix_secs": 1,
          "id": "string",
          "name": "string",
          "referenced_resource_ids": [
            "string"
          ]
        }
      ]
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/mcp-servers"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/mcp-servers';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/mcp-servers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/mcp-servers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/convai/mcp-servers")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/mcp-servers');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/mcp-servers");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/mcp-servers")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```