ESP32-C3 MCP Music Server
ESP32-C3 MCP Music Server
Корневой каталог этого проекта представляет собой MCP-сервер, предназначенный для управления воспроизведением музыки на аудиоклиенте ESP32-C3 через MQTT с помощью OpenClaw, Claude Desktop или других MCP-агентов.
Инструкции по прошивке ESP32-C3 находятся в esp32-c3-client/README.md.
Функции
Отправка команд управления (воспроизведение, пауза, стоп, громкость, следующая песня и т.д.) на ESP32-C3 через MQTT
Чтение списка песен из HTTP-каталога музыки
Поддержка поиска и воспроизведения по названию песни
Поддержка последовательного воспроизведения всего списка музыки
Поддержка записи плейлиста в MQTT retained topic для автономного воспроизведения на ESP32-C3
Поддержка сброса сохраненных настроек Wi-Fi на ESP32-C3 для повторного входа в режим настройки через смартфон
Требования
Node.js 18 или выше
Доступный MQTT-брокер
Клиент ESP32-C3 прошит и подключен к тому же MQTT-брокеру
HTTP-каталог музыки, например, директория с MP3-файлами, опубликованная через nginx
Установка
npm installСкопируйте шаблон переменных окружения:
copy .env.example .envВ Windows PowerShell также можно использовать:
Copy-Item .env.example .envЗатем измените .env в соответствии с вашей конфигурацией.
Переменные окружения
MQTT_BROKER=mqtt://esp32:esp32mqtt2026@localhost:1883
MQTT_TOPIC=esp32-c3/music/play
MQTT_PLAYLIST_TOPIC=esp32-c3/music/playlist/active
MUSIC_LIBRARY_URL=http://47.102.147.204:8080/mp3/
FETCH_TIMEOUT_MS=8000
MAX_PLAYLIST_FETCHES=3
MAX_PLAYLIST_ITEMS=50Описание:
MQTT_BROKER: Адрес подключения к MQTT-брокеру, поддерживаются URL с именем пользователя и паролемMQTT_TOPIC: Топик, в который ESP32-C3 получает команды управленияMQTT_PLAYLIST_TOPIC: Префикс для retained-топика кэша плейлистаMUSIC_LIBRARY_URL: Адрес HTTP-каталога музыки, в конце можно не ставить/FETCH_TIMEOUT_MS: Тайм-аут для получения каталога музыки или файлов плейлистаMAX_PLAYLIST_FETCHES: Максимальное количество анализируемых файлов плейлистовMAX_PLAYLIST_ITEMS: Максимальное количество песен, кэшируемых при последовательном воспроизведении
Пример конфигурации MCP
В агентах, поддерживающих MCP stdio server, настройте команду следующим образом:
{
"mcpServers": {
"esp32-c3-music": {
"command": "node",
"args": ["D:\\ESP32-C3-MCP\\index.js"],
"cwd": "D:\\ESP32-C3-MCP"
}
}
}Если агент поддерживает переменные окружения, можно также поместить переменные из .env непосредственно в конфигурацию MCP-сервера.
Доступные инструменты
list_music_library
Сканирует MUSIC_LIBRARY_URL и возвращает список найденных названий песен и их URL.
play_music
Воспроизводит указанную песню. Можно передать:
url: Воспроизвести этот URL напрямуюsong_name: Найти и воспроизвести по названию из музыкальной библиотеки
Если переданы и url, и song_name, приоритет отдается url.
play_song_from_library
Поиск и воспроизведение только по song_name из музыкальной библиотеки.
play_playlist
Последовательное воспроизведение списка музыкальной библиотеки.
Сначала список записывается в MQTT retained topic:
esp32-c3/music/playlist/active/meta
esp32-c3/music/playlist/active/item/0
esp32-c3/music/playlist/active/item/1Затем в MQTT_TOPIC отправляется:
{"action":"play_playlist","start_index":0}После получения ESP32-C3 начинает воспроизведение из локально кэшированного списка, автоматически переходя к следующей песне после завершения текущей. Таким образом, MCP-серверу не нужно быть постоянно онлайн.
Параметры:
start_index: С какой песни начать, по умолчанию0max_songs: Максимальное количество песен для кэширования и воспроизведения, по умолчаниюMAX_PLAYLIST_ITEMS
next_music
Следующая песня или переключение трека.
Передача
urlилиsong_name: Прямое переключение на указанную песню, сохраняя логику воспроизведения одного трекаБез параметров: Отправка
playlist_next, чтобы ESP32-C3 перешел к следующей песне в режиме плейлиста
pause_music
Приостановка воспроизведения. ESP32-C3 остановит текущее воспроизведение, но сохранит последний URL.
stop_music
Остановка воспроизведения и очистка последнего URL. Режим плейлиста также будет завершен.
set_volume
Установка громкости, диапазон 0-100.
reset_wifi
Отправка:
{"action":"reset_wifi"}После получения ESP32-C3 очистит сохраненные настройки Wi-Fi и перезагрузится, после чего откроет точку доступа для настройки через смартфон.
Примечание: этот инструмент требует, чтобы ESP32-C3 оставался онлайн и был подключен к MQTT. Если устройство уже оффлайн, оно не получит это сообщение MQTT, и придется дождаться автоматического включения точки доступа после неудачного подключения прошивки.
Соглашение о сообщениях MQTT
Топик управления по умолчанию:
esp32-c3/music/playТиповые сообщения управления:
{"action":"play","url":"http://example.com/song.mp3"}
{"action":"next","url":"http://example.com/next.mp3"}
{"action":"pause"}
{"action":"stop"}
{"action":"set_volume","volume":65}
{"action":"play_playlist","start_index":0}
{"action":"playlist_next"}
{"action":"reset_wifi"}Префикс топика плейлиста по умолчанию:
esp32-c3/music/playlist/activeMCP-сервер публикует retained-сообщения, на которые подписывается ESP32-C3:
esp32-c3/music/playlist/active/#Локальная проверка
Проверка синтаксиса Node.js:
node --check index.jsВ текущем package.json пока нет скриптов автоматического тестирования.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/xiazhe-xz/ESP32-C3-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server