MCP server for controlling Roam FM radio app via AI assistants like Claude
Project description
Roam FM MCP Server
MCP (Model Context Protocol) server for controlling Roam FM radio app via AI assistants like Claude.
Prerequisites
- macOS
- Roam FM app installed and running
- MCP remote control enabled in Roam FM: Settings > Labs > AI Remote Control
- Python 3.10+
Installation
cd mcp-server
pip install -e .
Configuration
Claude Code
Add to your Claude Code MCP settings (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"roam-fm": {
"command": "roam-fm-mcp"
}
}
}
Or if using a virtual environment:
{
"mcpServers": {
"roam-fm": {
"command": "/path/to/venv/bin/roam-fm-mcp"
}
}
}
Available Tools
| Tool | Description |
|---|---|
roam_play |
Start playing radio. Optionally filter by country code. |
roam_pause |
Pause the current station. |
roam_resume |
Resume playback. |
roam_next |
Skip to next random station. |
roam_stop |
Stop playback completely. |
roam_status |
Get current playback status and station info. |
roam_get_stats |
Get listening statistics. |
Country Codes
Use ISO 3166-1 alpha-2 country codes for filtering:
JP- JapanUS- United StatesFR- FranceDE- GermanyGB- United KingdomCN- China- etc.
Example Usage
Ask your AI assistant:
- "Play Japanese radio stations"
- "Pause the radio"
- "What's currently playing?"
- "Skip to the next station"
- "How long have I been listening?"
How It Works
AI Assistant ──MCP──> roam-fm-mcp ──URL Scheme──> Roam FM App
<──status.json──
- AI sends commands via MCP protocol
- MCP server triggers URL Scheme (
roam-fm://play, etc.) - Roam FM app executes the command
- App writes status to
~/.roam-fm/status.json - MCP server reads status and returns result
Troubleshooting
"Status file not found"
Make sure MCP remote control is enabled in Roam FM:
- Open Roam FM
- Go to Settings > Labs
- Enable "AI Remote Control"
Commands not working
- Check if Roam FM is running
- Verify the app is responding to URL schemes:
open "roam-fm://play"
- Check status file exists:
cat ~/.roam-fm/status.json
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 roam_fm_mcp-0.1.0.tar.gz.
File metadata
- Download URL: roam_fm_mcp-0.1.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63ef785bfbafd82f2da32199cb084c90fca897ddd5d85c33a0126126b261d580
|
|
| MD5 |
4e6400377ef4f2a6a41ff62c0d709408
|
|
| BLAKE2b-256 |
8e79f2c6386aa36d4338c92f77565929dbbda26f693c42d5323d87f2b7d3941c
|
File details
Details for the file roam_fm_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: roam_fm_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c2198b2e148a3d5df8018672b9b2ffc5aa7044c4cee63d77510bda9f7db00bf
|
|
| MD5 |
3b74c59e30c3820d3647613b0efb4861
|
|
| BLAKE2b-256 |
18a643a080f5bab633642d079814ccfa98765d52e5de7998957b72a5158be28b
|