Skip to main content

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_node and disconnect_node automatically block during active RX/TX unless override_active_qso=True
  • Confirmed flag: connect_node, disconnect_node, send_dtmf, execute_macro, and disconnect_all all require confirmed=True and will no-op with an explanation if not set
  • Dry-run mode: All confirmed-action tools accept dry_run=True to preview the action and payload without executing
  • Audit context: get_audit_log lets 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allstar_mcp-0.1.2.tar.gz (82.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allstar_mcp-0.1.2-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

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

Hashes for allstar_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6f4a8700012b9566ae98ab07ad8835c34f14c45769e7ef3e3559bbc1ae9f594b
MD5 0da42ee922c4472821256b6bba5d6fb5
BLAKE2b-256 5024beef84ae1cff10e5557597976ee8a56608397bf1d0badeb80c3e3a53fdf8

See more details on using hashes here.

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

Hashes for allstar_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1c4d8a72a5ca69be27a6d734ee967c9dc225b70426eb1f774595726558e356ec
MD5 6b0366b3fe9271f0bda03f94c1390ee8
BLAKE2b-256 d15c9cfe3a0fb1893928a5538798aa1ded51b9408ea389f4649a40c2f2059e3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page