Skip to main content
The Tavus MCP server exposes the full agentic PAL toolkit to MCP clients. Each tool maps to a Tavus API operation and is callable from any MCP-aware client (for example, Codex or Claude Code). This page is a complete reference of every tool, grouped by category. For installation and authentication, see the MCP server page. For the equivalent command-line surface, see the CLI. For the autonomous PAL loop, see Agentic PAL building & testing.
Tools are first-class objects, not inlined on the PAL. Before giving a PAL a tool, check the saved library with tavus_tool_list or tavus_describe_pal_options, then either attach an existing tool (tavus_pal_tools_attach) or create a new one (tavus_tool_create) and attach it. Writing tools inline via tavus_patch_pal (layers.*.tools) is deprecated. When you create a tool that overlaps an existing one, the response carries a _tool_reuse_advisory so you can reuse instead.
MCP tools return data plus optional file manifests for the client to handle. They never write files to disk themselves.

PAL CRUD & patch

ToolParametersDescription
tavus_pal_listlimit=25, page=0, pal_type=NoneList PALs with an optional type filter.
tavus_pal_getpal_id, include_settings=FalseFetch a single PAL by ID; optionally include settings.
tavus_pal_createsystem_prompt=None, pal_name="Agentic Tavus PAL", default_face_id=None, pipeline_mode="full", greeting=None, context=None, layers=None, memories=None, objectives_id=None, guardrails_id=None, guardrail_ids=None, guardrail_tags=None, document_ids=None, document_tags=None, is_template=NoneCreate a PAL. system_prompt is required for pipeline_mode="full". Tools are attached separately after creation.
tavus_pal_deletepal_idDelete a PAL by ID.
tavus_patch_palpal_id, opsPatch a PAL with JSON Patch operations. Ops that write inline tools (layers.*.tools) return _inline_tools_deprecated steering you to the attach/create flow.
tavus_describe_pal_optionspal_idDescribe one PAL plus the account resources (guardrails, objectives, documents, tools, voices) that can be attached to it.
pipeline_mode is one of full (LLM + TTS + STT + perception), speech-to-speech (no LLM), or echo (TTS + transport only).

Face

ToolParametersDescription
tavus_face_listlimit=25, stock=FalseList faces; when stock=True, filters to system/stock faces only.

Conversation

ToolParametersDescription
tavus_conversation_createpal_id=None, face_id=None, conversation_name=NoneCreate a conversation with an optional PAL and face. Returns the conversation object with id and URL.
tavus_conversation_endconversation_idEnd a conversation by ID.

Quickstart

ToolParametersDescription
tavus_quickstartsystem_prompt, pal_name="Agentic Tavus PAL", face_id=NoneOne-shot recipe: create a PAL, pick a stock face when needed, and create a conversation. Returns the PAL plus the conversation.

Templates

ToolParametersDescription
tavus_pal_from_templatetemplate, pal_name=None, business_context=None, default_face_id=None, layers=NoneCreate a PAL from a built-in prompt template (customer-support, interviewer, sales, tutor, dev-rel) with optional business context and layer overrides.

Scaffold

ToolParametersDescription
tavus_scaffold_embedconversation_url, target="iframe", component_name="TavusConversation"Return starter files for embedding a Tavus conversation URL. target is one of iframe, cvi-ui, vanilla.

Resource list

ToolParametersDescription
tavus_resource_listresource, limit=25List account resources. resource is one of guardrails, objectives, documents, voices, skills, tools (singular aliases accepted).

Guardrails

Guardrails use a flat, per-rule shape by default (not legacy sets).
ToolParametersDescription
tavus_guardrail_listlimit=25, page=1, type="user", name_or_uuid=None, tags=None, legacy=False, verbose=FalseList guardrails with optional filtering. type is one of user, system, all. verbose adds persona_refs and guardrail_type.
tavus_guardrail_getguardrail_id, verbose=False, legacy=NoneFetch a single guardrail.
tavus_guardrail_createguardrail_name, guardrail_prompt, modality="verbal", callback_url="", tool_call=None, app_message=True, tags=NoneCreate a flat guardrail with optional callback and tool-call payload. modality is one of verbal, visual, audio.
tavus_guardrail_patchguardrail_id, guardrail_name=None, guardrail_prompt=None, modality=None, callback_url=None, tool_call=None, app_message=None, tags=NoneUpdate a guardrail. Omit fields to leave them unchanged; each supplied field is replaced whole.
tavus_guardrail_deleteguardrail_idDelete a guardrail by ID.
tavus_guardrail_tagssearch=None, page=None, limit=NoneList tags applied to the account’s guardrails.

Objectives

Objectives are stored as sets; PALs reference a set by objectives_id.
ToolParametersDescription
tavus_objective_listlimit=25, page=1, type="user", name_or_uuid=None, sort="ascending"List objective sets. type is one of user, system, all.
tavus_objective_getobjectives_idFetch a single objective set.
tavus_objective_createdata, name="", allow_loops=FalseCreate an objective set. Each item has objective_name (letters/digits/underscores only), objective_prompt, optional confirmation_mode (“auto”|“manual”), modality (“verbal”|“visual”|“audio”), output_variables, callback_url, tool_call, and chains via next_required_objective or next_conditional_objectives (not both). When allow_loops=False, exactly one item must be root.
tavus_objective_patchobjectives_id, opsPatch an objective set with JSON Patch ops; cycle and single-root validation re-runs.
tavus_objective_deleteobjectives_idDelete an objective set by ID.
tavus_objective_validatedata, name="", allow_loops=FalseValidate an objective-set payload (cycles, single root, references) without persisting.

Tools (PAL tool library)

ToolParametersDescription
tavus_tool_listlimit=25, page=1, type="user", name_or_uuid=None, sort="ascending"List tools. type filters by ownership (user, system, all).
tavus_tool_gettool_idFetch a single tool by ID.
tavus_tool_createname, description, parameters=None, delivery=None, origin="llm", on_call=None, on_resolve="fire_and_forget", static_filler=NoneCreate a tool. Placeholders {ident} in url/body/query must be declared in parameters.properties. Description plus parameters JSON must total ≤ 10,000 chars. Returns _tool_reuse_advisory if similar tools exist. For post-call actions, use the CLI tool create --file or Tools API with trigger_type: "post_call" (not yet a parameter on this MCP tool).
tavus_tool_patchtool_id, name=None, description=None, parameters=None, delivery=None, origin=None, on_call=None, on_resolve=None, static_filler=NoneUpdate a tool. Omit fields to leave them unchanged. Secrets returned scrubbed (********) from a prior GET must be omitted, not re-sent.
tavus_tool_deletetool_idDelete a tool by ID.
delivery defaults to {"app_message": true} (Daily data channel), or use {"api": {...}} for HTTPS calls with headers, query params, body template, content type, timeout (default 10s, max 60s), and auth (none, bearer, basic, api_key, hmac, oauth2_client_credentials).

Pronunciation dictionaries

Pronunciation dictionaries are referenced from PALs via layers.tts.pronunciation_dictionary_id.
ToolParametersDescription
tavus_pronunciation_dictionary_listlimit=25, page=0, sort="desc"List pronunciation dictionaries.
tavus_pronunciation_dictionary_getdictionary_idFetch a single pronunciation dictionary.
tavus_pronunciation_dictionary_createname, rules=NoneCreate a dictionary. Each rule is {text, pronunciation, type: "alias"|"ipa", alphabet?, case_sensitive?, word_boundaries?}; max 10,000 rules. Text values must be unique.
tavus_pronunciation_dictionary_patchdictionary_id, name=None, rules=NoneUpdate a dictionary. Supplying rules replaces the full list (no merge).
tavus_pronunciation_dictionary_deletedictionary_idDelete a dictionary by ID.

PAL tools (attach & detach)

ToolParametersDescription
tavus_pal_tools_listpal_idList tools currently attached to a PAL.
tavus_pal_tools_attachpal_id, tool_idsAttach one or more existing tools to a PAL by ID. A PAL can hold up to 50 tools. If any attached tool is vision/audio, the PAL’s perception_model auto-bumps to raven-1 (response carries _perception_model_bumped_to_raven_1).
tavus_pal_tools_detachpal_id, tool_idDetach a single tool from a PAL.

PAL capabilities

The five built-in PAL Maker capabilities - Magic Canvas, Slide Presenter, Web Search, Perception, and Memory. Prefer these over raw JSON Patch or raw skills: they accept friendly IDs (magic_canvas, slide_presenter, web_search, perception, memory, plus the portal IDs builtin:magic_canvas, builtin:slide_presenter, builtin:web_search, skill:memory) and know that Magic Canvas, Slide Presenter, Web Search, and Memory persist through the PAL’s skills while Perception persists through layers.perception.
ToolParametersDescription
tavus_pal_capability_catalogList the five PAL Maker capabilities and their backend mappings.
tavus_pal_capabilities_listpal_idList Magic Canvas, Slide Presenter, Web Search, Perception, and Memory attachment state and config for a PAL.
tavus_pal_capability_attachpal_id, capability_id, config=None, document_ids=None, slides_trigger=None, prompt=None, magic_canvas_components=None, magic_canvas_usage_guidance=None, scheduling_url=None, scheduling_provider=None, perception_model=None, visual_awareness_queries=None, audio_awareness_queries=None, visual_tool_prompt=None, audio_tool_prompt=NoneAttach a capability. Options are capability-specific: Slide Presenter uses document_ids/slides_trigger/prompt; Magic Canvas uses magic_canvas_*/scheduling_*; Perception uses perception_model and the visual/audio awareness fields; Web Search and Memory take no config.
tavus_pal_capability_patchsame as tavus_pal_capability_attachUpdate the config of an already-attached capability.
tavus_pal_capability_detachpal_id, capability_idDetach a capability. Perception detaches by setting perception_model: off; the other four detach from /pals/{id}/skills.

Skills (raw RQH)

Lower-level access to the RQH skill registry and a PAL’s raw skill attachments. Use PAL capabilities for the five PAL Maker capabilities; reach for these only to work with a skill by its raw registry ID.
ToolParametersDescription
tavus_skill_listList registered RQH skills/capabilities available to attach to PALs.
tavus_pal_skills_listpal_idList raw RQH skill attachments for a PAL.
tavus_pal_skill_attachpal_id, skill_id, config=NoneAttach or replace one raw RQH skill on a PAL.
tavus_pal_skill_patchpal_id, skill_id, configMerge config into an already-attached raw RQH skill.
tavus_pal_skill_detachpal_id, skill_idDetach one raw RQH skill from a PAL.

Knowledge documents

Account-level Knowledge document records that back a PAL’s Knowledge section. With a normal Tavus API key, create documents from an already-reachable URL (tavus_document_create). Local file upload uses the same portal-only path as PAL Maker and requires a locally running MCP server (to read the file) plus TAVUS_PORTAL_BEARER_TOKEN.
ToolParametersDescription
tavus_document_listlimit=25, page=0, status=None, tags=None, participant_tags=None, name_or_uuid=None, verbose=TrueList Knowledge documents available to attach to PALs.
tavus_document_getdocument_id, verbose=TrueGet one Knowledge document record.
tavus_document_createdocument_url, document_name=None, tags=None, participant_tags=None, crawl=None, custom_description=None, is_customer_support_document=False, font_size_aware_extraction=FalseCreate a Knowledge document from an already-hosted URL.
tavus_document_uploadlocal_path, document_name=None, tags=None, participant_tags=None, custom_description=None, is_customer_support_document=False, font_size_aware_extraction=False, bucket_name="developer-portal-documents", region="us-east-1", sign_duration=NoneUpload a local file through tavus-api/S3, then create the document record. Requires TAVUS_PORTAL_BEARER_TOKEN.
tavus_document_tagssearch=None, page=None, limit=NoneList document tags that can be attached to PAL Knowledge.
tavus_document_chunksdocument_id, collection="regular", limit=100, offset=NoneRead the extracted chunks RQH indexed for a document. Use before making claims about a document’s contents.
tavus_document_recrawldocument_id, crawl=NoneTrigger a recrawl for a crawl-backed Knowledge document.

PAL Knowledge

A PAL’s Knowledge section is its document_ids plus document_tags, with RAG tuning under layers.knowledge_base. Create documents first with the Knowledge documents tools, then attach them here.
ToolParametersDescription
tavus_pal_knowledge_listpal_idShow Knowledge documents/tags attached to a PAL and resolve the direct document IDs into records.
tavus_pal_knowledge_addpal_id, document_ids=None, document_tags=NoneAttach existing Knowledge documents or document tags to a PAL.
tavus_pal_knowledge_removepal_id, document_ids=None, document_tags=NoneRemove Knowledge documents or document tags from a PAL.
tavus_pal_knowledge_replacepal_id, document_ids=None, document_tags=NoneReplace the PAL’s Knowledge document/tag selections.
tavus_pal_knowledge_settings_patchpal_id, rag_score_threshold=None, rag_n_chunks=None, rag_surrounding_chunk_radius=None, enable_rag_observability_app_messages=None, use_procedure_goalchain=NonePatch RAG tuning settings under layers.knowledge_base.
tavus_pal_knowledge_uploadpal_id, local_path, document_name=None, tags=None, participant_tags=None, custom_description=None, is_customer_support_document=False, font_size_aware_extraction=False, bucket_name="developer-portal-documents", region="us-east-1", sign_duration=None, attach=TrueUpload a local file as a Knowledge document and attach it to the PAL by default. Requires TAVUS_PORTAL_BEARER_TOKEN.

Builder

The builder is an LLM-guided PAL creation flow.
ToolParametersDescription
tavus_builder_createname, greeting=None, pal_id=None, model=NoneCreate a builder session, optionally based on an existing PAL.
tavus_builder_listlimit=None, page=None, pal_id=None, name=None, status=NoneList builder sessions with optional filters.
tavus_builder_getbuilder_idFetch a single builder by ID.
tavus_builder_deletebuilder_idDelete a builder session.
tavus_builder_chatbuilder_id, messageSend a chat turn to the builder. Returns assistant text, autocomplete suggestions, a draft_ready flag, and target sections for scoped updates.
tavus_builder_chat_historybuilder_id, limit=50Fetch chat history for a builder session.
tavus_builder_append_messagesbuilder_id, messagesAppend messages to builder chat history.
tavus_builder_update_objectivesbuilder_id, messageUpdate objectives based on a user feedback message.
tavus_builder_update_guardrailsbuilder_id, messageUpdate guardrails based on a user feedback message.
tavus_builder_update_greetingbuilder_id, messageUpdate the greeting/opening based on feedback.
tavus_builder_update_personalitybuilder_id, message, pal_name=False, system_prompt=FalseUpdate PAL personality/system prompt based on feedback. Optionally include PAL name and/or system prompt fields.
tavus_builder_publishbuilder_idPublish the builder’s drafted PAL.

Chat mode (text-only)

ToolParametersDescription
tavus_chat_startpal_id, custom_greeting=None, conversation_name=NoneStart a text-only conversation with a PAL. Use this to test a built PAL by sending typed turns; no face video is rendered.
tavus_chat_turnconversation_id, text, timeout_s=20.0Send one user turn and wait for the PAL’s reply. Returns {text: <reply>}.
tavus_chat_endconversation_idEnd a chat-mode conversation.

PAL preview & build-and-verify

ToolParametersDescription
tavus_pal_previewpal_id, face_id=None, conversation_name=NoneStart a full audio/video preview conversation against a PAL and return {conversation_id, conversation_url, ...}. Hand the URL to a human for visual verification.
tavus_pal_build_and_verifyprompt, face_id=None, max_rounds=4, answers=NoneBuild a PAL from one creator prompt (optionally using supplied answers for builder follow-ups), then publish and validate via CVI chat mode. When face_id is omitted, a default is selected and attached.
See Agentic PAL building & testing for expected agent usage, CLI usage, and how to read the simulated-turn verdict.