> 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.

# MCP-server maken

POST https://api.elevenlabs.io/v1/convai/mcp-servers
Content-Type: application/json

Maak een nieuwe MCP-serverconfiguratie in de workspace.

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

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

## Request

### Body (application/json)

This endpoint expects a MCPServerRequestModel.

- `config` (MCPServerConfig-Input, required) — Configuratiedetails voor de MCP-server.

## Response

### 200

Geslaagde response

- `id` (string, required)
- `config` (MCPServerConfig-Output, required)
- `metadata` (MCPServerMetadataResponseModel, required) — De metadata van de MCP-server
- `access_info` (ResourceAccessInfo, optional, nullable) — De toegangsgegevens van de MCP-server
- `dependent_agents` (list of McpServerResponseModelDependentAgentsItems, optional) — Lijst met agents die afhankelijk zijn van deze MCP-server.

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### MCPServerConfig-Input

- `url` (McpServerConfigInputUrl, required) — De URL van de MCP-server. Als deze een secret bevat, sla die dan op als workspace secret; sla deze anders op als een gewone string. Moet https gebruiken
- `name` (string, required)
- `approval_policy` (enum, optional, default: require_approval_all) — Definieert het goedkeuringsbeleid op MCP-serverniveau voor het uitvoeren van tools.
  - Allowed values: `auto_approve_all`, `require_approval_all`, `require_approval_per_tool`
- `tool_approval_hashes` (list of MCPToolApprovalHash, optional) — Lijst met hashes voor toolgoedkeuring per tool wanneer approval_policy REQUIRE_APPROVAL_PER_TOOL is
- `transport` (enum, optional, default: SSE) — Het transporttype dat wordt gebruikt om verbinding te maken met de MCP-server
  - Allowed values: `SSE`, `STREAMABLE_HTTP`
- `secret_token` (McpServerConfigInputSecretToken, optional, nullable) — Het geheime token (Authorization-header), opgeslagen als workspacegeheim of inline geheim
- `request_headers` (map from string to McpServerConfigInputRequestHeaders, optional) — De headers in de request
- `request_meta` (map from string to McpServerConfigInputRequestMeta, optional) — Vermeldingen die in het MCP-veld `_meta` van tools/call-requests worden verzonden. Waarden kunnen JSON-scalars zijn, of verwijzingen naar een workspacegeheim, dynamische variabele of omgevingsvariabele die per aanroep wordt opgelost.
- `auth_connection` (McpServerConfigInputAuthConnection, optional, nullable) — Optionele authverbinding voor authenticatie bij deze MCP-server
- `description` (string, optional, default: )
- `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency. Geldt voor elke tool van deze MCP-server, tenzij dit per tool wordt overschreven.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent. Geldt voor elke tool van deze MCP-server, tenzij dit per tool wordt overschreven.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (enum, optional, nullable) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van tools wordt afgespeeld voor alle tools van deze MCP-server
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld voor alle tools van deze MCP-server
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe alle tools van deze MCP-server worden uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, default: 30) — De maximale wachttijd in seconden tot elke MCP-toolcall is voltooid. Moet tussen 5 en 300 seconden liggen (inclusief).
- `tool_config_overrides` (list of MCPToolConfigOverride-Input, optional) — Lijst met configuratie-overschrijvingen per tool die de standaardwaarden op serverniveau voor specifieke tools overschrijven
- `disable_compression` (boolean, optional, default: false) — Of HTTP-compressie voor deze MCP-server moet worden uitgeschakeld. Schakel dit in als de server geen gecomprimeerde responses ondersteunt.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, vereisen alle tools van deze MCP-server spraak vóór de uitvoering van de tool.
- `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl een tool van deze MCP-server wordt uitgevoerd.

### MCPServerConfig-Output

- `url` (McpServerConfigOutputUrl, required) — De URL van de MCP-server. Als deze een secret bevat, sla die dan op als workspace secret; sla deze anders op als een gewone string. Moet https gebruiken
- `name` (string, required)
- `approval_policy` (enum, optional, default: require_approval_all) — Definieert het goedkeuringsbeleid op MCP-serverniveau voor het uitvoeren van tools.
  - Allowed values: `auto_approve_all`, `require_approval_all`, `require_approval_per_tool`
- `tool_approval_hashes` (list of MCPToolApprovalHash, optional) — Lijst met hashes voor toolgoedkeuring per tool wanneer approval_policy REQUIRE_APPROVAL_PER_TOOL is
- `transport` (enum, optional, default: SSE) — Het transporttype dat wordt gebruikt om verbinding te maken met de MCP-server
  - Allowed values: `SSE`, `STREAMABLE_HTTP`
- `secret_token` (McpServerConfigOutputSecretToken, optional, nullable) — Het geheime token (Authorization-header), opgeslagen als workspacegeheim of inline geheim
- `request_headers` (map from string to McpServerConfigOutputRequestHeaders, optional) — De headers in de request
- `request_meta` (map from string to McpServerConfigOutputRequestMeta, optional) — Vermeldingen die in het MCP-veld `_meta` van tools/call-requests worden verzonden. Waarden kunnen JSON-scalars zijn, of verwijzingen naar een workspacegeheim, dynamische variabele of omgevingsvariabele die per aanroep wordt opgelost.
- `auth_connection` (McpServerConfigOutputAuthConnection, optional, nullable) — Optionele authverbinding voor authenticatie bij deze MCP-server
- `description` (string, optional, default: )
- `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency. Geldt voor elke tool van deze MCP-server, tenzij dit per tool wordt overschreven.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent. Geldt voor elke tool van deze MCP-server, tenzij dit per tool wordt overschreven.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (enum, optional, nullable) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van tools wordt afgespeeld voor alle tools van deze MCP-server
  - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld voor alle tools van deze MCP-server
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe alle tools van deze MCP-server worden uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, default: 30) — De maximale wachttijd in seconden tot elke MCP-toolcall is voltooid. Moet tussen 5 en 300 seconden liggen (inclusief).
- `tool_config_overrides` (list of MCPToolConfigOverride-Output, optional) — Lijst met configuratie-overschrijvingen per tool die de standaardwaarden op serverniveau voor specifieke tools overschrijven
- `disable_compression` (boolean, optional, default: false) — Of HTTP-compressie voor deze MCP-server moet worden uitgeschakeld. Schakel dit in als de server geen gecomprimeerde responses ondersteunt.
- `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, vereisen alle tools van deze MCP-server spraak vóór de uitvoering van de tool.
- `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl een tool van deze MCP-server wordt uitgevoerd.

### MCPServerMetadataResponseModel

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

### ResourceAccessInfo

- `is_creator` (boolean, required) — Of de gebruiker die de request doet de maker van de agent is
- `creator_name` (string, required) — Naam van de maker van de agent
- `creator_email` (string, required) — E-mailadres van de maker van de agent
- `role` (enum, required) — De rol van de gebruiker die de request uitvoert
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — Het toegangsniveau voor anonieme gebruikers. Als dit None is, wordt de resource niet openbaar gedeeld.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Waarom de aanvragende gebruiker toegang heeft tot deze resource. 'creator' = de aanroeper is de eigenaar. 'explicit' = de aanroeper (of een van diens workspacegroepen) staat in role_to_group_ids, naast de workspacebrede everyone-groep. 'workspace_default' = de workspacebrede everyone-groep staat in role_to_group_ids (elk niet-anoniem workspacelid, inclusief beheerders, ziet deze resource). 'workspace_admin' = de aanroeper is een workspacebeheerder en de beheerdersrol is de *enige* manier om toegang te krijgen; gereserveerd voor documenten die niemand anders kan zien. Hiermee kan de UI uitleggen waarom een kijker die beheerdersrechten omzeilt een document ziet dat niet expliciet met diegene is gedeeld.
  - 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) — Als de agent transitief afhankelijk is, bevat dit de ID's van de resources waarvan de agent rechtstreeks afhankelijk is.
- `type`: `unknown` (DependentUnknownAgentIdentifier)
  - `id` (string, required)
  - `referenced_resource_ids` (list of string, optional) — Als de agent transitief afhankelijk is, bevat dit de ID's van de resources waarvan de agent rechtstreeks afhankelijk is.

### ValidationError

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

### McpServerConfigInputUrl

De URL van de MCP-server. Als deze een secret bevat, sla die dan op als workspace secret; sla deze anders op als een gewone string. Moet https gebruiken

### MCPToolApprovalHash

Model voor het opslaan van hashes voor toolgoedkeuringen per tool.

- `tool_name` (string, required) — De naam van de MCP-tool
- `tool_hash` (string, required) — SHA256-hash van de parameters en beschrijving van de tool
- `approval_policy` (enum, optional, default: requires_approval) — Het goedkeuringsbeleid voor deze tool
  - Allowed values: `auto_approved`, `requires_approval`

### McpServerConfigInputSecretToken

Het geheime token (Authorization-header), opgeslagen als workspacegeheim of inline geheim

### McpServerConfigInputRequestHeaders

### McpServerConfigInputRequestMeta

### McpServerConfigInputAuthConnection

Optionele authverbinding voor authenticatie bij deze MCP-server

### MCPToolConfigOverride-Input

- `tool_name` (string, required) — De naam van de MCP-tool
- `pre_tool_speech` (enum, optional, nullable, default: auto) — Als dit is ingesteld, overschrijft het de instelling pre_tool_speech van de server voor deze tool.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, nullable, default: allow) — Als dit is ingesteld, overschrijft het de instelling interruption_mode van de server voor deze tool.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (McpToolConfigOverrideInputToolCallSound, optional, nullable) — Overschrijft de tool_call_sound-instelling van de server voor deze tool. Een geluidsnaam speelt dat geluid af; 'off' overschrijft naar geen geluid (stilte); null betekent niet overschrijven (de standaardwaarde van de server overnemen).
- `tool_call_sound_behavior` (enum, optional, nullable, default: auto) — Als dit is ingesteld, overschrijft het de instelling tool_call_sound_behavior van de server voor deze tool
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, nullable, default: immediate) — Als dit is ingesteld, overschrijft het de instelling execution_mode van de server voor deze tool
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, nullable) — Als dit is ingesteld, overschrijft het de responstime-out van de server voor deze MCP-tool (seconden).
- `assignments` (list of DynamicVariableAssignment, optional) — Toewijzingen van dynamische variabelen voor deze MCP-tool
- `input_overrides` (map from string to McpToolConfigOverrideInputInputOverrides, optional, nullable) — Toewijzing van JSON-pad aan configuratie voor invoeroverschrijving
- `response_mocks` (list of ToolResponseMockConfig-Input, optional, nullable) — Mockreacties met optionele parametervoorwaarden. Worden van boven naar beneden geëvalueerd; de eerste overeenkomst geldt.
- `force_pre_tool_speech` (boolean, optional, nullable, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Indien ingesteld, overschrijft dit de instelling force_pre_tool_speech van de server voor deze tool.
- `disable_interruptions` (boolean, optional, nullable, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Indien ingesteld, overschrijft dit de instelling disable_interruptions van de server voor deze tool.

### McpServerConfigOutputUrl

De URL van de MCP-server. Als deze een secret bevat, sla die dan op als workspace secret; sla deze anders op als een gewone string. Moet https gebruiken

### McpServerConfigOutputSecretToken

Het geheime token (Authorization-header), opgeslagen als workspacegeheim of inline geheim

### McpServerConfigOutputRequestHeaders

### McpServerConfigOutputRequestMeta

### McpServerConfigOutputAuthConnection

Optionele authverbinding voor authenticatie bij deze MCP-server

### MCPToolConfigOverride-Output

- `tool_name` (string, required) — De naam van de MCP-tool
- `pre_tool_speech` (enum, optional, nullable, default: auto) — Als dit is ingesteld, overschrijft het de instelling pre_tool_speech van de server voor deze tool.
  - Allowed values: `auto`, `force`, `off`
- `interruption_mode` (enum, optional, nullable, default: allow) — Als dit is ingesteld, overschrijft het de instelling interruption_mode van de server voor deze tool.
  - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
- `tool_call_sound` (McpToolConfigOverrideOutputToolCallSound, optional, nullable) — Overschrijft de tool_call_sound-instelling van de server voor deze tool. Een geluidsnaam speelt dat geluid af; 'off' overschrijft naar geen geluid (stilte); null betekent niet overschrijven (de standaardwaarde van de server overnemen).
- `tool_call_sound_behavior` (enum, optional, nullable, default: auto) — Als dit is ingesteld, overschrijft het de instelling tool_call_sound_behavior van de server voor deze tool
  - Allowed values: `auto`, `always`
- `execution_mode` (enum, optional, nullable, default: immediate) — Als dit is ingesteld, overschrijft het de instelling execution_mode van de server voor deze tool
  - Allowed values: `immediate`, `post_tool_speech`, `async`
- `response_timeout_secs` (integer, optional, nullable) — Als dit is ingesteld, overschrijft het de responstime-out van de server voor deze MCP-tool (seconden).
- `assignments` (list of DynamicVariableAssignment, optional) — Toewijzingen van dynamische variabelen voor deze MCP-tool
- `input_overrides` (map from string to McpToolConfigOverrideOutputInputOverrides, optional, nullable) — Toewijzing van JSON-pad aan configuratie voor invoeroverschrijving
- `response_mocks` (list of ToolResponseMockConfig-Output, optional, nullable) — Mockreacties met optionele parametervoorwaarden. Worden van boven naar beneden geëvalueerd; de eerste overeenkomst geldt.
- `force_pre_tool_speech` (boolean, optional, nullable, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Indien ingesteld, overschrijft dit de instelling force_pre_tool_speech van de server voor deze tool.
- `disable_interruptions` (boolean, optional, nullable, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Indien ingesteld, overschrijft dit de instelling disable_interruptions van de server voor deze tool.

### ValidationErrorLocItems

### ConvAISecretLocator

Gebruikt om naar een geheim uit de secret store van de agent te verwijzen.

- `secret_id` (string, required)

### ConvAIUserSecretDBModel

Gebruikersspecifiek geheimenmodel dat niet wordt gedeeld met andere gebruikers in een workspace.

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

### ConvAIDynamicVariable

Gebruikt om naar een dynamische variabele te verwijzen.

- `variable_name` (string, required)

### ConvAIEnvVarLocator

Gebruikt om via een label naar een omgevingsvariabele te verwijzen.

- `env_var_label` (string, required)

### AuthConnectionLocator

Gebruikt om naar een auth connection uit de auth connection-store van de workspace te verwijzen.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Verwijst op label naar een omgevingsvariabele van het type 'auth_connection'. Tijdens runtime wordt deze omgezet naar de auth connection voor de huidige omgeving, met terugval op de standaardomgeving.

- `env_var_label` (string, required)

### McpToolConfigOverrideInputToolCallSound

Overschrijft de tool_call_sound-instelling van de server voor deze tool. Een geluidsnaam speelt dat geluid af; 'off' overschrijft naar geen geluid (stilte); null betekent niet overschrijven (de standaardwaarde van de server overnemen).

### DynamicVariableAssignment

Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen.

- `dynamic_variable` (string, required) — De naam van de dynamische variabele waaraan de geëxtraheerde waarde wordt toegewezen
- `value_path` (string, required) — Pad in puntnotatie om de waarde uit de bron te extraheren (bijvoorbeeld 'user.name' of 'data.0.id')
- `source` ("response", optional, default: response) — De bron waaruit de waarde wordt geëxtraheerd. Momenteel wordt alleen 'response' ondersteund.
- `sanitize` (boolean, optional, default: false) — Als true, wordt de waarde van deze toewijzing uit de toolreactie verwijderd voordat deze naar het LLM en het transcript wordt verzonden, maar wordt deze nog wel verwerkt voor variabeletoewijzing.
- `preserve_native_type` (boolean, optional, default: false) — Als true, worden niet-scalaire waarden (lijsten, objecten) uit de toolreactie opgeslagen in hun oorspronkelijke type, in plaats van als JSON-string. Schakel dit in om geëxtraheerde arrays rechtstreeks als dynamische lijstvariabelen te gebruiken.

### McpToolConfigOverrideInputInputOverrides

- `source`: `constant` (ConstantSchemaOverride)
  - `constant_value` (WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue, required, nullable) — De constante waarde die je wilt gebruiken
- `source`: `dynamic_variable` (DynamicVariableSchemaOverride)
  - `dynamic_variable` (string, required) — De naam van de te gebruiken dynamische variabele
- `source`: `llm` (LLMSchemaOverride)
  - `prompt` (string, optional, nullable) — Promptoverschrijving voor de LLM. Als deze niet is opgegeven, wordt de oorspronkelijke schemabeschrijving gebruikt.
- `source`: `omit` (OmitSchemaOverride)

### ToolResponseMockConfig-Input

- `mock_result` (string, required) — De retourwaarde die de LLM ziet wanneer deze mock actief is.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Als de lijst leeg is, wordt de mock altijd geactiveerd.
- `is_error` (boolean, optional, default: false) — Als true, wordt het mockresultaat aan het LLM weergegeven als een toolfout in plaats van als een geslaagd resultaat.

### McpToolConfigOverrideOutputToolCallSound

Overschrijft de tool_call_sound-instelling van de server voor deze tool. Een geluidsnaam speelt dat geluid af; 'off' overschrijft naar geen geluid (stilte); null betekent niet overschrijven (de standaardwaarde van de server overnemen).

### McpToolConfigOverrideOutputInputOverrides

- `source`: `constant` (ConstantSchemaOverride)
  - `constant_value` (WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue, required, nullable) — De constante waarde die je wilt gebruiken
- `source`: `dynamic_variable` (DynamicVariableSchemaOverride)
  - `dynamic_variable` (string, required) — De naam van de te gebruiken dynamische variabele
- `source`: `llm` (LLMSchemaOverride)
  - `prompt` (string, optional, nullable) — Promptoverschrijving voor de LLM. Als deze niet is opgegeven, wordt de oorspronkelijke schemabeschrijving gebruikt.
- `source`: `omit` (OmitSchemaOverride)

### ToolResponseMockConfig-Output

- `mock_result` (string, required) — De retourwaarde die de LLM ziet wanneer deze mock actief is.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Als de lijst leeg is, wordt de mock altijd geactiveerd.
- `is_error` (boolean, optional, default: false) — Als true, wordt het mockresultaat aan het LLM weergegeven als een toolfout in plaats van als een geslaagd resultaat.

### WorkflowToolLocatorSchemaOverridesDiscriminatorMappingConstantConstantValue

De constante waarde die je wilt gebruiken

### UnitTestToolCallParameter

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

### UnitTestToolCallParameterEval

- `type`: `anything` (MatchAnythingParameterEvaluationStrategy)
- `type`: `exact` (ExactParameterEvaluationStrategy)
  - `expected_value` (string, required) — De exacte tekenreekswaarde waarmee de parameter moet overeenkomen.
- `type`: `llm` (LLMParameterEvaluationStrategy)
  - `description` (string, required) — Een beschrijving van de evaluatiestrategie voor de test.
- `type`: `regex` (RegexParameterEvaluationStrategy)
  - `pattern` (string, required) — Een regex-patroon waarmee het antwoord van de agent wordt vergeleken.

## Examples

**Request**

```json
{
  "config": {
    "url": "string",
    "name": "string"
  }
}
```

**Response**

```json
{
  "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"

payload = { "config": {
        "url": "string",
        "name": "string"
    } }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/mcp-servers';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"config":{"url":"string","name":"string"}}'
};

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"
	"strings"
	"net/http"
	"io"
)

func main() {

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

	payload := strings.NewReader("{\n  \"config\": {\n    \"url\": \"string\",\n    \"name\": \"string\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	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::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"config\": {\n    \"url\": \"string\",\n    \"name\": \"string\"\n  }\n}"

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.post("https://api.elevenlabs.io/v1/convai/mcp-servers")
  .header("Content-Type", "application/json")
  .body("{\n  \"config\": {\n    \"url\": \"string\",\n    \"name\": \"string\"\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/convai/mcp-servers', [
  'body' => '{
  "config": {
    "url": "string",
    "name": "string"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/mcp-servers");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"config\": {\n    \"url\": \"string\",\n    \"name\": \"string\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["config": [
    "url": "string",
    "name": "string"
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

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

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()
```