Skip to content
Grade logo

Grade MCP server

Which MCP servers are Grade's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-26

← Back to Grade

Whose server it is
  • Registry namenet.gradetv/gradeverified in the MCP registry

The registry name sits under gradetv.net. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-26
  • Stateanswerschecked 2026-10-26
  • Tools41
  • Server calls itselfGradeTV
  • Server version6458eaa1
  • Protocol version2025-06-18

On 2026-10-26 the server answered initialize and tools/list without a sign-in. First answer in 184 ms.

Should an agent connect itConnect it, with care
  • Its tools do every use case we checked: find live TV and radio channels by language and country; save favourite channels and review viewing history.

Once connected

  • For "find live TV and radio channels by language and country", the likely first call is search_channels.
  • Keep approval on for chat_send: they delete, send or pay without saying so.
  • create_guest, create_category, create_group, add_item, add_favorite change data without a sign-in: anyone with the address can call them.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 8, the first on 2026-10-26
  • INITE MCP score67 of 100answers 100 · does the job 100 · definitions 100 · context 81 · connects 100 · lowered by the warning signs below
  • What an agent can do with it2 of 2 use cases
  • Answered100% of days8 of 8 daily checks
  • Median first answer551 ms
  • Space in an agent's context≈ 6,092 tokensthe definitions of all its tools (47), which an agent carries on every turn
  • Tool definitionsA · 100 of 100
  • Typed results0 of 47 toolsdeclared outputSchema: results come typed, read once
  • Every tool passes all six checks.

What an agent can do with it

  • can do · find live TV and radio channels by language and country
  • not sure · watch free live channels without creating an account
  • can do · save favourite channels and review viewing history

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that delete, send or pay, marked as not destructive: chat_send
  • Tools that change data, on a server that answers without a sign-in: create_guest, create_category, create_group, add_item, add_favorite

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers41 tools · read 2026-10-26
  • list_programacao

    Channels with a collected TV guide, up to 48 per page.

  • get_programacao

    The last TV guide available for the channel and up to 20 dates of its history.

  • get_programacao_dia

    The stored TV guide of a channel on one day.

  • api_index

    The index of the whole API, with the languages and the HTML pages of each language.

  • health

    Liveness and the commit that is published now. The smoke test waits for its own deploy here.

  • geo

    The country and the language suggested for the caller. When the edge detects no country, it suggests BR with `source: "fallback"`; `detected` tells what the edge saw.

  • list_countries

    The countries in the catalog, with the playable count and the flag URL (`kind=radio` counts stations).

  • list_tags

    The tags of the playable radio stations, with the count, optionally by country.

  • search_channels

    Searches public channels (filters: q, country, category, language, network, quality, playable; kind=radio for radio stations, tag for a radio tag; sort=score orders by the health that a third party measures, sort=votes by the radio votes…

  • list_languages

    The languages that have a playable channel, with the count of each language.

  • list_networks

    The networks and broadcasters that have a playable channel, with the count.

  • list_qualities

    The different qualities found in the catalog streams (for radio, the codec and the bitrate).

  • list_subdivisions

    The states and provinces that have a playable channel.

  • list_cities

    The cities that have a playable channel. You can filter them by country and by state.

  • get_channel

    The full record of a channel, with the streams that already point to our hop.

  • get_channel_guide

    Today's TV guide of the channel (recorded by us): now, next and the list. It is available for the channels with a guide (`guide=1`) and is valid for up to two days. Check the date of the response; the channel record has the summary in…

  • create_guest

    Creates a guest `ipt_…`. It asks for no e-mail and no other data. Keep the token: if you lose the token, you lose the library, unless an account already claimed it (`POST /api/auth/claim`). Then the account keeps what the token saved.

  • get_library

    The whole library of the owner: folders, tabs, channels and the feed URLs of each level.

  • create_category

    Creates a personal folder (category). 8 folders at most per owner. The response has the whole updated library, so you do not need to reload `GET /api/library`.

  • create_group

    Creates a tab in a folder. 12 tabs at most per folder. The response has the whole updated library, so you do not need to reload `GET /api/library`.

  • add_item

    Adds a channel to a tab. 40 channels at most per tab. The response tells the folder and the tab where the channel went, so the screen opens in the right place. The response has the whole updated library, so you do not need to reload `GET…

  • get_history

    The channels that the owner watched. It shows only the channels that are available in the catalog.

  • record_watch

    Records a watched channel in the owner's history.

  • forget_watch

    Removes a channel from the owner's history.

  • clear_history

    Clears the whole history of the owner at once.

  • tv_state

    Checks the TV device's activation by its six-digit code. The network is the fallback for clients without a playback cookie or UUID.

  • legacy_stream

    Public metadata: the official site of the channel, the stream URL to copy into another player, and the legacy HTTP player. The legacy_url button opens http://legacy.gradetv.net/legacy?stream=ID, with no port in the address. The standalone…

  • producer_services

    Authorized broadcast offer on request: information and contacts for producers. It does not turn on streams; it only gives information and collects interest. To present a project, use contact.form_url in the browser, contact.email by…

  • report_play

    Reports whether a channel played (ok=true) or not (ok=false with code). The browser and the system come from the User-Agent, and the country comes from the request data; the body cannot change them. The first report of a result on a day…

  • play_reports

    The raw reports of a channel, with the address. Operator only (METRICS_TOKEN). Use it to investigate one channel. In the current reports, the `ip` field has an identifier calculated from the network and a secret value. The retention…

  • channel_health

    The community health of the channel: the success rate, the failure reasons and the affected environments. It tells 'the channel is off the air' from 'the channel is blocked in your country'. `geo` tells whether it is a regional…

  • list_favorites

    The favorites of the owner. It shows only the channels that are available in the catalog.

  • add_favorite

    Marks a channel as a favorite. A repeat does not add up: the public counter counts people, not clicks.

  • remove_favorite

    Removes the channel from the favorites and gives the point back to the public counter.

  • list_comments

    The community comments about a channel. When the call has a credential, each of your comments has `mine: true`; this is how the interface knows what you can delete.

  • post_comment

    Comments on a channel (20 per hour at most per owner). Without `author`, the server makes a nickname that stays the same for the same owner, so the person does not get a different name for each message.

  • delete_comment

    Deletes a comment of the owner. The 404 is on purpose: the API does not confirm that a comment with that id exists when it is not yours.

  • chat_history

    The last messages in the room of a channel (without WebSocket).

  • chat_send

    Sends a message to the room of a channel by HTTP. The speaker is the guest (`X-Guest-Token`), the same one that the WebSocket recognizes; without a guest, the account session.

  • me

    The session account (the cookie that the MCP client passes on): the e-mail and the size of the account library. `user.id` is the account id, and the account owns the library when there is a session.

  • contact

    Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). One…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "grade": {
      "type": "http",
      "url": "https://gradetv.net/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http gradetv https://gradetv.net/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://gradetv.net/mcp as a custom connector in the settings.

OpenAPI spec

120 paths, read 2026-10-26. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.