Pular para o conteúdo
ER+ Escola de Rádio TV & Web

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/mcp

Transport

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 escola

Retorna 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 cursos

Lista 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 curso

Retorna 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 curso

Checa 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 turmas

Lista 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 professores

Lista todos os professores ATIVOS da escola, com nome, função e descrição curta.

get_teacherDetalhe de professor

Detalhe de um professor: bio completa, foto e lista dos cursos que ele leciona atualmente.

list_podcast_seriesListar séries de podcast

Lista 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 podcast

Lista episódios publicados, ordenados do mais novo pro mais antigo. Opcionalmente filtra por série (parâmetro podcast_slug).

get_podcast_episodeDetalhe de episódio

Detalhe 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 blog

Lista 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").