asterisk-voice-mcp
Enables initiating VoIP phone calls, playing TTS messages, capturing DTMF input, and recording voice responses via an Asterisk PBX.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asterisk-voice-mcpCall the office line and ask for feedback"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Asterisk Voice MCP Server
A self-hosted Model Context Protocol (MCP) server that lets an AI agent place VoIP phone calls via Asterisk, play TTS messages, capture DTMF input, and optionally record voice responses to be transcribed.
Architecture
graph TD
Agent[AI Agent (Claude/Hermes)] -->|MCP over stdio| MCPServer[MCP Server (Python)]
MCPServer -->|ARI HTTP/WebSocket| Asterisk[Asterisk PBX (Docker)]
Asterisk -->|SIP/RTP| Softphone[Linphone Softphone]
MCPServer -->|TTS API / STT API| Speechmatics[Speechmatics API]Related MCP server: AgentPhone MCP Server
Features
Place Calls: Initiate calls to a SIP endpoint.
TTS: Play dynamically generated speech.
DTMF Capture: Prompt the user for keypad input.
Voice Capture & STT: Record user audio and transcribe it via Speechmatics.
Tool integration: Fully compliant MCP server that exposes tools
place_call,send_dtmf,hangup_call,health_check.
Prerequisites
Docker & Docker Compose
Python 3.11+
Linphone app
Speechmatics API Key (optional, defaults to mock if absent)
Setup
Clone the repository (or navigate to directory).
Configure environment variables:
cp .env.example .env # Edit .env and provide your SPEECHMATICS_API_KEY if desired.Start Asterisk:
docker compose up -dRegister Linphone:
SIP Server: your host IP or domain
Port: 5060 (UDP/TCP)
Username:
linphone-userPassword: the value of
SIP_PASSWORDfrom your.env(generated at deploy time; see setup.sh)
Usage
Start the MCP server to expose tools:
python src/mcp_server.pyExample MCP Client Configuration
See config/mcp.json for an example of how to configure an MCP client (like Claude Desktop) to use this server.
Testing without a phone
Run the self-test script, which spins up a mock PJSIP endpoint and runs an end-to-end call test using a local bot.
python scripts/self_test.pySecurity Notes
Never expose ARI/SIP to the public internet without proper authentication, firewalls, and Fail2Ban.
Secrets should remain in
.env.Use strong endpoint secrets for SIP registrations.
Lock down RTP ports.
License
MIT License
This server cannot be deployed
Maintenance
Related MCP Connectors
Give AI agents a phone: outbound AI calls that return a summary, transcript, and extracted fields.
Give your AI a real phone: place calls, send SMS, fetch recordings and transcripts. Local or hosted.
Give your AI agent a phone: place calls, navigate IVRs, wait on hold, get structured answers.
- DialMCPOAuthcom.dialmcp
Let AI agents place real phone calls from your verified number, with transcripts and recordings.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to make real-world phone calls with AI voice technology and provides tools to track call status, transcripts, and summaries. It supports automated communication with both live numbers and simulated businesses for testing and demonstration purposes.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage phone numbers, send/receive SMS, and place voice calls through natural language, connecting to the phone network via the AgentPhone API.4,317 npm121MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control PSTN phone calls via TelePath, including dialing, hangup, and phone number management.15 npmMIT

ClawCall MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to make real outbound phone calls to US/Canada numbers, handle conversations, and return transcripts and recordings via the Model Context Protocol.7MIT