MCP Server
Asterisk S2S MCP Server
MCP Server for automated conversational phone calls using Asterisk with Speech-to-Speech capabilities, allowing users to make phone conversations as easily as writing a prompt.
3
GitHub Stars
11/18/2025
Last Updated
MCP Server Configuration
1{
2 "name": "asterisk-s2s",
3 "command": "npx",
4 "args": [
5 "@grec0/mcp-s2s-asterisk@latest"
6 ],
7 "env": {
8 "PHONE_API_URL": "http://192.168.4.44: 8000",
9 "PHONE_API_KEY": "api-key",
10 "MCP_CALLBACK_URL": "http://localhost: 3000"
11 }
12}
JSON12 lines
README Documentation
π Asterisk S2S MCP Server
π MCP Server for automated conversational phone calls using Asterisk with Speech-to-Speech
Make phone conversations as easy as a prompt! πβ¨
ποΈ System Architecture
graph TB
subgraph "MCP Client"
A[Claude Desktop] --> B[MCP Client]
end
subgraph "MCP Server"
B --> C[Asterisk S2S MCP]
C --> D[Phone Tools]
C --> E[Real-time Assistant]
end
subgraph "Backend Services"
D --> F[Asterisk Server]
E --> G[Speech-to-Speech API]
F --> H[Phone Network]
end
subgraph "Monitoring"
C --> I[Health Check]
C --> J[Metrics & Logs]
C --> K[Call History]
end
style A fill:#e1f5fe
style C fill:#f3e5f5
style F fill:#fff3e0
style G fill:#e8f5e8
π Phone Call Flow
sequenceDiagram
participant U as User
participant C as Claude/MCP
participant S as MCP Server
participant A as Asterisk API
participant P as Phone
U->>C: "Call John to remind about appointment"
C->>S: phone_make_call()
S->>A: POST /make-call
A->>P: Initiate call
P-->>A: Connection established
A-->>S: CallID + Status
S-->>C: Call initiated β
C-->>U: "π Call started with John"
Note over A,P: Real-time S2S conversation
A->>S: Callback with result
S->>S: Process transcript
U->>C: "How did the call go?"
C->>S: phone_get_last_result()
S-->>C: Detailed result
C-->>U: "β
John confirmed the appointment"
π οΈ MCP Components
mindmap
root((Asterisk S2S MCP))
Core Tools
phone_make_call
phone_get_status
phone_cancel_call
Monitoring
phone_health_check
phone_get_metrics
phone_get_logs
History
phone_get_conversation_history
phone_get_active_calls
phone_get_last_result
Configuration
Environment Variables
MCP Client Config
Asterisk Integration
π Installation & Usage
π― Option 1: NPX (Recommended)
# One command and you're ready! π
npx @grec0/mcp-s2s-asterisk@latest
π§ Option 2: Global Installation
npm install -g @grec0/mcp-s2s-asterisk
mcp-s2s-asterisk
βοΈ Step-by-Step Configuration
flowchart LR
A[1. Install MCP] --> B[2. Configure Variables]
B --> C[3. Configure MCP Client]
C --> D[4. Ready to use! π]
style A fill:#ffcdd2
style B fill:#fff3e0
style C fill:#e8f5e8
style D fill:#e1f5fe
π Environment Variables
# π Asterisk API URL
export PHONE_API_URL="http://192.168.4.44:8000"
# π Authentication key
export PHONE_API_KEY="api-key"
# π Callback URL for results
export MCP_CALLBACK_URL="http://localhost:3000"
π± MCP Client Configuration
{
"mcpServers": {
"asterisk-s2s": {
"command": "npx",
"args": ["@grec0/mcp-s2s-asterisk@latest"],
"env": {
"PHONE_API_URL": "http://192.168.4.44:8000",
"PHONE_API_KEY": "api-key",
"MCP_CALLBACK_URL": "http://localhost:3000"
}
}
}
}
π§° Available Tools
π Calls
|
π Monitoring
|
π‘ Use Cases
graph LR
subgraph "Automation"
A[Appointment<br/>Reminders]
B[Booking<br/>Confirmations]
C[Automated<br/>Surveys]
end
subgraph "Support"
D[Customer<br/>Service]
E[Ticket<br/>Follow-up]
F[Data<br/>Verification]
end
subgraph "Sales"
G[Automated<br/>Prospecting]
H[Lead<br/>Follow-up]
I[Customer<br/>Qualification]
end
style A fill:#ffcdd2
style B fill:#f8bbd9
style C fill:#e1bee7
style D fill:#c5cae9
style E fill:#bbdefb
style F fill:#b3e5fc
style G fill:#b2dfdb
style H fill:#c8e6c9
style I fill:#dcedc8
π Call States
stateDiagram-v2
[*] --> Starting
Starting --> Connecting: API Request
Connecting --> Speaking: Connection OK
Connecting --> Failed: No answer
Speaking --> Completed: Conversation OK
Speaking --> Cancelled: User Cancel
Completed --> [*]
Failed --> [*]
Cancelled --> [*]
note right of Speaking : Real-time<br/>Speech-to-Speech
note right of Completed : Result processed<br/>and saved
π Complete Usage Example
π¬ Scenario: Medical Appointment Confirmation
// 1οΈβ£ User tells Claude:
"Call MarΓa GonzΓ‘lez at 555-0123 to confirm her appointment tomorrow at 3pm"
// 2οΈβ£ Claude automatically uses:
phone_make_call({
usuario: "MarΓa GonzΓ‘lez",
telefono: "555-0123",
proposito: "Confirm medical appointment for tomorrow 3pm",
timeout: 60
})
// 3οΈβ£ Automatic result:
"β
Call completed. MarΓa confirmed her appointment for tomorrow at 3pm.
She also asked to change the time to 2:30pm if possible."
π¦ Monitoring Dashboard
pie title Call Distribution by Status
"Completed" : 65
"In Progress" : 15
"Failed" : 12
"Cancelled" : 8
xychart-beta
title "Daily Calls (Last Week)"
x-axis [Mon, Tue, Wed, Thu, Fri, Sat, Sun]
y-axis "Number of Calls" 0 --> 50
bar [23, 34, 28, 41, 38, 15, 8]
π§ Local Development
π Requirements
- π’ Node.js >= 18.0.0
- π¦ npm or pnpm
- π§ TypeScript
π οΈ Quick Setup
# π₯ Clone repository
git clone <repository-url>
cd mcp-s2s-asterisk
# π¦ Install dependencies
npm install
# π¨ Build project
npm run build
# π Run server
npm run start
π Available Scripts
| Script | Description | Command |
|---|---|---|
| π¨ | Compile TypeScript | npm run build |
| π | Development mode | npm run dev |
| π§ͺ | Run tests | npm run test |
| π | MCP Inspector | npm run inspector |
| π¦ | Release patch | npm run release:patch |
π Performance Metrics
graph TB
subgraph "Response Time"
A[Connection: ~2s]
B[Establishment: ~3s]
C[Conversation: Variable]
D[Processing: ~1s]
end
subgraph "Success Rates"
E[Connection: 95%]
F[Completed: 87%]
G[Satisfaction: 92%]
end
style E fill:#c8e6c9
style F fill:#c8e6c9
style G fill:#c8e6c9
π Security & Compliance
- π Authentication: Mandatory API Key
- π‘οΈ Encryption: TLS/SSL in transit
- π Logs: Complete call auditing
- π Privacy: Locally processed data
- β GDPR: Privacy compliance
π€ Contributing
π License
π Give it a star if you like the project! β
Made with β€οΈ by @grec0
Transforming phone communication with conversational AI
Quick Install
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source