MCP server for AllStar Link — wraps ASL3-API REST endpoints as MCP tools for AI agent control of amateur radio nodes
Project description
allstar-mcp
MCP server for AllStar Link node control. Wraps ASL3-API REST endpoints as MCP tools, giving AI agents (Claude, GPT-4, any MCP-compatible client) structured, intent-aware access to AllStar Link node monitoring and control.
The first MCP server for AllStar Link in existence.
Architecture
Claude / AI Agent
|
allstar-mcp (FastMCP, Python)
|
ASL3-API (REST + SSE, port 8073)
|
AMI / Asterisk / app_rpt
The MCP server is a translation layer only. It never touches AMI directly — all operations go through ASL3-API REST endpoints.
Requirements
- ASL3-API v1.4+ running on your AllStar node (see ASL3-API)
- Python 3.11+ or
uv
Quick Start
ALLSTAR_API_KEY=yourkey ALLSTAR_API_URL=http://your-node:8073 uvx allstar-mcp
Claude Desktop Configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"allstar": {
"command": "uvx",
"args": ["allstar-mcp"],
"env": {
"ALLSTAR_API_KEY": "your-api-key-here",
"ALLSTAR_API_URL": "http://your-node-ip:8073"
}
}
}
}
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
ALLSTAR_API_KEY |
Yes | — | ASL3-API authentication key |
ALLSTAR_API_URL |
No | http://localhost:8073 |
Base URL of your ASL3-API instance |
Tool Surface
Read-only (no risk)
| Tool | Description |
|---|---|
health_check |
API reachable, auth works, AMI connected, node/version |
get_node_status |
Uptime, keyup count, TX time, DTMF stats |
get_connected_nodes |
Who is linked and where (with callsign/location) |
get_live_variables |
Live RX/TX keyed state, link counts, autopatch status |
get_capabilities |
What this node supports — for agent auto-config |
lookup_node |
Callsign, location from 40k-node AllStar database |
get_audit_log |
Recent command history for agent context |
Low-risk control
| Tool | Description |
|---|---|
cop_identify |
Play node ID over the air |
cop_time |
Say current time over the air |
cop_status |
Say system status over the air |
cop_version |
Say app_rpt version over the air |
Medium-risk (require situational awareness)
| Tool | Description |
|---|---|
connect_node |
Connect to a remote node (confirmed=True required) |
disconnect_node |
Disconnect from a specific node (confirmed=True required) |
send_dtmf |
Send DTMF sequence (confirmed=True required) |
execute_macro |
Run a macro from rpt.conf (confirmed=True required) |
High-risk (destructive)
| Tool | Description |
|---|---|
disconnect_all |
Drop ALL active connections (confirmed=True required) |
Resources
| Resource | Description |
|---|---|
allstar://events/stream |
SSE event stream URL and connection details |
Safety Design
- Active-QSO guard:
connect_nodeanddisconnect_nodeautomatically block during active RX/TX unlessoverride_active_qso=True - Confirmed flag:
connect_node,disconnect_node,send_dtmf,execute_macro, anddisconnect_allall requireconfirmed=Trueand will no-op with an explanation if not set - Dry-run mode: All confirmed-action tools accept
dry_run=Trueto preview the action and payload without executing - Audit context:
get_audit_loglets the agent check recent command history before issuing duplicate commands - No AMI access: The server has no Asterisk/AMI credentials and cannot bypass ASL3-API
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file allstar_mcp-0.1.2.tar.gz.
File metadata
- Download URL: allstar_mcp-0.1.2.tar.gz
- Upload date:
- Size: 82.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f4a8700012b9566ae98ab07ad8835c34f14c45769e7ef3e3559bbc1ae9f594b
|
|
| MD5 |
0da42ee922c4472821256b6bba5d6fb5
|
|
| BLAKE2b-256 |
5024beef84ae1cff10e5557597976ee8a56608397bf1d0badeb80c3e3a53fdf8
|
File details
Details for the file allstar_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: allstar_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c4d8a72a5ca69be27a6d734ee967c9dc225b70426eb1f774595726558e356ec
|
|
| MD5 |
6b0366b3fe9271f0bda03f94c1390ee8
|
|
| BLAKE2b-256 |
d15c9cfe3a0fb1893928a5538798aa1ded51b9408ea389f4649a40c2f2059e3b
|