
Official MCP RegistryListed
net.gradetv/grade
Public TV and radio catalogue with measured stream health, folders and M3U feeds for VLC.
First seen 2 Oct 2026. Evidence as of 7 Oct 2026.
45
Tools
From an anonymous probe
1
Source listings
Each with its own history
5
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| add_favorite | Favorita um canal. Repetir não soma: o contador público conta pessoas, não cliques. | Changes data |
| add_item | Adiciona canal à sub-aba. Teto de 40 canais por sub-aba. A resposta diz em que pasta e sub-aba o canal caiu, para a tela abrir no lugar certo. A resposta traz a biblioteca inteira já atualizada — não precisa recarregar `GET /api/library` depois. | Changes data |
| api_index | Índice auto-descrito da API inteira, com os idiomas e as páginas HTML de cada um. | Read-only |
| billing | Preços e tetos. É o número EM VIGOR: leia daqui antes de gastar chamada, em vez de assumir o preço da documentação. Com credencial, também diz se o passe de chat de quem fala no chat (o convidado; sem ele, a conta) está ativo. `prices.abuso_24h_usd` é o preço da porta de UA vazio/curl, hoje desligada. | Read-only |
| channel_health | Saúde comunitária do canal: taxa de sucesso, motivos de falha e ambientes afetados. É o que separa 'o canal está fora do ar' de 'o canal está bloqueado no seu país'. `geo` diz se é restrição regional ou falha geral (com os países), `regions[]` traz sucesso/falha por país, `latency[]` a velocidade de abertura medida no hop por país, e `pra_voce` resume tudo para o país de quem chama. Sem relato da comunidade (`POST /api/play-report`) o painel fica vazio. | Read-only |
| chat_history | Últimas mensagens da sala de um canal (sem WebSocket). | Read-only |
| chat_pass | Passe mensal do chat ($0.10 / 30 dias) do convidado que fala no chat. Sem pagamento → 402. Passe já válido devolve 200 sem cobrar de novo — dá para chamar antes de escrever, sem risco de pagar duas vezes. O passe é de quem fala no chat: o convidado de `X-Guest-Token` (é ele que o WebSocket reconhece no `hello`); sem convidado, a sessão da conta, que fala só por HTTP. Fica no registro global de compras (`direito`). | Changes data |
| chat_send | Manda mensagem na sala de um canal por HTTP. Ler é grátis; escrever custa $0.10 por 30 dias. Sem passe válido a resposta é 402 com `accepts[]` — pague e repita a mesma chamada. Quem fala é o convidado (`X-Guest-Token`), o mesmo que o WebSocket reconhece; sem convidado, a sessão da conta. | Changes data |
| clear_history | Limpa o histórico inteiro do dono, de uma vez. | Destructive |
| contact | Fale com quem faz o produto: dúvida, ou proposta de patrocínio/parceria/anúncio. Grátis, sem captcha nem pagamento; uma mensagem a cada 10 s por rede (a que chega antes espera a vez). Uma rota para dúvida e para proposta de patrocínio, parceria ou anúncio (`tipo`, com os espaços de `GET /api/partners`). Sem captcha, sem conta, sem pagamento. Uma mensagem a cada 10 segundos por rede: a que chega antes espera a vez e sai — sem erro. A mensagem chega à equipe por e-mail, com o `email` como endereço de resposta. | Changes data |
| create_category | Cria tab/categoria pessoal. Teto de 8 pastas por dono. A resposta traz a biblioteca inteira já atualizada — não precisa recarregar `GET /api/library` depois. | Changes data |
| create_group | Cria sub-aba numa categoria. Teto de 12 sub-abas por pasta. A resposta traz a biblioteca inteira já atualizada — não precisa recarregar `GET /api/library` depois. | Changes data |
| create_guest | Cria guest ipt_… Não pede e-mail nem nada. Guarde o token: perdeu o token, perdeu a biblioteca — a não ser que a conta já o tenha reivindicado (`POST /api/auth/claim`), e aí o que ele guardou está na conta. | Changes data |
| delete_comment | Apaga um comentário do próprio dono. O 404 é de propósito: a API não confirma que existe um comentário com aquele id se ele não é seu. | Destructive |
| forget_watch | Tira um canal do histórico do dono. | Destructive |
| geo | País e idioma sugeridos para quem está chamando. Sem país detectado pela borda, sugere BR com `source: "fallback"`; `detected` diz o que a borda viu. | Read-only |
| get_channel | Ficha completa de um canal, com os streams já apontando para o nosso hop. | Read-only |
| get_channel_guide | Programação de hoje do canal (grabada por nós): agora, a seguir e a lista. Disponível nos canais com guia (`guide=1`), com validade de até dois dias. Confira a data da resposta; a ficha traz o resumo em `guide_now`. | Read-only |
| get_history | Histórico de canais assistidos pelo dono. Exibe somente canais disponíveis no catálogo. | Read-only |
| get_library | A galeria inteira do dono: pastas, sub-abas, canais e as URLs de feed de cada nível. | Read-only |
| get_programacao | Última programação disponível do canal e até 20 datas do histórico. | Read-only |
| get_programacao_dia | Programação preservada de um canal em um dia específico. | Read-only |
| health | Liveness e o commit publicado agora — é como o smoke espera o próprio deploy. | Read-only |
| legacy_stream | Metadados públicos: site oficial do canal, URL da transmissão para copiar em outro player e player legado HTTP. O botão legacy_url abre http://legacy.gradetv.net:8080/legacy?stream=ID. A página isolada aceita lang=pt/en/es/fr/de e theme=light/dark. Playlists continuam pelo hop HTTPS e mídia direto da origem. Não remove recusa de acesso nem exigência CORS. Uma leitura indexada; não busca origem nem grava no D1. | Read-only |
| list_cities | Cidades que têm canal tocável, filtráveis por país e por estado. | Read-only |
| list_comments | Comentários da comunidade sobre um canal. Com credencial na chamada, cada comentário seu vem com `mine: true` — é assim que a interface sabe o que dá para apagar. | Read-only |
| list_countries | Países do catálogo com contagem playable e URL da bandeira (kind=radio conta estações). | Read-only |
| list_favorites | Favoritos do dono. Exibe somente canais disponíveis no catálogo. | Read-only |
| list_languages | Idiomas que têm canal tocável, com a contagem de cada um. | Read-only |
| list_networks | Redes e emissoras que têm canal tocável, com a contagem. | Read-only |
| list_programacao | Canais com programação coletada, até 48 por página. | Read-only |
| list_qualities | Qualidades distintas encontradas nos streams do catálogo (em rádio, codec e bitrate). | Read-only |
| list_subdivisions | Estados e províncias que têm canal tocável. | Read-only |
| list_tags | Tags das estações de rádio tocáveis, com contagem; opcionalmente por país. | Read-only |
| me | Conta da sessão (cookie repassado pelo cliente MCP): e-mail e tamanho da biblioteca da conta. A conta é a da biblioteca de conta; `user.id` é o id da conta, e é ele o dono da galeria com sessão. | Read-only |
| play_reports | Relatos crus de um canal, com endereço — só operador (METRICS_TOKEN). Use para investigar um canal específico. Existe separado do painel público justamente porque traz endereço. A linha some depois do prazo em `retention_days`, e `/api/channels/:id/health` nunca devolve IP. | Read-only |
| post_comment | Comenta num canal (teto de 20/hora por dono). Sem `author`, o apelido é gerado e fica estável para o mesmo dono — a pessoa não vira um nome diferente a cada mensagem. | Changes data |
| pricing | Current public prices and free allowances; no charge. | Read-only |
| producer_services | Oferta de transmissão autorizada sob consulta: informações e contatos para produtores. Não ativa streams. Somente informações e captação de interesse. Não provisiona, não cobra e não ativa transmissão. Use contact.form_url no browser, contact.email por e-mail ou POST /api/contact para apresentar o projeto. O envio é livre — sem captcha nem pagamento —, uma mensagem a cada 10 s por rede. | Read-only |
| record_watch | Registra um canal assistido no histórico do dono. | Changes data |
| remove_favorite | Desfavorita o canal e devolve o ponto ao contador público. | Destructive |
| report_play | Relata se um canal tocou (ok=true) ou não (ok=false + code). Navegador, SO e país saem do pedido, não do corpo. Conta uma vez por dono, por canal, por dia e por resultado; relatar de novo devolve 200 com `reason: ja_relatado_hoje`, e não é erro. Navegador e sistema saem do User-Agent e o país da borda — mandar isso no corpo não muda nada. Sem relato, o catálogo não aprende: é assim que `GET /api/channels/:id/health` sabe distinguir canal fora do ar de canal bloqueado para você. | Changes data |
| search_channels | Busca canais públicos (filtros: q, country, category, language, network, quality, playable; kind=radio para estações de rádio, tag para tag de rádio; sort=score ordena pela saúde medida por terceiro, sort=votes pelos votos da rádio; online=1 só quem foi visto online nas últimas 48 h). É a porta de entrada do produto. A resposta varia por navegador, sistema e país de quem pede — cada canal traz `social.your_fails`, o recorte do SEU ambiente — por isso ela é `Cache-Control: private`. | Read-only |
| tv_pass | Compra 30 dias para a rede da TV por 4,99 USDC; 402 x402, repetir com X-PAYMENT. Sem renovação automática. Responde 402 x402 na Base; repita a mesma chamada com X-PAYMENT. Usa o pagamento global e registra tentativa, liquidação e direito. Pagamento no celular libera a rede identificada pelo código. Repetir o comprovante não compra outro passe. | Changes data |
| tv_state | Consulta a ativação da rede da TV pelo código de seis dígitos. | Read-only |
Change history
- list_programacao: tool added
- get_programacao_dia: tool added
- get_programacao: tool added
- tv_state: tool added
- tv_pass: tool added
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | net.gradetv/grade | 2 Oct 2026 | 7 Oct 2026 | 1 |