Raspberry Pi MCP Audio Control System
Enables remote control of audio playback and system volume on a Raspberry Pi via the Model Context Protocol (MCP).
README
๐ Raspberry Pi MCP Audio Control System
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, and manage volume.client/: A reference Python client that demonstrates how to send audio files and control commands to the 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
๐งช Testing
You can run the integration tests to verify the audio processing and server logic:
# Run all tests in the tests/ directory
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
โโโ server/ # MCP Server implementation
โ โโโ audio/ # Audio playback and volume logic
โ โโโ image/ # Placeholder for image tools
โ โโโ video/ # Placeholder for video tools
โโโ tests/ # Integration tests
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.