Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,541Letters: 14Defects: 1,323counted 2 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:904ab3216a7405f968c99a7869f686bea74fa7d6cfdf5113b6d07b2208c2531c | sha256sum