Skip to main content
Glama

RetellAI MCP Server

by abhaybabbar
agent.ts3.02 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import Retell from "retell-sdk"; import { CreateAgentInputSchema, GetAgentInputSchema, UpdateAgentInputSchema, } from "../schemas/index.js"; import { transformAgentInput, transformAgentOutput, transformUpdateAgentInput, } from "../transformers/index.js"; import { createToolHandler } from "./utils.js"; export const registerAgentTools = (server: McpServer, retellClient: Retell) => { server.tool( "list_agents", "Lists all Retell agents", {}, createToolHandler(async () => { const agents = await retellClient.agent.list(); return agents.map(transformAgentOutput); }) ); server.tool( "create_agent", "Creates a new Retell agent", CreateAgentInputSchema.shape, createToolHandler(async (data) => { const createAgentDto = transformAgentInput(data); const agent = await retellClient.agent.create(createAgentDto); return transformAgentOutput(agent); }) ); server.tool( "get_agent", "Gets a Retell agent by ID", GetAgentInputSchema.shape, createToolHandler(async (data) => { try { const agent = await retellClient.agent.retrieve(data.agentId); if (!agent) { throw new Error(`Agent with ID ${data.agentId} not found`); } return transformAgentOutput(agent); } catch (error: any) { console.error(`Error getting agent: ${error.message}`); throw error; } }) ); server.tool( "update_agent", "Updates an existing Retell agent", UpdateAgentInputSchema.shape, createToolHandler(async (data) => { try { const agentId = data.agentId; // Transform the update data const updateAgentDto = transformUpdateAgentInput(data); // Update the agent const updatedAgent = await retellClient.agent.update( agentId, updateAgentDto ); return transformAgentOutput(updatedAgent); } catch (error: any) { console.error(`Error updating agent: ${error.message}`); throw error; } }) ); server.tool( "delete_agent", "Deletes a Retell agent", GetAgentInputSchema.shape, createToolHandler(async (data) => { try { await retellClient.agent.delete(data.agentId); return { success: true, message: `Agent ${data.agentId} deleted successfully`, }; } catch (error: any) { console.error(`Error deleting agent: ${error.message}`); throw error; } }) ); server.tool( "get_agent_versions", "Gets all versions of a Retell agent", GetAgentInputSchema.shape, createToolHandler(async (data) => { try { const versions = await retellClient.agent.getVersions(data.agentId); return versions; } catch (error: any) { console.error(`Error getting agent versions: ${error.message}`); throw error; } }) ); };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhaybabbar/retellai-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server