An MCP server for controlling Zaparoo devices, allowing AI assistants to interact with Zaparoo.
npx -y zaparoo-mcpBy default, devices on the local network are discovered automatically via mDNS. To specify devices manually:
npx -y zaparoo-mcp --devices 192.168.1.100claude mcp add zaparoo -- npx -y zaparoo-mcpWith manual device configuration:
claude mcp add zaparoo --env ZAPAROO_DEVICES=192.168.1.100 -- npx -y zaparoo-mcpAdd to your claude_desktop_config.json:
{
"mcpServers": {
"zaparoo": {
"command": "npx",
"args": ["-y", "zaparoo-mcp"]
}
}
}codex mcp add zaparoo -- npx -y zaparoo-mcpOr add to ~/.codex/config.toml:
[mcp_servers.zaparoo]
command = "npx"
args = ["-y", "zaparoo-mcp"]openclaw mcp set zaparoo '{"command":"npx","args":["-y","zaparoo-mcp"]}'Add to .cursor/mcp.json:
{
"mcpServers": {
"zaparoo": {
"command": "npx",
"args": ["-y", "zaparoo-mcp"]
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"zaparoo": {
"command": "npx",
"args": ["-y", "zaparoo-mcp"]
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"zaparoo": {
"command": "npx",
"args": ["-y", "zaparoo-mcp"]
}
}
}By default, the server discovers Zaparoo devices on the local network using mDNS. No configuration is needed if your devices are on the same network.
To manually specify devices, use CLI arguments or environment variables. CLI arguments take precedence.
| Setting | CLI Argument | Environment Variable |
|---|---|---|
| Devices | --devices host:port[,host:port,...] |
ZAPAROO_DEVICES |
| API keys | --keys key1[,key2,...] |
ZAPAROO_KEYS |
| No discovery | --no-discovery |
ZAPAROO_NO_DISCOVERY=1 |
The default port is 7497 if not specified. When devices are specified manually, mDNS discovery is disabled.
| Category | Tools |
|---|---|
| Launch & Control | zaparoo_run, zaparoo_stop, zaparoo_media_control, zaparoo_input |
| Media Library | zaparoo_media, zaparoo_media_index, zaparoo_systems |
| NFC & Tokens | zaparoo_readers, zaparoo_readers_write, zaparoo_tokens, zaparoo_mappings |
| Device Management | zaparoo_devices, zaparoo_settings, zaparoo_settings_update, zaparoo_admin, zaparoo_admin_manage, zaparoo_screenshot |
| Monitoring | zaparoo_notifications, zaparoo_logs, zaparoo_inbox |
zaparoo://devices— all connected device stateszaparoo://{deviceId}/state— per-device state (readers, active media, tokens)zaparoo://reference/zapscript— ZapScript language reference
- Write NFC Tag — search for a game and write it to an NFC tag
- Find & Launch Game — search your library and launch a game
- Create Token Mapping — map NFC token scans to actions
- Review Play History — play statistics and recent activity
- What's Playing? — quick status dashboard of all devices
- Explore Game Library — browse games, get recommendations, discover hidden gems
- ZapScript Help — help composing ZapScript commands
- Node.js 22+
- One or more Zaparoo Core devices accessible on the network
git clone https://github.com/ZaparooProject/zaparoo-mcp.git
cd zaparoo-mcp
npm install
npm run build| Command | Description |
|---|---|
npm run dev |
Build in watch mode |
npm run lint:fix |
Auto-fix lint issues |
npm run format |
Format code |
npm test |
Run tests |
npm run test:watch |
Tests in watch mode |
This project is licensed under the GNU General Public License v3.0 or later.