MCP Holyrics
Monorepo em TypeScript para operar o Holyrics via MCP, com interpretacao de linguagem natural, busca de midias, CRUD de conteudos/eventos e automacao segura de playlist e agenda.
O projeto esta sendo construido em fases. Neste momento, a fundacao do monorepo ja esta pronta e a Fase 2 ja possui a primeira camada funcional de leitura: client HTTP real do Holyrics, casos de uso de leitura e registry inicial de tools no mcp-server.
Objetivo
- expor tools MCP para consultar e alterar dados do Holyrics
- interpretar comandos em PT-BR com LLM
- permitir busca de letras, musicas, textos, videos, audios, imagens e arquivos
- operar eventos, playlists e agendamentos com trilha de auditoria
- manter baixo custo, rodando localmente junto ao Holyrics
Stack
- Node.js 22+
- TypeScript
pnpmturboeslintvitest
Requisitos
- Node.js
>=22 pnpm10.x- Holyrics
v2.26.0+ - token da API Server do Holyrics
OpenAI API Keypara a fase de orquestracao por linguagem natural
Setup
- Instale as dependencias:
pnpm install
- Crie o arquivo
.enva partir do exemplo:
cp .env.example .env
- Preencha os valores do ambiente:
HOLYRICS_HOST: host da API Server do HolyricsHOLYRICS_PORT: porta da API ServerHOLYRICS_TOKEN: token com as permissoes necessariasHOLYRICS_AUTH_MODE:tokenouhashOPENAI_API_KEY: chave da OpenAIOPENAI_MODEL: modelo do orquestradorDATABASE_URL: caminho do SQLite localLOG_LEVEL: nivel de log
Comandos principais
pnpm install: instala as dependencias do workspacepnpm dev: roda os apps em modo desenvolvimento viaturbopnpm build: compila todos os pacotes e appspnpm typecheck: valida TypeScript no monorepopnpm typecheck:shared: valida somente o package@mcp-holyrics/sharedpnpm typecheck:watch: executa a checagem de tipos em modo watchpnpm lint: executa lint em todos os pacotespnpm test: executa testes do workspacepnpm clean: limpa artefatos locais
Estrutura do monorepo
Apps
- apps/mcp-server: servidor MCP que vai registrar e expor as tools usadas pelo cliente MCP
- apps/llm-orchestrator: camada que vai transformar linguagem natural em chamadas seguras de tools
- apps/ops-ui: painel operacional para jobs, auditoria, confirmacoes e status do sistema
Packages
- packages/shared: utilitarios compartilhados do workspace, como
config,errors,loggereresult - packages/tool-contracts: contratos e tipos de entrada/saida das tools MCP
- packages/domain: entidades e regras centrais do dominio do sistema
- packages/holyrics-client: adapter HTTP para a API do Holyrics, com autenticacao, transporte e mapeamento de erros
- packages/scheduler: agendamento local de execucoes, retries e persistencia de jobs
Responsabilidade de cada package
@mcp-holyrics/shared
Responsavel por infraestrutura transversal:
- configuracao do ambiente
loadConfig()para ler.enveprocess.env- erros tipados
- logger padrao
- tipo de retorno comum para casos de uso e tools
@mcp-holyrics/tool-contracts
Responsavel por:
- definir inputs e outputs das tools MCP
- padronizar
requestId,idempotencyKeye contratos de busca - centralizar os tipos que serao compartilhados entre
mcp-server,domainellm-orchestrator - hoje contem contratos para
get_schedules,get_events,search_lyrics,search_textsesearch_media
@mcp-holyrics/domain
Responsavel por:
- entidades do negocio
- regras de seguranca e validacao
- casos de uso
- politicas de confirmacao e resolucao de ambiguidades
- hoje contem use cases de leitura para agenda, eventos, letras, textos e midias
@mcp-holyrics/holyrics-client
Responsavel por:
- encapsular a API do Holyrics
- implementar autenticacao
tokenehash - abstrair diferencas entre chamadas locais e futuras chamadas remotas
- mapear respostas e erros da API para tipos internos
- hoje suporta
GetSchedules,GetEvents,SearchLyrics,SearchText,GetAudios,GetVideos,GetImageseGetFiles
@mcp-holyrics/scheduler
Responsavel por:
- representar jobs agendados
- executar tools em horario futuro
- manter retries, idempotencia e coordenacao com auditoria
Fluxo arquitetural esperado
- o usuario envia um pedido em linguagem natural
apps/llm-orchestratorinterpreta a intencao e resolve entidadesapps/mcp-serverseleciona e executa a tool corretapackages/domainaplica regras de negocio e segurancapackages/holyrics-clientchama a API do Holyricspackages/schedulerentra no fluxo quando a execucao for futuraapps/ops-uiacompanha jobs, auditoria e confirmacoes
Estado atual
- Fase 0 concluida: descoberta tecnica, baseline e backlog inicial
- Fase 1 concluida: scaffold do monorepo, configs base e validacao de
typecheck,lintetest - Fase 2 em andamento:
packages/holyrics-clientimplementado com authtoken/hash, timeout e erros tipadospackages/domaincom use cases de leituraapps/mcp-servercom registry inicial das tools de leitura- tools de leitura disponiveis no registry:
get_schedulesget_eventssearch_lyricssearch_textssearch_media
Documentacao complementar
Observacoes importantes
- CRUD premium no Holyrics exige
Holyrics Plane permissao avancada habilitada - operacoes com
event_idem playlist dependem deHolyrics v2.26.0+ - o projeto ja possui integracao real com a API do Holyrics no
packages/holyrics-client - o
apps/mcp-serverainda nao sobe um servidor MCP real com@modelcontextprotocol/sdk; por enquanto ele expone um registry interno de tools