Skip to main content
Glama
README.md
# Retell AI MCP Server

A Model Context Protocol (MCP) server that provides tools for interacting with the [Retell AI](https://retellai.com) API. Build, test, deploy, and monitor AI phone agents directly through Claude or other MCP-compatible clients.

## Features

This MCP server exposes 45+ tools covering all major Retell AI API endpoints:

### Call Management
- Create outbound phone calls and web calls
- Retrieve call details including transcripts and recordings
- List and filter calls with pagination
- Update call metadata and data storage settings
- Delete calls and associated data

### Chat Management
- Create chat sessions and SMS conversations
- Send messages and receive responses
- List and manage chat sessions

### Phone Number Management
- Purchase/register new phone numbers
- Import existing numbers via SIP
- Configure inbound/outbound agents per number
- List and manage phone numbers

### Agent Management
- Create and configure voice agents
- Create and configure chat agents
- Publish agent versions
- Manage agent settings (voice, language, behavior)

### LLM & Conversation Flow
- Create and manage Retell LLM configurations
- Design conversation flows with node-based structure
- Configure custom prompts and function calling

### Knowledge Base
- Create knowledge bases for agent context
- Add sources (URLs, text, documents)
- Manage knowledge base sources

### Voice & Batch Operations
- List available voices
- Schedule batch outbound calls
- Run automated agent tests

### Account
- Check concurrent call limits

## Installation

```bash
npm install
npm run build
```

## Configuration

### Environment Variable

Set your Retell AI API key as an environment variable:

```bash
export RETELL_API_KEY="your-api-key-here"
```

Get your API key from the [Retell AI Dashboard](https://dashboard.retellai.com/).

### Claude Code Configuration

#### Option 1: Using the CLI (Recommended)

Add the MCP server using the `claude mcp add` command:

```bash
claude mcp add --transport stdio retell-ai -e RETELL_API_KEY=your-api-key-here -- node /path/to/retell-ai-mcp/dist/index.js
```

You can also use environment variable expansion:

```bash
claude mcp add --transport stdio retell-ai -e RETELL_API_KEY=\${RETELL_API_KEY} -- node /path/to/retell-ai-mcp/dist/index.js
```

#### Option 2: Project Configuration File

Create a `.mcp.json` file in your project root to share with your team:

```json
{
  "mcpServers": {
    "retell-ai": {
      "command": "node",
      "args": ["/path/to/retell-ai-mcp/dist/index.js"],
      "env": {
        "RETELL_API_KEY": "${RETELL_API_KEY}"
      }
    }
  }
}
```

The `${RETELL_API_KEY}` syntax will expand the environment variable at runtime.

#### Managing the Server

```bash
# List configured MCP servers
claude mcp list

# Get details about the retell-ai server
claude mcp get retell-ai

# Remove the server
claude mcp remove retell-ai
```

### Claude Desktop Configuration

Add this to your Claude Desktop config file:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "retell-ai": {
      "command": "node",
      "args": ["/path/to/retell-ai-mcp/dist/index.js"],
      "env": {
        "RETELL_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Available Tools

### Call Tools
| Tool | Description |
|------|-------------|
| `retell_create_phone_call` | Create a new outbound phone call |
| `retell_create_web_call` | Create a new web call session |
| `retell_get_call` | Retrieve details of a specific call |
| `retell_list_calls` | List and filter calls |
| `retell_update_call` | Update call metadata |
| `retell_delete_call` | Delete a call |

### Chat Tools
| Tool | Description |
|------|-------------|
| `retell_create_chat` | Create a chat session |
| `retell_create_sms_chat` | Start an SMS conversation |
| `retell_get_chat` | Get chat details |
| `retell_create_chat_completion` | Send a message |
| `retell_list_chats` | List all chats |
| `retell_end_chat` | End a chat session |

### Phone Number Tools
| Tool | Description |
|------|-------------|
| `retell_create_phone_number` | Purchase a phone number |
| `retell_get_phone_number` | Get phone number details |
| `retell_list_phone_numbers` | List all phone numbers |
| `retell_update_phone_number` | Update phone number settings |
| `retell_delete_phone_number` | Delete a phone number |
| `retell_import_phone_number` | Import via SIP |

### Voice Agent Tools
| Tool | Description |
|------|-------------|
| `retell_create_agent` | Create a voice agent |
| `retell_get_agent` | Get agent details |
| `retell_list_agents` | List all agents |
| `retell_update_agent` | Update agent config |
| `retell_delete_agent` | Delete an agent |
| `retell_publish_agent` | Publish agent version |
| `retell_get_agent_versions` | Get version history |

### Chat Agent Tools
| Tool | Description |
|------|-------------|
| `retell_create_chat_agent` | Create a chat agent |
| `retell_get_chat_agent` | Get chat agent details |
| `retell_list_chat_agents` | List chat agents |
| `retell_update_chat_agent` | Update chat agent |
| `retell_delete_chat_agent` | Delete chat agent |

### LLM Tools
| Tool | Description |
|------|-------------|
| `retell_create_llm` | Create LLM configuration |
| `retell_get_llm` | Get LLM details |
| `retell_list_llms` | List all LLMs |
| `retell_update_llm` | Update LLM config |
| `retell_delete_llm` | Delete LLM |

### Conversation Flow Tools
| Tool | Description |
|------|-------------|
| `retell_create_conversation_flow` | Create a flow |
| `retell_get_conversation_flow` | Get flow details |
| `retell_list_conversation_flows` | List all flows |
| `retell_update_conversation_flow` | Update a flow |
| `retell_delete_conversation_flow` | Delete a flow |

### Knowledge Base Tools
| Tool | Description |
|------|-------------|
| `retell_create_knowledge_base` | Create knowledge base |
| `retell_get_knowledge_base` | Get KB details |
| `retell_list_knowledge_bases` | List all KBs |
| `retell_delete_knowledge_base` | Delete KB |
| `retell_add_knowledge_base_sources` | Add sources |
| `retell_delete_knowledge_base_source` | Remove source |

### Voice Tools
| Tool | Description |
|------|-------------|
| `retell_get_voice` | Get voice details |
| `retell_list_voices` | List available voices |

### Batch Tools
| Tool | Description |
|------|-------------|
| `retell_create_batch_call` | Schedule bulk calls |
| `retell_create_batch_test` | Run agent tests |

### Account Tools
| Tool | Description |
|------|-------------|
| `retell_get_concurrency` | Check call limits |
| `retell_register_phone_call` | Register inbound call |

## Example Usage

Once configured, you can use Claude to interact with Retell AI:

**List available voices:**
> "Show me all available voices for Retell AI"

**Create an agent:**
> "Create a new voice agent named 'Support Bot' using the voice '11labs-Adrian' with a friendly greeting"

**Make a phone call:**
> "Call +1234567890 from my registered number +0987654321 using the Support Bot agent"

**Check call history:**
> "Show me all calls from the last 24 hours"

## Development

```bash
# Install dependencies
npm install

# Build TypeScript
npm run build

# Watch mode for development
npm run dev
```

## License

MIT

## Links

- [Retell AI Documentation](https://docs.retellai.com)
- [Retell AI Dashboard](https://dashboard.retellai.com)
- [Claude Code MCP Documentation](https://code.claude.com/docs/en/mcp)
- [MCP Protocol](https://modelcontextprotocol.io)

TDQS

B3.2/5.0

Scored across 52 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific resources and actions, such as create_agent vs. update_agent. However, some overlap exists between retell_create_chat and retell_create_chat_completion, where the distinction between starting a chat and sending a message might be ambiguous without careful reading of descriptions. Overall, the set is well-organized but has minor confusion points.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with the prefix 'retell_' and snake_case throughout, such as retell_create_agent, retell_list_calls, and retell_update_phone_number. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count2/5

With 52 tools, the count is excessive for a single server, making it overwhelming and difficult for agents to manage. While the domain (Retell AI) is broad, the number of tools could be consolidated or better scoped, as many operations (e.g., create, get, update, delete, list) are repeated across multiple resource types, leading to redundancy.

Completeness5/5

The tool set provides comprehensive CRUD and lifecycle coverage for all major resources in the Retell AI domain, including agents, calls, chats, knowledge bases, LLMs, phone numbers, and conversation flows. There are no obvious gaps; each resource type has create, get, update, delete, and list operations, ensuring agents can handle full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues