Skip to main content
Glama
ChilindrinoBot

Raspberry Pi MCP Audio Control System

πŸ”Š Raspberry Pi MCP Audio Control System

Cualquier modificaciΓ³n en el nombre del proyecto debe ser consultada.

A distributed audio management system based on the Model Context Protocol (MCP). This project allows you to remotely control audio playback and system volume on a target machine (e.g., a Raspberry Pi) via a standardized MCP interface.

πŸ—οΈ Architecture

The system is split into two main components:

  • server/: The MCP Server. It runs on the machine connected to the speakers. It exposes tools to play audio bytes, stop playback, manage volume, and play notification sounds.

  • client/: A reference Python client that demonstrates how to send audio files and control commands to the server.

Related MCP server: MCP AppleMusic Server

πŸš€ Quick Start

1. Server Setup

The server requires ffmpeg (for ffplay) to be installed on the host machine:

sudo apt install ffmpeg

2. Running the Server

For production:

python -m server.main

For development:

uv run mcp dev server/main.py

3. Client Usage

Once the server is running, you can use the client CLI:

# Play an audio file
python -m client.main play --file path/to/audio.mp3

# Stop playback
python -m client.main stop

# Play a notification sound (default)
python -m client.main notify

# Play a random notification sound
python -m client.main notify --random

πŸ§ͺ Testing

It is highly recommended to run the integration tests to verify the audio processing and server logic.

# Set PYTHONPATH to include the current directory and run tests
export PYTHONPATH=$PYTHONPATH:.
python -m unittest discover tests

πŸ› οΈ Tech Stack

  • Language: Python 3.11+

  • Protocol: Model Context Protocol (MCP)

  • Audio Backend: ffplay (FFmpeg)

  • Package Management: uv / pyproject.toml

πŸ“ Project Structure

.
β”œβ”€β”€ client/             # Reference MCP Client
β”‚   β”œβ”€β”€ main.py         # Client CLI entry point
β”‚   β”œβ”€β”€ audio_client.py # Audio control logic
β”‚   └── notification_client.py # Notification logic
β”œβ”€β”€ server/             # MCP Server implementation
β”‚   β”œβ”€β”€ audio/          # Audio playback and volume logic
β”‚   β”‚   β”œβ”€β”€ play.py     # Base audio control
β”‚   β”‚   └── notify.py   # Notification sounds logic
β”‚   β”œβ”€β”€ image/          # Placeholder for image tools
β”‚   └── video/          # Placeholder for video tools
└── tests/              # Integration tests
F
license - not found
-
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChilindrinoBot/raspberry-pi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server