Skip to main content

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 - Japan
  • US - United States
  • FR - France
  • DE - Germany
  • GB - United Kingdom
  • CN - 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──
  1. AI sends commands via MCP protocol
  2. MCP server triggers URL Scheme (roam-fm://play, etc.)
  3. Roam FM app executes the command
  4. App writes status to ~/.roam-fm/status.json
  5. MCP server reads status and returns result

Troubleshooting

"Status file not found"

Make sure MCP remote control is enabled in Roam FM:

  1. Open Roam FM
  2. Go to Settings > Labs
  3. Enable "AI Remote Control"

Commands not working

  1. Check if Roam FM is running
  2. Verify the app is responding to URL schemes:
    open "roam-fm://play"
    
  3. Check status file exists:
    cat ~/.roam-fm/status.json
    

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

roam_fm_mcp-0.1.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

roam_fm_mcp-0.1.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

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

Hashes for roam_fm_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 63ef785bfbafd82f2da32199cb084c90fca897ddd5d85c33a0126126b261d580
MD5 4e6400377ef4f2a6a41ff62c0d709408
BLAKE2b-256 8e79f2c6386aa36d4338c92f77565929dbbda26f693c42d5323d87f2b7d3941c

See more details on using hashes here.

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

Hashes for roam_fm_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c2198b2e148a3d5df8018672b9b2ffc5aa7044c4cee63d77510bda9f7db00bf
MD5 3b74c59e30c3820d3647613b0efb4861
BLAKE2b-256 18a643a080f5bab633642d079814ccfa98765d52e5de7998957b72a5158be28b

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