Skip to main content

An MCP server for discovering public radio stations and stream URLs through Radio Browser

Project description

Oremi Rediyo

Buy me a beer

Oremi Rediyo is an MCP server for internet radio streaming. It provides AI assistants and autonomous agents with a unified interface to discover, search, and play radio stations from around the world through the Model Context Protocol (MCP).

Built to run in Docker, Oremi Rediyo offers reliable access to thousands of internet radio stations, allowing agents to browse stations by name, country, language, genre, or popularity, and control playback using a standardized MCP interface.

The name Oremi Rediyo comes from the Yoruba language. Oremi means "my friend", reflecting the project's goal of building a helpful and trustworthy AI ecosystem. Rediyo is the Yoruba word for "radio", representing the service's responsibility for discovering and streaming internet radio stations through a unified MCP interface.

Oremi Rediyo Logo

Core Capabilities

  • Search by station name, UUID, codec, country, country code, state, language, or tag
  • Return complete station metadata, including the preferred url_resolved stream URL
  • Browse countries, languages, and tags with station counts
  • Inspect Radio Browser service statistics
  • Register a Radio Browser click when playback starts
  • Configure timeouts, result limits, broken-station filtering, HTTP binding, API prefix, and logging through environment variables
  • Serve MCP over Streamable HTTP
  • Run as a lightweight Docker container with simple deployment.
  • Integrate seamlessly with the Oremi ecosystem and other MCP-compatible clients.

MCP tools

Tool Purpose
search_radio_stations Discover stations and their stream URLs
get_radio_station Retrieve current metadata for one station UUID
list_radio_countries Browse countries and station counts
list_radio_languages Browse languages and station counts
list_radio_tags Browse genres/tags and station counts
get_radio_browser_stats Inspect directory status and totals
register_radio_playback Register a click after playback actually starts

Search results expose both url and url_resolved. Prefer url_resolved for playback because Radio Browser has already followed playlist/redirect URLs.

Documentation

All project documentation—including architecture details, configuration reference, and the Home Assistant integration guide—can be found at: https://demsking.gitlab.io/oremi-rediyo/

Development

Oremi Device is built with Python and uses uv for dependency management. The project follows standard Python development practices with type hints, linting, and automated testing.

For detailed information on setting up your development environment, running tests, code style guidelines, and the pull request process, please refer to CONTRIBUTING.md.

Versioning

This project adheres to Semantic Versioning (SemVer). Version numbers follow the MAJOR.MINOR.PATCH format:

  • MAJOR version increments for incompatible API changes
  • MINOR version increments for backward-compatible new functionality
  • PATCH version increments for backward-compatible bug fixes

License

Copyright 2026 Sébastien Demanou. All Rights Reserved.

Licensed under the Apache License, Version 2.0. See the LICENSE for the complete license text.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

oremi_rediyo-1.0.0b1-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file oremi_rediyo-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: oremi_rediyo-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for oremi_rediyo-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b2c4a8c59940d72bad6335637b1e8e0641fe3d2e91544ba145a202f2ad82266
MD5 7d07b214fd56170fc8d8c03aeda07ce5
BLAKE2b-256 181a59a2a40fc78bd29c08b3c4db1395c836010f36ab5fd9ad90c5ce25381728

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