mood-radio-mcp
Enables users to anonymously share and pass along songs with messages in mood-based rooms, and view community-featured radio feeds, relay chains, and charts.
README
Song Mailbox MCP
노래를 한 곡 받으면, 내가 좋아하는 다른 노래와 짧은 문구를 다음 사람에게 추천해 릴레이를 잇는 익명 노래우체통 MCP입니다.
이 서버는 AI가 임의로 노래를 추천하는 도구가 아니라, 사용자가 남긴 노래와 한 줄 메시지를 커뮤니티 피드와 릴레이 체인으로 저장하고 다시 배달합니다. 노래를 받은 사람은 자기가 좋아하는 다른 노래와 짧은 문구를 다음 사람에게 추천해 릴레이를 이어갑니다. 음원이나 가사는 제공하지 않고, 곡명/아티스트/검색 링크만 반환합니다.
Tools
get_mailbox_info: 노래우체통 사용 흐름과 커뮤니티 정책을 확인합니다.recommend_song: 받은 노래의delivery_id를 기준으로 내가 좋아하는 다른 노래와 문구를 다음 사람에게 추천합니다.get_song: 이전 타자가 남긴 노래와 짧은 추천 문구를 하나 받습니다.react_song: 받은 노래에 공감, 저장, 스킵 반응을 남깁니다.post_id또는delivery_id를 사용할 수 있습니다.get_song_chart: 오늘 또는 전체 인기 추천곡을 봅니다.get_relay_board: 길게 이어진 추천 릴레이를 봅니다.get_relay_chain: 특정 노래가 속한 릴레이 기록을 봅니다.get_share_card: 받은 노래나 릴레이 노래를 공유하기 좋은 카드 문구로 만듭니다.report_song: 부적절한 노래/메시지를 신고합니다.
Why It Needs A Server
- 사용자가 남긴 노래와 짧은 추천 문구를 저장합니다.
- 같은 사용자에게 같은 노래가 반복 배달되지 않도록 배달 이력을 기록합니다.
- 받은 노래에서 다음 노래로 이어지는 릴레이 체인을 저장합니다.
- 길어진 추천 릴레이를 보드로 집계합니다.
- 공감/저장/스킵/신고 반응을 누적해 차트와 추천 우선순위에 반영합니다.
- 신고가 누적된 게시물을 추천 피드에서 제외합니다.
- 익명 사용자 힌트를 해시로 저장해 게시/릴레이/반응/신고 남용을 제한합니다.
Local Run
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
mood-radio-mcp
기본 포트는 8000입니다.
PORT=8080 mood-radio-mcp
MOOD_RADIO_DB=/tmp/mood-radio.sqlite mood-radio-mcp
MOOD_RADIO_POST_LIMIT=20/3600 mood-radio-mcp
Streamable HTTP endpoint:
http://127.0.0.1:8000/mcp
Health check:
http://127.0.0.1:8000/health
Human-readable service metadata:
http://127.0.0.1:8000/
Docker
docker build -t mood-radio-mcp .
docker run --rm -p 8000:8000 \
-e PORT=8000 \
-e MOOD_RADIO_DB=/data/mood-radio.sqlite \
-v mood-radio-data:/data \
mood-radio-mcp
Docker Compose:
docker compose up --build
Test
pytest
Convenience targets:
make test
make audit
make bundle
make docker-smoke
make preflight ENDPOINT=https://<kakao-cloud-endpoint>
HTTP endpoint smoke test:
uv run --python 3.11 python scripts/smoke_http.py http://127.0.0.1:8000/mcp
Reviewer-friendly demo transcript:
uv run --python 3.11 python scripts/reviewer_demo.py
uv run --python 3.11 python scripts/reviewer_demo.py --endpoint http://127.0.0.1:8000/mcp
Deployment preflight with health + MCP smoke:
uv run --python 3.11 python scripts/submission_audit.py
uv run --python 3.11 python scripts/build_release_bundle.py
uv run --python 3.11 python scripts/preflight_endpoint.py http://127.0.0.1:8000
Example Prompts
- "노래 하나 받을래."
- "나도 다음 사람에게 노래와 문구를 남길래."
- "아이유 밤편지를 다음 사람에게 추천해줘. 문구는 '오늘 밤 오래 들고 가도 좋은 노래'야."
- "방금 받은 노래에 답장으로 aespa의 Supernova를 추천해줘. 문구는 '조금 더 힘내기'야."
- "방금 받은 노래 저장해줘."
- "방금 추천한 노래 공유 카드 만들어줘."
- "지금 노래우체통에서 어떤 릴레이가 제일 길게 이어지고 있어?"
- "이 노래가 어디서 이어져 왔는지 릴레이 기록 보여줘."
- "오늘 사람들이 가장 많이 공감한 추천곡 보여줘."
PlayMCP Submission
제출용 콘솔 문구와 심사 프롬프트 초안은 docs/playmcp-submission.md에 정리했습니다.
배포 절차와 헬스체크는 docs/deployment.md에 정리했습니다.
맥미니 실행 절차는 docs/mac-mini-deployment.md에 정리했습니다.
Safety Notes
- 가사와 음원 파일은 저장하거나 반환하지 않습니다.
- 링크가 없으면 YouTube/Melon/Spotify 검색 링크만 생성합니다.
- 메시지/답장에는 연락처, 이메일, 오픈채팅, 계좌, URL, 가사 라벨을 남길 수 없습니다.
- 곡명/아티스트처럼 공개 노출되는 메타데이터에도 URL, 연락처, 긴 숫자, 반복문자 스팸을 남길 수 없습니다.
- 공개 닉네임과 신고 사유에도 같은 커뮤니티 안전 규칙을 적용합니다.
- 같은 곡과 같은 추천 문구를 24시간 안에 반복해서 남길 수 없습니다.
actor_hint가 제공되면 원문 대신 해시만 저장해 게시/릴레이/반응/신고 요청 수를 제한합니다.- 직접 링크는 YouTube, Melon, Spotify, SoundCloud, Apple Music 등 지원 음악 서비스만 허용합니다.
- 신고가 누적된 게시물은 추천에서 제외됩니다.
- 같은 곡이 피드를 도배하지 않도록 최근 중복을 낮은 우선순위로 둡니다.
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.