EchoLink MCP Server
Allows using ElevenLabs as a text-to-speech backend to synthesize voice transmissions for EchoLink.
Provides integration with OpenAI APIs for text-to-speech (TTS) and speech-to-text (STT) to enable voice transmission and transcription over EchoLink.
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., "@EchoLink MCP ServerConnect to ECHOTEST and say 'CQ CQ this is W6ABC testing'."
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.
EchoLink MCP Server
Bridge between EchoLink (amateur radio VoIP) and AI voice models via the Model Context Protocol.
An AI can connect to the EchoLink network, transmit speech (TTS), and receive/transcribe audio (STT) — enabling fully automated radio conversations.
Requirements
Licensed amateur radio callsign with an EchoLink account — register at echolink.org
Python 3.12+
ffmpeg
An API key for your TTS/STT backend (default: OpenAI)
Related MCP server: hamqth-mcp
Setup
Linux (Ubuntu/Debian server)
# System dependencies
sudo apt update
sudo apt install -y python3 python3-pip python3-venv ffmpeg git
# Clone and install
git clone https://github.com/yourusername/echolinkweb-mcp.git
cd echolinkweb-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Configure credentials
cp .env.example .env
nano .env # fill in ECHOLINK_CALLSIGN, ECHOLINK_PASSWORD, OPENAI_API_KEYmacOS
brew install ffmpeg python@3.12 git
git clone https://github.com/yourusername/echolinkweb-mcp.git
cd echolinkweb-mcp
pip3 install -r requirements.txt
cp .env.example .env
# Edit .env with your credentialsConfiguration
All credentials are environment variables — never hardcoded.
Variable | Required | Default | Description |
| Yes | — | Your licensed callsign (e.g. |
| Yes | — | Your EchoLink account password |
| No |
|
|
| No |
|
|
| If using openai | — | OpenAI API key |
| If TTS=elevenlabs | — | ElevenLabs key |
| No |
| Voice name for TTS (OpenAI: alloy, echo, fable, onyx, nova, shimmer) |
| No |
| Port for HTTP/SSE server ( |
| No |
| Bind host for HTTP/SSE server |
Running
Development (with inspector UI)
mcp dev server.pyWith Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"echolink": {
"command": "python3",
"args": ["/path/to/echolinkweb-mcp/server.py"],
"env": {
"ECHOLINK_CALLSIGN": "W6ABC",
"ECHOLINK_PASSWORD": "your_password",
"OPENAI_API_KEY": "sk-..."
}
}
}
}With Claude Code
claude mcp add echolink -- python3 /path/to/echolinkweb-mcp/server.pyThen set credentials:
export ECHOLINK_CALLSIGN=W6ABC
export ECHOLINK_PASSWORD=your_password
export OPENAI_API_KEY=sk-...Pneum.ai (HTTP/SSE mode)
This is the recommended path for running EchoLink via a voice AI agent. The MCP server runs as an HTTP service that Pneum.ai connects to remotely.
Step 1 — Start the HTTP server on your Linux/Mac machine:
# If using a venv (Linux):
source .venv/bin/activate
python3 run_http.py
# Starts on http://0.0.0.0:8765/sse by default
# Custom port: python3 run_http.py --port 9000Find your server's IP with hostname -I (Linux) or ipconfig getifaddr en0 (macOS). The MCP endpoint is:
http://YOUR_SERVER_IP:8765/sseIf running on a remote/cloud server, make sure port 8765 is open in your firewall/security group.
Step 2 — Register in Pneum.ai Tools Studio (Part A: agent control):
Open Pneum.ai → Tools Studio → Custom Tools → MCP Tool
Set Server URL to
http://YOUR_SERVER_IP:8765/sseEnable these tools:
connect,say,transmit_audio,listen,disconnect,find_station,statusSave — your Pneum.ai agent can now search EchoLink stations, connect, and talk on air
Step 3 — Use Pneum.ai's own voice on air (Part B: bypass say):
If you want Pneum.ai's Voice Studio voice to be what goes out over the radio (instead of OpenAI/ElevenLabs), instruct the agent to use transmit_audio instead of say:
Pneum.ai synthesizes speech with its voice engine
Base64-encodes the audio
Calls
transmit_audio(audio_base64=..., format="wav")— that audio plays live on the radio
This gives you Pneum.ai's voice directly on EchoLink with no second TTS round-trip. Both say (text-in) and transmit_audio (audio-in) are available — the agent can choose per-transmission.
MCP Tools
Tool | Description |
| Search online EchoLink stations by callsign prefix |
| Connect to a station (e.g. |
| Disconnect from current station |
| TTS → transmit speech on the radio |
| Send pre-synthesized audio directly (wav/mp3/pcm_8k) |
| Receive audio → STT → return transcription |
| Current connection and config state |
Testing with EchoTest
*ECHOTEST* is the official EchoLink loopback node — it records your transmission and plays it back. Use it to verify the full audio pipeline without connecting to a live station.
find_station("ECHOTEST") → confirm it's online
connect("*ECHOTEST*") → establish link
say("Hello EchoTest") → TTS synthesized and transmitted
listen(12) → wait for echo, returns transcription
disconnect() → close the linkArchitecture
AI ──MCP tools──► server.py (FastMCP)
│
echolink/proxy.py
(JSON API + WebSocket)
│
webapp.echolink.org/ProxyServlet
│
EchoLink networkAuth & control: POST https://webapp.echolink.org/ProxyServlet (JSON)
Audio: wss://webapp.echolink.org/websocket/{proxyHandle} (binary PCM frames)
No raw EchoLink protocol needed — the webapp backend handles authentication, NAT traversal, and codec conversion server-side.
Audio pipeline:
Outgoing:
say(text)→ TTS API → MP3 → ffmpeg → 8kHz PCM → WebSocket → EchoLinkIncoming: EchoLink → WebSocket → 8kHz PCM → WAV → STT API → text
License
MIT. Ham radio, keep the spirit of sharing.
Built by ERROR404.NET.
This server cannot be deployed
Maintenance
Related MCP Connectors
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
Give your AI a real phone: place calls, send SMS, fetch recordings and transcripts. Local or hosted.
Command your AI agents by voice: PTT rooms, channels, E2EE DMs, agent email, private recall.
- ChamadeOAuthio.chamade
Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP
Related MCP Servers
- AlicenseCqualityDmaintenanceA bridge connecting physical hardware with AI large language models through the Model Context Protocol (MCP), enabling natural language control of TCP devices.38MIT
- AlicenseAqualityDmaintenanceMCP server for HamQTH.com — callsign lookup, DX cluster spots, Reverse Beacon Network, DXCC resolution, and more through any MCP-compatible AI assistant.8GPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to speak and listen in real-time with interruption handling, using local ML models and hot-swappable adapters.11 npmMIT
- AlicenseNot gradedqualityAmaintenanceGives any text-based AI a voice and ears inside a Discord voice channel by transcribing speech, relaying to an LLM/agent, and speaking replies back.MIT