podium-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
podium-mcp
An MCP server for Podium, the provider-aware stream checker and reorderer for Dispatcharr. It lets Claude and other MCP clients inspect Podium's state, run checks, preview and apply stream orderings, and manage rules and settings.
You run it yourself, next to your own Podium instance. Nothing is hosted.
Quick start (Docker)
docker run -d --name podium-mcp \
-p 127.0.0.1:8080:8080 \
-e PODIUM_URL=http://<podium-host>:<port> \
-e MCP_AUTH_TOKEN=change-me \
ghcr.io/OWNER/podium-mcp:latestBind the published port to a specific interface (127.0.0.1 above) unless you
intend to expose the server to your LAN, and set MCP_AUTH_TOKEN if you do.
Or copy .env.example to .env, fill it in, and run
docker run --env-file .env ... instead of repeating -e flags. Alternatively
copy docker-compose.example.yml to docker-compose.yml, edit the values (or
add env_file: .env), and run docker compose up -d.
Check it is up: curl http://localhost:8080/healthz returns {"ok":true}.
Related MCP server: Tomo Streaming MCP
Configuration
Variable | Required | Default | Meaning |
| yes | — | Base URL of your Podium instance |
| no | — | Bearer token sent to Podium. Set it to Podium's |
| no |
| Per-request timeout |
| no |
|
|
| no |
| Listen port for HTTP |
| no | — | Bearer token clients must send to |
| no |
| Register |
| no |
|
|
The image EXPOSEs 8080, so if you change MCP_PORT you must change the
container side of the port mapping to match (for example
-p 127.0.0.1:9000:9000 with MCP_PORT=9000).
Connecting a client
Claude Code (HTTP)
claude mcp add --transport http podium http://localhost:8080/mcp \
--header "Authorization: Bearer change-me"Claude Desktop (HTTP)
Add to claude_desktop_config.json:
{
"mcpServers": {
"podium": {
"type": "http",
"url": "http://localhost:8080/mcp",
"headers": { "Authorization": "Bearer change-me" }
}
}
}Any client (stdio via Docker)
{
"mcpServers": {
"podium": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "PODIUM_URL=http://<podium-host>:<port>",
"-e", "MCP_TRANSPORT=stdio",
"ghcr.io/OWNER/podium-mcp:latest"
]
}
}
}Tools
Read-only:
Tool | What it does |
| Service and worker health, and Podium version |
| Stream state counts, provider breakdown, freshness |
| Current or last checker run |
| Dead, black and orphan streams |
| Channel/group view; |
| Search streams by name (2+ chars) |
| Groups with counts and exclusion status |
| Ordering mode and weights |
| Quality profile data |
| Uploaded rules status |
| Name-noise detector output |
| Settings (secrets masked and removed from the effective map) |
| Teamarr sync status |
| Dispatcharr Connect event intake state and recent deliveries |
Actions:
Tool | What it does | Guard |
| Queue or cancel a check run | — |
| Dry-run stream matching, including group filters and per-alias scope | none needed |
| Probe one channel's streams | — |
| Apply a stream order in Dispatcharr; pass the check's |
|
| Remove a stream from a channel |
|
| Save or clear channel match rules, resolution floor/ceiling and group filters |
|
| Set a group rule by id or name pattern: mode, measure-only, resolution floor/ceiling, group filter |
|
| Remove a group-name pattern rule | — |
| Update ordering mode and weights | — |
| Upload a rules JSON file | — |
| Test or save settings; secret keys are refused | — |
| Run (dry-run by default) or test Teamarr sync |
|
Opt-in (PODIUM_MCP_ENABLE_DESTRUCTIVE=true):
Tool | What it does | Guard |
| Export, or restore a backup |
|
| Clear Podium cache and history |
|
Every tool carries MCP annotations (readOnlyHint, destructiveHint) so clients
that honour them can prompt appropriately.
Safety notes
podium_apply_orderingandpodium_unassign_streamchange live Dispatcharr channels through Podium. Theconfirm: trueargument is a guard against accidental calls by a model. It is not a security boundary. Anyone who can reach the/mcpendpoint can call these tools, so setMCP_AUTH_TOKENand keep the port off the public internet.Through the default tool set the server never reads or writes Dispatcharr credentials. Secret settings are masked on read and refused on write.
The opt-in
podium_backuptool (behindPODIUM_MCP_ENABLE_DESTRUCTIVE=true) exports and restores Podium's raw backup document, which can include Podium's stored configuration and secrets. Leave the flag off unless you need it, and treat exported backups as sensitive.If
MCP_AUTH_TOKENis unset, the server logs a startup warning that/mcpis unauthenticated. Idle HTTP sessions are closed after 30 minutes.Podium rewrites a channel's aliases, contains and exclude lines on every rule save, and resets a group's mode to
alwayswhen none is sent. That is whypodium_rulesrequires those three lists andpodium_set_grouprequiresmode: read the current values withpodium_statefirst. Group name patterns are listed there too, underpatterns.
Built against Podium 1.17.0. Older Podium releases ignore the fields they do
not know, such as maxResolution, group filters, pruned and excludeFast;
before 1.17, per-alias and per-contains group filters keep only
excludeGroups.
Development
npm install
npm test
npm run build
PODIUM_URL=http://<podium-host>:<port> npm startnpm run smoke calls every read tool once against the Podium at PODIUM_URL.
Images: every push to master publishes a multi-arch image to GHCR as
latest and sha-<commit>. Pushing a tag like v0.1.0 also publishes the
0.1.0 and 0.1 tags and creates a GitHub Release.
Licence
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
Streamable HTTP MCP server exposing planner flows, tasks, and squads.
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Authenticated MCP server for ClearPolicy policy and compliance workflows.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCentralized MCP control plane that proxies multiple upstream MCP servers with tool namespacing, filtering, policy enforcement, audit logging, and health checks.6 npmMIT
- AlicenseAqualityBmaintenanceEnables MCP-compatible agents to manage Tomo Streaming rooms and runtimes, including creating, inspecting, controlling, and deleting rooms, as well as checking health and listing stream servers.73 npmPolyForm Noncommercial 1.0.0
- AlicenseAqualityCmaintenanceEnables MCP hosts to list, look up, and describe a static catalog of OpenAPI operations, and to inspect a governing contract and explicit deny-list that define what the server refuses to do.5MIT
- AlicenseAqualityBmaintenanceEnables an MCP client to drive a running SDR++ instance to discover, analyze, identify, demodulate, record, decode, and log radio signals.415MIT