Server definition
- Hash
- sha256:904ab3216a7405f968c99a7869f686bea74fa7d6cfdf5113b6d07b2208c2531c
- What it is
- What a remote MCP server returned when asked what it offers: 15 tools
The blob, as servednamed by its sha256
{
"instructions": "Você está conectado ao servidor MCP público da Escola de Rádio TV & Web (ER+), escola brasileira de locução, comunicação, rádio, TV, podcast e produção, em atividade desde 1994 no Rio de Janeiro.\n\nUse estas ferramentas pra responder perguntas sobre cursos, turmas, vagas, preços, professores, podcasts e conteúdo editorial. Todas as ferramentas são READ-ONLY — não há mutação, matrícula nem pagamento via MCP.\n\nQuando o usuário quiser se matricular ou tirar dúvida específica sobre pagamento, oriente: WhatsApp da secretaria (21) 99117-7784 (wa.me/5521991177784) ou e-mail [email protected].\n\nPadrão de slugs: cursos seguem kebab-case (ex: \"locucao-profissionalizante\", \"narracao-esportiva\", \"podcast-express\"). Liste primeiro com list_courses se não souber o slug.\n\nVagas: o resultado de check_availability mescla número real (matrículas reais no Supabase) com 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.",
"tools": [
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Slug do curso. Ex: 'narracao-esportiva'.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "check_availability",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Slug do post.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_blog_post",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Slug do curso (kebab-case). Ex: 'locucao-profissionalizante', 'narracao-esportiva', 'podcast-express'.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_course",
"outputSchema": null
},
{
"description": "Detalhe completo de um episódio: áudio (URL .mp3), excerpt, convidados, tópicos, links citados e transcrição (quando disponível).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"episode_slug": {
"description": "Slug do episódio.",
"type": "string"
},
"podcast_slug": {
"description": "Slug da série.",
"type": "string"
}
},
"required": [
"podcast_slug",
"episode_slug"
],
"type": "object"
},
"name": "get_podcast_episode",
"outputSchema": null
},
{
"description": "Detalhe de um professor: bio completa, foto e lista dos cursos que ele leciona atualmente.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Slug do professor. Ex: 'ruy-jobim'.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_teacher",
"outputSchema": null
},
{
"description": "Lista posts publicados do blog editorial da ER+. Opcionalmente filtra por categoria.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category_slug": {
"description": "Slug da categoria (opcional).",
"type": "string"
},
"limit": {
"description": "Máximo de posts (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_blog_posts",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"modalidade": {
"description": "Filtra por modalidade (opcional).",
"enum": [
"profissionalizante",
"livre",
"ead"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_courses",
"outputSchema": null
},
{
"description": "Lista episódios publicados, ordenados do mais novo pro mais antigo. Opcionalmente filtra por série (parâmetro podcast_slug).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Máximo de episódios (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"podcast_slug": {
"description": "Slug da série (opcional). Ex: 'tom-em-tom'.",
"type": "string"
}
},
"type": "object"
},
"name": "list_podcast_episodes",
"outputSchema": null
},
{
"description": "Lista todas as séries de podcast da ER+ com contagem de episódios, host e links externos (Spotify, YouTube, Apple Podcasts).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_podcast_series",
"outputSchema": null
},
{
"description": "Lista serviços oferecidos pela ER+ ALÉM dos cursos regulares: 'demo' (gravação de demo profissional com Ruy, R$ 350), 'mentoria' (mentoria 1:1 com Ruy, R$ 250/h), 'b2b' (treinamentos corporativos pra empresas). Use quando aluno perguntar sobre demo, mentoria, treinamento empresarial. Pra cursos regulares, use list_courses.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"type": {
"description": "Filtra por tipo de serviço (opcional, default 'all').",
"enum": [
"demo",
"mentoria",
"b2b",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_services",
"outputSchema": null
},
{
"description": "Lista todos os professores ATIVOS da escola, com nome, função e descrição curta.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_teachers",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Máximo de turmas a retornar (default 20).",
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_upcoming_classes",
"outputSchema": null
},
{
"description": "Retorna o que está tocando AGORA na Rádio Escola de Rádio (rádio web 24h da escola): música atual, próxima, ouvintes conectados, link do stream e como ouvir. Use quando perguntarem sobre a rádio da escola, o que está no ar, ou como escutar.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "radio_now_playing",
"outputSchema": null
},
{
"description": "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 é.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "school_info",
"outputSchema": null
},
{
"description": "Busca textual cross-content: cursos, posts do blog e episódios de podcast. Retorna até `limit` resultados de cada tipo.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Resultados por categoria (default 10).",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Termo de busca.",
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "search",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:904ab3216a7405f968c99a7869f686bea74fa7d6cfdf5113b6d07b2208c2531c | sha256sum