apicheats.dev elevenlabs/llms.txt Raw .md
PATCH

/v1/convai/mcp-servers/{mcp_server_id}/tool-configs/{tool_name}

ElevenLabs API

Update Mcp Tool Configuration Override

Base URL
https://api.elevenlabs.io
Auth
xi-api-key: <ELEVENLABS_API_KEY>
Last verified
2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 215 tokens · Vary: Accept

Critical gotchas

Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.

Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.

cURL

curl -X PATCH 'https://api.elevenlabs.io/v1/convai/mcp-servers/mcp-server-id/tool-configs/example-tool-name?environment=production' \  -H "xi-api-key: $ELEVENLABS_API_KEY" \  -H 'Content-Type: application/json' \  -d '{  "force_pre_tool_speech": true,  "pre_tool_speech": "auto",  "disable_interruptions": true,  "interruption_mode": "allow",  "tool_call_sound": "typing",  "tool_call_sound_behavior": "auto",  "execution_mode": "immediate",  "response_timeout_secs": 0,  "assignments": [    {      "dynamic_variable": "user_name",      "preserve_native_type": false,      "sanitize": false,      "source": "response",      "value_path": "user.name"    }  ],  "input_overrides": {},  "response_mocks": [    {      "parameter_conditions": [        {          "eval": {            "type": "[recursive or deeply nested schema]",            "description": "[recursive or deeply nested schema]"          },          "path": "string"        }      ],      "mock_result": "string",      "is_error": false    }  ]}'
Get a free ElevenLabs API key → sponsored

Parameters

Name In Type Required Description
mcp_server_id path string Yes ID of the MCP Server.
tool_name path string Yes Name of the MCP tool to update config overrides for.
environment query string No Environment whose values are used when the MCP server URL, headers, or auth connection reference environment variables. Mirrors the environment a conversation would run in; defaults to production.
force_pre_tool_speech body boolean No DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.
pre_tool_speech body string No If set, overrides the server's pre_tool_speech setting for this tool.
disable_interruptions body boolean No DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.
interruption_mode body string No If set, overrides the server's interruption_mode setting for this tool.
tool_call_sound body string No Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default).
tool_call_sound_behavior body string No If set, overrides the server's tool_call_sound_behavior setting for this tool
execution_mode body string No If set, overrides the server's execution_mode setting for this tool
response_timeout_secs body integer No If set, overrides the server's response timeout for this MCP tool.
assignments body object[] No Dynamic variable assignments for this MCP tool
input_overrides body object No Mapping of json path to input override configuration
response_mocks body object[] No Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins.

Response 200 OK

{
  "id": "string",
  "config": {
    "approval_policy": "require_approval_all",
    "tool_approval_hashes": [
      {
        "tool_name": "string",
        "tool_hash": "string",
        "approval_policy": "requires_approval"
      }
    ],
    "transport": "SSE",
    "url": "string",
    "secret_token": {
      "secret_id": "string"
    },
    "request_headers": {},
    "request_meta": {},
    "auth_connection": {
      "auth_connection_id": "string"
    },
    "name": "string",
    "description": "",
    "force_pre_tool_speech": false,
    "pre_tool_speech": "auto",
    "disable_interruptions": false,
    "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",
        "force_pre_tool_speech": true,
        "pre_tool_speech": "auto",
        "disable_interruptions": true,
        "interruption_mode": "allow",
        "tool_call_sound": "typing",
        "tool_call_sound_behavior": "auto",
        "execution_mode": "immediate",
        "response_timeout_secs": 0,
        "assignments": [
          {
            "dynamic_variable": "user_name",
            "preserve_native_type": false,
            "sanitize": false,
            "source": "response",
            "value_path": "user.name"
          }
        ],
        "input_overrides": {},
        "response_mocks": [
          {
            "parameter_conditions": "[recursive or deeply nested schema]",
            "mock_result": "[recursive or deeply nested schema]",
            "is_error": "[recursive or deeply nested schema]"
          }
        ]
      }
    ],
    "disable_compression": false
  },
  "access_info": {
    "access_source": "creator",
    "creator_email": "john.doe@example.com",
    "creator_name": "John Doe",
    "is_creator": true,
    "role": "admin"
  },
  "dependent_agents": [
    {
      "referenced_resource_ids": [
        "string"
      ],
      "id": "string",
      "name": "string",
      "type": "available",
      "created_at_unix_secs": 0,
      "access_level": "admin"
    }
  ],
  "metadata": {
    "created_at": 0,
    "owner_user_id": "string"
  }
}