MCP server for interacting with the Scryfall MTG API
Grade is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Public TV and radio catalogue with measured stream health, folders and M3U feeds for VLC.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http grade-mcp https://gradetv.net/mcp
# 2 — ask your agent for something these tools do
# list_programacao, get_programacao, get_programacao_dia and 42 more
Grade costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http grade-mcp https://gradetv.net/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
45 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Canais com programação coletada, até 48 por página.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | Busca no nome do canal em todo o acervo; até 80 caracteres. |
| depois | string | no | ID exclusivo da última linha; use proximo. |
Última programação disponível do canal e até 20 datas do histórico.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Slug persistido do canal, vindo da coleção. |
| antes | string | no | Dia exclusivo para paginar os dias anteriores; use guia.proximo. |
Programação preservada de um canal em um dia específico.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Slug persistido do canal, vindo da coleção. |
| dia | string | yes | Dia da coleta, YYYY-MM-DD. |
| antes | string | no | Dia exclusivo para paginar os dias anteriores; use guia.proximo. |
Índice auto-descrito da API inteira, com os idiomas e as páginas HTML de cada um.
No parameter schema on file.
Liveness e o commit publicado agora — é como o smoke espera o próprio deploy.
No parameter schema on file.
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.
No parameter schema on file.
Países do catálogo com contagem playable e URL da bandeira (kind=radio conta estações).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | tv (padrão) conta canais de TV; radio conta estações de rádio; all junta os dois. |
Tags das estações de rádio tocáveis, com contagem; opcionalmente por país.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | Restringe às estações de um país, ISO 3166-1 alpha-2. |
| limit | string | no | Quantas tags devolver (teto 100). |
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 `so
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | Texto livre no nome e nos apelidos do canal (busca full-text). |
| country | string | no | País do canal, ISO 3166-1 alpha-2. |
| category | string | no | ID de categoria do catálogo. |
| language | string | no | Idioma do canal, ISO 639-3. |
| network | string | no | Nome exato da rede/emissora. |
| quality | string | no | Qualidade exata do stream. |
| guide | string | no | 1 traz só canal com grade de programação (EPG). |
| subdivision | string | no | Estado/província, código do catálogo. |
| city | string | no | Cidade, código do catálogo. |
| playable | string | no | 0 inclui canal sem stream utilizável conhecido. |
| sort | string | no | score ordena pela saúde medida por terceiro, melhor primeiro; canal não medido vai para o fim. votes ordena pelos votos registrados para a estação (rádio). name é a ordem alfabética. |
| online | string | no | 1 traz só canal visto online pela fonte nas 48 h anteriores à última recarga do catálogo (health_ext.online); com o catálogo parado há mais de 48 h o filtro não devolve ninguém. |
| kind | string | no | tv (padrão) é o catálogo de TV; radio são as estações de rádio; all junta os dois. Sem kind, rádio nunca aparece. |
| tag | string | no | Tag da estação de rádio (vocabulário livre, ex. mpb, news); veja GET /api/tags. |
Idiomas que têm canal tocável, com a contagem de cada um.
No parameter schema on file.
Redes e emissoras que têm canal tocável, com a contagem.
No parameter schema on file.
Qualidades distintas encontradas nos streams do catálogo (em rádio, codec e bitrate).
No parameter schema on file.
Estados e províncias que têm canal tocável.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | Restringe a um país, ISO 3166-1 alpha-2. |
Cidades que têm canal tocável, filtráveis por país e por estado.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | Restringe a um país, ISO 3166-1 alpha-2. |
| subdivision | string | no | Restringe a um estado/província. |
Ficha completa de um canal, com os streams já apontando para o nosso hop.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do canal no catálogo, ex. GloboNews.br. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do canal no catálogo. |
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.
No parameter schema on file.
A galeria inteira do dono: pastas, sub-abas, canais e as URLs de feed de cada nível.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Nome da pasta, até 40 caracteres. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category_id | string | yes | Pasta que vai receber a sub-aba, cat_…. |
| name | string | yes | Nome da sub-aba, até 40 caracteres. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group_id | string | yes | Sub-aba que recebe o canal, grp_…. |
| channel_id | string | yes | ID do canal no catálogo, ex. GloboNews.br. |
Histórico de canais assistidos pelo dono. Exibe somente canais disponíveis no catálogo.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | string | no | Itens por página. Acima de 50 é silenciosamente reduzido a 50. |
| offset | string | no | Quantos itens pular. Use next_offset da resposta anterior. |
Registra um canal assistido no histórico do dono.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | Canal assistido, ex. GloboNews.br. |
Tira um canal do histórico do dono.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | Canal a remover do histórico, ex. GloboNews.br. |
Limpa o histórico inteiro do dono, de uma vez.
No parameter schema on file.
Consulta a ativação da rede da TV pelo código de seis dígitos.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| codigo | string | yes | Seis dígitos exibidos no aviso da TV; validade de dez minutos. |
Compra o passe da rede da TV: 30 dias por 0,10 USDC, 90 por 0,29 ou 365 por 0,99 (plano); 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| codigo | string | yes | Seis dígitos exibidos no aviso da TV; validade de dez minutos. |
| plano | string | no | O prazo do passe; sem ele, 30 dias. |
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/legacy?stream=ID, sem porta no endereço. A página isolada aceita lang=pt/en/es/fr/de/hu 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;
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID público do stream, incluindo compatibilidade de IDs antigos. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lang | string | no | Idioma da oferta: pt, en, es, fr, de ou hu; ausente ou desconhecido volta a pt. |
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. O primeiro relato desse resultado no dia devolve 201. Conta até uma vez por dono, canal, dia e resultado. Repetir devolve 200 com reason: ja_relatado_hoje. Navegador e sistema vêm do User-Agent. O país vem dos dados do pedido. Esses campos não podem ser alterados pelo corpo. Os relatos
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | Canal que você tentou assistir. |
| ok | boolean | yes | true se tocou, false se falhou. |
| code | string | no | Código da falha; só quando ok é false. Código ausente ou desconhecido entra como outro. |
Relatos crus de um canal, com endereço — só operador (METRICS_TOKEN). Use para investigar um canal específico. Nos relatos atuais, o campo ip contém um identificador calculado a partir da rede e de um valor secreto. O prazo de retenção está em retention_days. O painel público não devolve esse identificador.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | no | Restringe a um canal. |
| ok | string | no | 0 traz só as falhas — é o recorte que interessa numa investigação. |
| limit | string | no | Itens por página. Acima de 50 é silenciosamente reduzido a 50. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do canal no catálogo. |
Favoritos do dono. Exibe somente canais disponíveis no catálogo.
No parameter schema on file.
Favorita um canal. Repetir não soma: o contador público conta pessoas, não cliques.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | Canal a favoritar, ex. GloboNews.br. |
Desfavorita o canal e devolve o ponto ao contador público.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | Canal a desfavoritar, ex. GloboNews.br. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do canal no catálogo. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do canal no catálogo. |
| body | string | yes | O texto do comentário; o teto vem em max_length da listagem. |
| author | string | no | Apelido a usar; sem ele o servidor gera um estável. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | ID do comentário, vindo de Comentario.id. |
Últimas mensagens da sala de um canal (sem WebSocket).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | ID do canal no catálogo. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| channel_id | string | yes | ID do canal no catálogo. |
| body | string | yes | O texto da mensagem, dentro de max_length. |
| author | string | no | Apelido a usar; sem ele o servidor gera um estável. |
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 com
No parameter schema on file.
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.
No parameter schema on file.
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.
No parameter schema on file.
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 an
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Como chamar quem escreve (alias nome). |
| string | yes | Para onde responder. | |
| message | string | yes | O que você quer dizer (alias mensagem). |
| tipo | string | no | Proposta: patrocinio, parceria ou anuncio. Liga os campos abaixo. |
| empresa | string | no | Quem propõe, quando é empresa. |
| site | string | no | Site de quem propõe. |
| orcamento | string | no | ate_100, 100_500, 500_2000, 2000_mais ou a_combinar. |
| espaco | array | no | Ids de placement de GET /api/partners, até 6. |
| duracao | string | no | Dias de exposição: 30, 90 ou 365. |
| pagamento | string | no | usdc, deposito ou a_combinar. |
Current public prices and free allowances; no charge.
No parameter schema on file.
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Grade or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Grade can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.