MCP — Model Context Protocol
Servidor MCP público da ER+
Acesso programático read-only a cursos, turmas, vagas, professores, podcasts e blog da Escola de Rádio. Pensado pra agentes de IA (Claude Desktop, Cursor, ChatGPT futuro, etc) consultarem dados ao vivo sem scraping.
🔌 Endpoint
URL
https://escoladeradio.com.br/api/mcpTransport
streamable-http
Protocol version
2025-06-18
Auth
nenhum (público)
Descoberta
https://escoladeradio.com.br/.well-known/mcp-server.json🤖 Conectando ao Claude Desktop
No claude_desktop_config.json:
{
"mcpServers": {
"escola-de-radio": {
"transport": {
"type": "streamable-http",
"url": "https://escoladeradio.com.br/api/mcp"
}
}
}
}🧪 Teste rápido (curl)
# Listar tools disponíveis
curl -X POST https://escoladeradio.com.br/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# Listar cursos profissionalizantes (com DRT)
curl -X POST https://escoladeradio.com.br/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{
"name":"list_courses",
"arguments":{"modalidade":"profissionalizante"}
}
}'
# Vagas restantes em narração esportiva
curl -X POST https://escoladeradio.com.br/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{
"name":"check_availability",
"arguments":{"slug":"narracao-esportiva"}
}
}'🛠️ Tools disponíveis (13)
school_infoInformações da escolaRetorna informações institucionais da Escola de Rádio: CNPJ, endereço, contatos, horários, modalidades de curso oferecidas. Bom ponto de partida pra entender o que a escola é.
list_coursesListar cursosLista TODOS os cursos ativos da escola (resumido). Opcionalmente filtra por modalidade. Modalidades: 'profissionalizante' (formação completa com DRT), 'livre' (Express, especialização curta), 'ead' (online assíncrono). Use get_course com o slug pra detalhe completo.
get_courseDetalhe de cursoRetorna detalhe COMPLETO de um curso: descrição, módulos/programa, professores, preço, parcelamento, duração, certificação (DRT?), próxima turma, vagas (mescladas com matrículas reais), depoimentos, FAQ específico. Use list_courses pra descobrir o slug.
check_availabilityVagas restantes em um cursoCheca vagas restantes na PRÓXIMA turma de um curso. Mescla matrículas reais no Supabase com a curva de marketing (computeEffectiveSlots) e nunca mostra mais vagas do que realmente existem. Se soldOut=true, oriente o usuário a entrar na lista de espera pelo WhatsApp da secretaria.
list_upcoming_classesPróximas turmasLista turmas com data_inicio futura (a partir de hoje), ordenadas por data crescente. Use isso pra responder 'que cursos têm turma marcada?' ou 'qual a próxima turma de X?'. Pra vagas em tempo real, use check_availability.
list_teachersListar professoresLista todos os professores ATIVOS da escola, com nome, função e descrição curta.
get_teacherDetalhe de professorDetalhe de um professor: bio completa, foto e lista dos cursos que ele leciona atualmente.
list_podcast_seriesListar séries de podcastLista todas as séries de podcast da ER+ com contagem de episódios, host e links externos (Spotify, YouTube, Apple Podcasts).
list_podcast_episodesListar episódios de podcastLista episódios publicados, ordenados do mais novo pro mais antigo. Opcionalmente filtra por série (parâmetro podcast_slug).
get_podcast_episodeDetalhe de episódioDetalhe completo de um episódio: áudio (URL .mp3), excerpt, convidados, tópicos, links citados e transcrição (quando disponível).
list_blog_postsListar posts do blogLista posts publicados do blog editorial da ER+. Opcionalmente filtra por categoria.
get_blog_postDetalhe de post (markdown)Detalhe completo de um post do blog incluindo o corpo em markdown (convertido do PortableText do Sanity). Útil pra LLMs lerem o conteúdo na íntegra.
searchBuscar conteúdo (cursos, posts, episódios)Busca textual cross-content: cursos, posts do blog e episódios de podcast. Retorna até `limit` resultados de cada tipo.
⚠️ O que este servidor NÃO faz
- Não recebe matrículas (pra isso, página do curso ou WhatsApp da secretaria).
- Não acessa dados de alunos, pagamentos ou qualquer PII.
- Não muta dados (read-only).
- Não exige autenticação — qualquer agente pode chamar.
- Não usa SSE — single-response JSON por requisição.
🛤️ Roadmap
- Tools de pré-cadastro (write) — sob auth via token gerado na ficha do aluno.
- Resources MCP: llms.txt, sitemap, OG images.
- Prompts pré-definidos pra agentes (ex: "explique a diferença entre profissionalizante e EAD").