Installation
Set up the ElevenLabs MCP server in Cohorva
Do this once to provision your hosted server URL.
Create a Cohorva account
To use this MCP, you need a Cohorva account. If you don't have one yet, sign up and start a 14-day free trial.
Add and authorize the ElevenLabs server
In Cohorva, open Connectors and add ElevenLabs. Depending on the app, you'll either sign in via OAuth or paste an API key. Either way, the credential is stored securely in Cohorva.
Then use it in your client
Use in CohorvaUse ElevenLabs in an agent
Once ElevenLabs is set up, just open any Cohorva agent, add ElevenLabs as a connector, and start chatting with the agent.
Tools (106)
Agents List
List ElevenLabs Agents in the authenticated workspace.
Agents Get
Get the full configuration for an ElevenLabs Agent.
Agents Get Summaries
Get lightweight summaries for one or more ElevenLabs Agents.
Agents Get Widget
Get widget configuration for an ElevenLabs Agent.
Agents Get Link
Get the shareable link for an ElevenLabs Agent.
Agents Get Knowledge Size
Get the size of an ElevenLabs Agent's knowledge base.
Agents Calculate Llm Usage
Calculate expected LLM usage for an ElevenLabs Agent. API reference: https://elevenlabs.io/docs/api-reference/agents/calculate
Agents List Conversations
List conversations for the authenticated workspace, optionally filtered to a specific agent via agent_id.
Agents Get Conversation
Get the details of a conversation, including its transcript and analysis results.
Agents Duplicate
Duplicate an existing ElevenLabs Agent. API reference: https://elevenlabs.io/docs/api-reference/agents/duplicate
Agents Delete
Delete an ElevenLabs Agent.
Agents Search Conversation Messages
Search the text of conversation transcripts and return the matching messages, each with its conversation_id, transcript_index, message text, and relevance score. This is the only way to find conversations by something that was said; agents_list_conversations filters on structured attributes and cannot search transcript text. Wrap text_query in double quotes to match the terms as written (do this for error codes, identifiers, and anything a user pasted); leave it unquoted to match fuzzily, tolerating one character of difference per term. Neither form is a substring or phrase match -- a multi-word query matches messages containing all of the terms in any position -- so read the returned text before treating a hit as an occurrence. Results are messages, not conversations: deduplicate by conversation_id before counting.
Agents Resolve Conversation
Resolve a conversation reference (e.g. a dashboard URL or share link) to its conversation.
Agents Get Topics
Get the conversation topics surfaced for an ElevenLabs Agent.
Agents List Branches
List the branches of an ElevenLabs Agent.
Agents Get Branch
Get a single branch of an ElevenLabs Agent.
Agents Update Branch
Update a branch of an ElevenLabs Agent.
Agents Get Version
Get metadata for a specific version of an ElevenLabs Agent.
Agents Merge Branch Preview
Preview the changes that merging a source branch would apply, without mutating anything.
Agents Merge Branch
Merge a source branch into its target branch.
Agents Create Deployment
Create a deployment for an ElevenLabs Agent (sets which branch serves live traffic).
Agents Create Draft
Create a draft for an ElevenLabs Agent.
Agents Delete Draft
Delete the draft of an ElevenLabs Agent.
Agents Create Procedure
Create a procedure (an agent skill) on an agent branch.
Agents List Procedures
List the procedures on an agent branch.
Agents Get Procedure
Get a single procedure on an agent branch.
Agents Delete Procedure
Remove a procedure from an agent branch.
Agents Compile Procedures
Compile the procedures on an agent branch.
Agents Get Procedure Draft
Get the draft of a procedure on an agent branch.
Agents Update Procedure Draft
Update the draft of a procedure on an agent branch.
Agents Delete Procedure Draft
Delete the draft of a procedure on an agent branch.
Agents List Knowledge Base
List the documents in the workspace knowledge base.
Agents Get Kb Document
Get a single knowledge base document.
Agents Create Kb Text
Create a knowledge base document from raw text.
Agents Create Kb Url
Create a knowledge base document from a URL.
Agents Create Kb Folder
Create a folder in the knowledge base.
Agents Update Kb Document
Update a knowledge base document's metadata.
Agents Delete Kb Document
Delete a knowledge base document.
Agents Bulk Delete Knowledge Base
Delete multiple knowledge base documents at once.
Agents Bulk Move Knowledge Base
Move multiple knowledge base items into a folder.
Agents Search Knowledge Base
Search the workspace knowledge base by content.
Agents Query Knowledge Base Rag
Run a RAG query against an ElevenLabs Agent's knowledge base.
Agents Get Kb Dependents
List the agents that depend on a knowledge base document.
Agents Create Tool
Create an ElevenLabs Agent tool (client, webhook, or other type per the request body).
Agents List Tools
List the ElevenLabs Agent tools in the workspace.
Agents Get Tool
Get a single ElevenLabs Agent tool.
Agents Update Tool
Update an ElevenLabs Agent tool.
Agents Delete Tool
Delete an ElevenLabs Agent tool.
Agents Get Tool Dependents
List the agents that depend on a tool.
Agents Get Tool Executions
Get the execution history for a tool.
Agents Create Mcp Server
Register an MCP server that agents can use as a tool source.
Agents List Mcp Servers
List the MCP servers registered in the workspace.
Agents Get Mcp Server
Get a single registered MCP server.
Agents Update Mcp Server
Update the configuration of a registered MCP server.
Agents Delete Mcp Server
Delete a registered MCP server.
Agents List Mcp Server Tools
List the tools exposed by a registered MCP server.
Agents Create Test
Create an agent response test.
Agents List Tests
List the agent response tests in the workspace.
Agents Get Test
Get a single agent response test.
Agents Delete Test
Delete an agent response test.
Agents Run Tests
Run a suite of tests against an ElevenLabs Agent.
Agents List Test Runs
List test-suite invocations (test runs) in the workspace.
Agents Get Test Run
Get the details of a single test-suite invocation (test run).
Agents List Phone Numbers
List the phone numbers in the workspace.
Agents Get Phone Number
Get a single phone number.
Agents Update Phone Number
Update a phone number (e.g. assign it to an agent).
Agents Delete Phone Number
Delete a phone number from the workspace.
Agents List Triage Tickets
List an agent's conversation triage tickets, ordered by most recently created first. These are tickets about the agent's own performance on a conversation (for triage with Architect), not tickets an agent opens for end users.
Agents Create Manual Triage Ticket
Manually raise a follow-up ticket against an agent, not tied to any conversation (for example a task like 'add the KB about X').
Agents Get Triage Ticket Assignable Users
List workspace members who can be assigned a conversation triage ticket for an agent, flagged with whether they currently have at least viewer access to the agent.
Agents Get Triage Ticket
Get a conversation triage ticket by ID.
Agents Create Triage Ticket
Raise a ticket about an agent's performance on a conversation, for triage with Architect. Provide an overall comment and/or turn-level comments describing what went wrong.
Agents Update Triage Ticket
Update a conversation triage ticket's comment, status, and/or assignee.
Agents Add Triage Ticket Comment
Append a comment discussing how to resolve a conversation triage ticket.
Agents Add Triage Ticket Turn Comment
Append a turn-level comment to a conversation triage ticket.
Agents Delete Triage Ticket
Delete a conversation triage ticket. Restricted to the ticket creator or a workspace admin.
Agents Create
Create a new Conversational AI agent from a compact set of common fields. Use this for normal agent creation. API reference: https://elevenlabs.io/docs/api-reference/agents/create
Agents Update
Update common Conversational AI agent settings from a compact set of fields. API reference: https://elevenlabs.io/docs/api-reference/agents/update
Agents Create Branch
Create a new working branch for an ElevenLabs Agent from a compact set of fields.
Creative Generate Image
Generate an image from a text prompt. This is the tool for any request to create an image. Returns at once with flow_id, node_id and session_ids, plus a url the user can open to keep editing on the canvas. If a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status with the flow_id and session_ids until all_completed or has_failures is true. Pass that flow_id back to add to the same flow; omit it and a flow is created. If this generation will feed another (lipsync, a voiceover), call creative_create_flow first and pass that flow_id here and to every related call — nodes on different flows cannot be connected. Spends credits: pass estimate_only to price a run before committing to it, and never call this a second time to retry — that starts and charges a second generation.
Creative Generate Video
Generate a video from a text prompt. This is the tool for any request to create a video. Returns at once with flow_id, node_id and session_ids, plus a url the user can open to keep editing on the canvas. If a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status with the flow_id and session_ids until all_completed or has_failures is true. Pass that flow_id back to add to the same flow; omit it and a flow is created. If this generation will feed another (lipsync, a voiceover), call creative_create_flow first and pass that flow_id here and to every related call — nodes on different flows cannot be connected. Spends credits: pass estimate_only to price a run before committing to it, and never call this a second time to retry — that starts and charges a second generation.
Creative Generate Speech
Generate speech from a text prompt. This is the tool for any request to create speech. Returns at once with flow_id, node_id and session_ids, plus a url the user can open to keep editing on the canvas. If a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status with the flow_id and session_ids until all_completed or has_failures is true. Pass that flow_id back to add to the same flow; omit it and a flow is created. If this generation will feed another (lipsync, a voiceover), call creative_create_flow first and pass that flow_id here and to every related call — nodes on different flows cannot be connected. Spends credits: pass estimate_only to price a run before committing to it, and never call this a second time to retry — that starts and charges a second generation.
Creative Edit Image
Edit an existing image already on this flow: pass its node_id as connect_from and it starts at once. That node can be one an earlier creative_generate_image call on this same flow just produced ("make it darker", "same image but at sunset"), one from creative_add_flow_asset_node, or one from creative_upload_flow_reference. It must be on this flow_id — pass back the flow_id the earlier call returned rather than letting a new flow be created; nodes on different flows cannot be connected. connect_from is required; a call with none raises — call creative_upload_flow_reference first for a file on the user's own machine. Never say this connector cannot edit images, and never ask the user to attach a file to the chat. Returns flow_id, node_id and session_ids, plus a url to keep editing on the canvas. If a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status until all_completed or has_failures is true. Spends credits: never call this a second time to retry. For an image edit driven by a reference — 'change X into Y in this image' — use gpt-image-2 unless the user names a model. It is the default for this specifically; the plain text-to-image default does not apply once a reference is wired.
Creative Transcribe Audio
Transcribe speech in an audio file into text. This is the tool for any request to transcribe, caption or "what does this audio say". Pass connect_from with the audio node already on the flow and it starts at once; omit it and a file picker is shown to the user, which uploads the audio and starts the transcription itself. Returns flow_id, node_id and session_ids, plus a url the user can open to keep editing on the canvas. If a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status until all_completed or has_failures is true — the transcript comes back in `transcripts`. Pass flow_id back to stay on the same flow. Do not call this a second time to retry; that starts and charges a second transcription.
Creative Generate In Flow
Generate an image, video or speech in one call: creates a flow when flow_id is omitted, adds the node, and starts the generation. Returns flow_id, node_id and session_id, plus a link the user can open to keep editing on the canvas. Use this instead of creative_create_flow + creative_add_flow_node + creative_run_flow_nodes for a single generation. Prefer creative_generate_image, creative_generate_video or creative_generate_speech when the modality is one of those — they are the same thing with node_type already set. Use this one for the other node types, and the three-step path only to wire several nodes together. If this generation will feed another (lipsync, a voiceover), call creative_create_flow first and pass that flow_id here and to every related call — nodes on different flows cannot be connected. AFTER calling: if a view renders it tracks progress on its own; otherwise poll creative_get_flow_run_status with the flow_id and session_ids until all_completed or has_failures is true. Pass estimate_only to price a run first. Do not call this again to retry — a second call starts a second generation and is charged again.
Creative Create Flow
Create an empty flow on the user's canvas and return its flow_id. Call this FIRST whenever the request combines generations — lipsync, a video with a voiceover, anything wiring one output into another — and pass the flow_id to every call that follows, so they all land somewhere they can be connected. Not needed for a single one-off generation.
Creative Get Flow
Read a flow's nodes, connections and per-node run state, so an existing flow can be inspected before it is changed.
Creative Get Flow Node Types
List the node types and models this workspace can actually run in its region, with their default model. Call this before adding a node rather than guessing a node type.
Creative Add Flow Node
Add one node to a flow without running it. Use connect_from to feed an earlier node's output into this node, which is how a multi-step flow is built. Creates a flow when flow_id is omitted.
Creative Add Flow Asset Node
Put an existing asset or a previous generation on the flow as a node, so it can be wired into another node's reference input with creative_connect_flow_nodes. Reference inputs (reference_images, start_frame, image, audio, and similar) are input ports wired with edges, never model_parameters. The returned node id is authoritative — some calls return an already-existing node rather than creating one.
Creative Upload Flow Reference
Use this when the user wants a file from their own machine as a reference for a generation — for example "change the cat to a dog in this image". Returns at once with a node_id already on the flow — wire it with connect_from right away. The node is EMPTY until the user picks a file in the rendered picker; once they do, it is uploaded into that same node, and completion is published as widget context. This starts no generation and spends no credits. Not for an asset already in the workspace library — use creative_get_available_assets plus creative_add_flow_asset_node for that.
Creative Connect Flow Nodes
Wire an edge between two nodes that already exist on a flow. Unlike creative_add_flow_node's connect_from, which only wires a node as it is created, this repairs or extends the connections on nodes already on the canvas — for example when connect_from could not resolve a port and left the new node unwired.
Creative Update Node
Update an existing node's model, parameters, prompt, or label. BEFORE passing model_parameters or model_id: call creative_get_model_schema(node_type, model_id) for the effective model_id during the current turn — parameter names and allowed values vary by model, and an invented name fails validation instead of being coerced. Switching model_id resets model_parameters and can change the node's input ports — the result's input_ports names the new ones, and orphaned_edges names any connection the switch dropped, which creative_connect_flow_nodes can then rewire. This never starts a generation; call creative_run_flow_nodes for that.
Creative Run Flow Nodes
Start generating on nodes that already exist. Charges the workspace, so poll creative_get_flow_run_status rather than calling this again.
Creative Get Flow Run Status
Check whether a run has finished and read its generations, without showing anything to the user — this never renders a view. Poll it with the flow_id and session_ids a run returned, waiting poll_after_seconds between calls, until all_completed or has_failures is true. Call creative_show_flow_results instead when the goal is to put the results in front of the user.
Creative Show Flow Results
Put a run's generations back in front of the user, rendering the same view a run starts with. Use this when the user should see results that are not already showing — for example after a run finished off-screen, or when the user asks to see something already generated. Call with the flow_id and session_ids a run returned.
Creative Get Model Guide
Read prompting guidance for a specific model. Worth calling before writing a prompt for an unfamiliar model, since guidance differs a lot between them.
Creative Get Model Schema
Read a model's configurable parameters — names, types, and allowed values — without changing anything. Call this for the effective model_id before passing model_parameters to creative_update_node: names and allowed values vary by model, so a name guessed from a different model (for example 'duration' instead of 'duration_secs') fails validation rather than being coerced. Reference or connectable fields (start_frame, reference_images, reference_audios, and similar input ports) are wired with creative_connect_flow_nodes, never passed inside model_parameters.
Creative List Voices
Search the voices this workspace can speak with, to choose one for a speech node instead of asking the user for a voice id.
Creative Get View State
For the view to call when it mounts, not for you — never call this yourself. Reads back the state a view previously saved under view_state_id, so a view reopened in an old chat can rehydrate.
Creative Save View State
For the view to call as its state changes, not for you — never call this yourself. Persists opaque UI state under view_state_id so a view reopened in an old chat can rehydrate what it showed.
Creative Get Available Assets
Search the assets already in this workspace's library, so an existing upload can be used as a reference instead of asking the user to upload one again. Pass asset_ids instead to look up specific assets already known by id. Each row carries a short-lived preview_url; the asset_id itself goes to creative_add_flow_asset_node, or to creative_finalize_asset_upload with a flow_id, whose returned node_id is then passed as connect_from to a generation tool.
Creative Create Asset Upload
Returns an upload_url; send the file's bytes there with a single HTTP PUT whose Content-Type matches mime_type exactly, then call creative_finalize_asset_upload with the returned asset_id. Never read the file into the conversation. The URL is short-lived and accepts only this one object at this exact size and type. origin is set by the view, never by the model.
Creative Finalize Asset Upload
Call after the PUT to the upload_url succeeds; verifies the bytes landed and makes the asset usable as a reference. Pass flow_id to place the uploaded file on that flow as a reference node in the same call — its modality (image/video/audio) is derived from the file itself — then pass the returned node_id as connect_from to a generation tool. Pass node_id too when you already have a placeholder reference node waiting for this file — it fills that node instead of creating a new one.
Creative Attach Reference File
Use this when the file the user wants as a reference is already reachable — attached to this conversation, or at a direct https URL they gave you. We fetch it and store it as an asset, so nothing has to be uploaded again. Pass flow_id to place it on that flow as a reference node in the same call — its modality (image/video/audio) is derived from the file itself — then pass the returned node_id as connect_from to a generation tool. Pass node_id too when a placeholder reference node is already waiting for this file. Not for a file only on the user's own machine, and not for an asset already in the workspace library — use creative_get_available_assets plus creative_add_flow_asset_node for that.
Get More Tools
Call this when the user's request cannot be completed with any of the available tools. Describe the capability you were looking for, so it can inform which tools get built next. Do not call it when an available tool already covers the request.
Ship ElevenLabs agents in minutes
Connect any AI agent to 100+ MCP servers, zero setup.