Skip to content
Back to GradeTV

Card snapshot

gradetv.net · 2026-10-15 05:13:12 UTC · 028175f5d7f1ef5eeb6262f40325171783c53a91b6c797ef994882f813672494

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "Grade",
  "description": "Consulte a programa\u00e7\u00e3o de TV. Encontre r\u00e1dios ao vivo. Guarde seus canais favoritos.",
  "url": "https://gradetv.net",
  "provider": {
    "organization": "Grade",
    "url": "https://gradetv.net",
    "email": "contato@gradetv.net"
  },
  "documentationUrl": "https://gradetv.net/llms.txt",
  "protocol": "mcp",
  "protocolUrl": "https://modelcontextprotocol.io",
  "interfaces": [
    {
      "transport": "streamable-http",
      "url": "https://gradetv.net/mcp"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "authentication": "none"
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/markdown"
  ],
  "skills": [
    {
      "id": "list_programacao",
      "name": "list_programacao",
      "description": "Canais com programa\u00e7\u00e3o coletada, at\u00e9 48 por p\u00e1gina.",
      "endpoint": "GET /api/programacao"
    },
    {
      "id": "get_programacao",
      "name": "get_programacao",
      "description": "\u00daltima programa\u00e7\u00e3o dispon\u00edvel do canal e at\u00e9 20 datas do hist\u00f3rico.",
      "endpoint": "GET /api/programacao/:slug"
    },
    {
      "id": "get_programacao_dia",
      "name": "get_programacao_dia",
      "description": "Programa\u00e7\u00e3o preservada de um canal em um dia espec\u00edfico.",
      "endpoint": "GET /api/programacao/:slug/:dia"
    },
    {
      "id": "api_index",
      "name": "api_index",
      "description": "\u00cdndice auto-descrito da API inteira, com os idiomas e as p\u00e1ginas HTML de cada um.",
      "endpoint": "GET /api/"
    },
    {
      "id": "health",
      "name": "health",
      "description": "Liveness e o commit publicado agora \u2014 \u00e9 como o smoke espera o pr\u00f3prio deploy.",
      "endpoint": "GET /api/health"
    },
    {
      "id": "geo",
      "name": "geo",
      "description": "Pa\u00eds e idioma sugeridos para quem est\u00e1 chamando. Sem pa\u00eds detectado pela borda, sugere BR com `source: \"fallback\"`; `detected` diz o que a borda viu.",
      "endpoint": "GET /api/geo"
    },
    {
      "id": "list_countries",
      "name": "list_countries",
      "description": "Pa\u00edses do cat\u00e1logo com contagem playable e URL da bandeira (kind=radio conta esta\u00e7\u00f5es).",
      "endpoint": "GET /api/countries"
    },
    {
      "id": "list_tags",
      "name": "list_tags",
      "description": "Tags das esta\u00e7\u00f5es de r\u00e1dio toc\u00e1veis, com contagem; opcionalmente por pa\u00eds.",
      "endpoint": "GET /api/tags"
    },
    {
      "id": "search_channels",
      "name": "search_channels",
      "description": "Busca canais p\u00fablicos (filtros: q, country, category, language, network, quality, playable; kind=radio para esta\u00e7\u00f5es de r\u00e1dio, tag para tag de r\u00e1dio; sort=score ordena pela sa\u00fade medida por terceiro, sort=votes pelos votos da r\u00e1dio; online=1 s\u00f3 quem foi visto online nas \u00faltimas 48 h). \u00c9 a porta de entrada do produto. A resposta varia por navegador, sistema e pa\u00eds de quem pede \u2014 cada canal traz `social.your_fails`, o recorte do SEU ambiente \u2014 por isso ela \u00e9 `Cache-Control: private`.",
      "endpoint": "GET /api/channels"
    },
    {
      "id": "list_languages",
      "name": "list_languages",
      "description": "Idiomas que t\u00eam canal toc\u00e1vel, com a contagem de cada um.",
      "endpoint": "GET /api/languages"
    },
    {
      "id": "list_networks",
      "name": "list_networks",
      "description": "Redes e emissoras que t\u00eam canal toc\u00e1vel, com a contagem.",
      "endpoint": "GET /api/networks"
    },
    {
      "id": "list_qualities",
      "name": "list_qualities",
      "description": "Qualidades distintas encontradas nos streams do cat\u00e1logo (em r\u00e1dio, codec e bitrate).",
      "endpoint": "GET /api/qualities"
    },
    {
      "id": "list_subdivisions",
      "name": "list_subdivisions",
      "description": "Estados e prov\u00edncias que t\u00eam canal toc\u00e1vel.",
      "endpoint": "GET /api/subdivisions"
    },
    {
      "id": "list_cities",
      "name": "list_cities",
      "description": "Cidades que t\u00eam canal toc\u00e1vel, filtr\u00e1veis por pa\u00eds e por estado.",
      "endpoint": "GET /api/cities"
    },
    {
      "id": "get_channel",
      "name": "get_channel",
      "description": "Ficha completa de um canal, com os streams j\u00e1 apontando para o nosso hop.",
      "endpoint": "GET /api/channels/:id"
    },
    {
      "id": "get_channel_guide",
      "name": "get_channel_guide",
      "description": "Programa\u00e7\u00e3o de hoje do canal (grabada por n\u00f3s): agora, a seguir e a lista. Dispon\u00edvel nos canais com guia (`guide=1`), com validade de at\u00e9 dois dias. Confira a data da resposta; a ficha traz o resumo em `guide_now`.",
      "endpoint": "GET /api/channels/:id/guia"
    },
    {
      "id": "create_guest",
      "name": "create_guest",
      "description": "Cria guest ipt_\u2026 N\u00e3o pede e-mail nem nada. Guarde o token: perdeu o token, perdeu a biblioteca \u2014 a n\u00e3o ser que a conta j\u00e1 o tenha reivindicado (`POST /api/auth/claim`), e a\u00ed o que ele guardou est\u00e1 na conta.",
      "endpoint": "POST /api/guest"
    },
    {
      "id": "get_library",
      "name": "get_library",
      "description": "A galeria inteira do dono: pastas, sub-abas, canais e as URLs de feed de cada n\u00edvel.",
      "endpoint": "GET /api/library"
    },
    {
      "id": "create_category",
      "name": "create_category",
      "description": "Cria tab/categoria pessoal. Teto de 8 pastas por dono. A resposta traz a biblioteca inteira j\u00e1 atualizada \u2014 n\u00e3o precisa recarregar `GET /api/library` depois.",
      "endpoint": "POST /api/categories"
    },
    {
      "id": "create_group",
      "name": "create_group",
      "description": "Cria sub-aba numa categoria. Teto de 12 sub-abas por pasta. A resposta traz a biblioteca inteira j\u00e1 atualizada \u2014 n\u00e3o precisa recarregar `GET /api/library` depois.",
      "endpoint": "POST /api/groups"
    },
    {
      "id": "add_item",
      "name": "add_item",
      "description": "Adiciona canal \u00e0 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\u00e1 atualizada \u2014 n\u00e3o precisa recarregar `GET /api/library` depois.",
      "endpoint": "POST /api/items"
    },
    {
      "id": "get_history",
      "name": "get_history",
      "description": "Hist\u00f3rico de canais assistidos pelo dono. Exibe somente canais dispon\u00edveis no cat\u00e1logo.",
      "endpoint": "GET /api/history"
    },
    {
      "id": "record_watch",
      "name": "record_watch",
      "description": "Registra um canal assistido no hist\u00f3rico do dono.",
      "endpoint": "POST /api/history"
    },
    {
      "id": "forget_watch",
      "name": "forget_watch",
      "description": "Tira um canal do hist\u00f3rico do dono.",
      "endpoint": "DELETE /api/history/:channel_id"
    }
  ],
  "discovery": {
    "openapi": "https://gradetv.net/openapi.json",
    "llms": "https://gradetv.net/llms.txt",
    "okf": "https://gradetv.net/okf/index.md",
    "numbers": "https://gradetv.net/api/vitrine",
    "partnerships": "https://gradetv.net/api/partners",
    "api_catalog": "https://gradetv.net/.well-known/api-catalog",
    "agent_access": "https://gradetv.net/.well-known/agent-access.json",
    "x402": "https://gradetv.net/.well-known/x402",
    "pricing": "https://gradetv.net/pricing",
    "docs": "https://gradetv.net/docs"
  },
  "updated": "2026-10-15"
}