create_conversation
Start a conversational video interface using AI replicas and personas to enable interactive video conversations with custom context and recording options.
Instructions
Create a new conversational video interface
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| replica_id | No | Replica to use for the conversation | |
| persona_id | No | Persona to use for the conversation | |
| conversation_name | No | Name for the conversation | |
| callback_url | No | URL to receive conversation events | |
| conversational_context | No | Context for the conversation | |
| custom_greeting | No | Custom greeting message | |
| enable_recording | No | Enable conversation recording |
Implementation Reference
- src/index.ts:894-902 (handler)The createConversation handler method that executes the tool logic. It makes a POST request to the Tavus API /conversations endpoint with the provided arguments and returns the response data in MCP format.
private async createConversation(args: any) { const response = await this.axiosInstance.post('/conversations', args); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2), }], }; } - src/index.ts:355-391 (schema)The input schema definition for the create_conversation tool. Defines all input parameters including replica_id, persona_id, conversation_name, callback_url, conversational_context, custom_greeting, and enable_recording with their types and descriptions.
{ name: 'create_conversation', description: 'Create a new conversational video interface', inputSchema: { type: 'object', properties: { replica_id: { type: 'string', description: 'Replica to use for the conversation', }, persona_id: { type: 'string', description: 'Persona to use for the conversation', }, conversation_name: { type: 'string', description: 'Name for the conversation', }, callback_url: { type: 'string', description: 'URL to receive conversation events', }, conversational_context: { type: 'string', description: 'Context for the conversation', }, custom_greeting: { type: 'string', description: 'Custom greeting message', }, enable_recording: { type: 'boolean', description: 'Enable conversation recording', }, }, }, }, - src/index.ts:355-391 (registration)The tool registration for create_conversation in the ListToolsRequestSchema handler. Registers the tool name, description, and inputSchema as part of the available tools list.
{ name: 'create_conversation', description: 'Create a new conversational video interface', inputSchema: { type: 'object', properties: { replica_id: { type: 'string', description: 'Replica to use for the conversation', }, persona_id: { type: 'string', description: 'Persona to use for the conversation', }, conversation_name: { type: 'string', description: 'Name for the conversation', }, callback_url: { type: 'string', description: 'URL to receive conversation events', }, conversational_context: { type: 'string', description: 'Context for the conversation', }, custom_greeting: { type: 'string', description: 'Custom greeting message', }, enable_recording: { type: 'boolean', description: 'Enable conversation recording', }, }, }, }, - src/index.ts:716-717 (handler)The switch case routing for the create_conversation tool in the CallToolRequestSchema handler. Routes incoming tool calls to the createConversation method with the request arguments.
case 'create_conversation': return await this.createConversation(request.params.arguments);