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
Metadata
Release files for allstar-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| allstar_mcp-0.1.2.tar.gz | 82.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| allstar_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.4 kB
Release files / allstar_mcp-0.1.2.tar.gz
| Download URL | allstar_mcp-0.1.2.tar.gz |
|---|---|
| Size | 82.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f4a8700012b9566ae98ab07ad8835c34f14c45769e7ef3e3559bbc1ae9f594b
|
|
BLAKE2b-256 checksum How to use checksums |
5024beef84ae1cff10e5557597976ee8a56608397bf1d0badeb80c3e3a53fdf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / allstar_mcp-0.1.2-py3-none-any.whl
| Download URL | allstar_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c4d8a72a5ca69be27a6d734ee967c9dc225b70426eb1f774595726558e356ec
|
|
BLAKE2b-256 checksum How to use checksums |
d15c9cfe3a0fb1893928a5538798aa1ded51b9408ea389f4649a40c2f2059e3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|