GradeTV

net.gradetv/grade

Public TV and radio catalogue with measured stream health, folders and M3U feeds for VLC.

Yes, your AI can use this right now.Answered a live MCP handshake in 739 ms with no sign-in needed and exposes 41 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://gradetv.net/mcp

41 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
list_programacaoread-only

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

get_programacaoread-only

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

get_programacao_diaread-only

The stored TV guide of a channel on one day.

api_indexread-only

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

healthread-only

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

georead-only

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_countriesread-only

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

list_tagsread-only

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

search_channelsread-only

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; online=1 returns only channels seen online in the last 48 h). This is the main entry point of the product. The response changes with the browser, the system and

list_languagesread-only

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

list_networksread-only

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

list_qualitiesread-only

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

list_subdivisionsread-only

The states and provinces that have a playable channel.

list_citiesread-only

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

get_channelread-only

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

get_channel_guideread-only

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 `guide_now`.

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_libraryread-only

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 /api/library`.

get_historyread-only

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_watchcan modify

Removes a channel from the owner's history.

clear_historycan modify

Clears the whole history of the owner at once.

tv_stateread-only

Checks the activation of the TV network by the six-digit code.

legacy_streamread-only

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 page accepts lang=pt/en/es/fr/de/hu and theme=light/dark. Playlists go through the HTTPS hop, and the media comes directly from the origin. It does not remove an

producer_servicesread-only

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 e-mail, or POST /api/contact.

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 returns 201. It counts once per owner, channel, day and result; a repeat returns 200 with `reason: ja_relatado_hoje`. The reports help to compare results in `GET /

play_reportsread-only

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 period is in `retention_days`. The public panel does not return this identifier.

channel_healthread-only

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 restriction or a general failure (with the countries), `regions[]` has the success and the failure by country, `latency[]` has the opening speed measured at the hop by coun

list_favoritesread-only

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_favoritecan modify

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

list_commentsread-only

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_commentcan modify

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_historyread-only

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.

meread-only

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 message every 10 seconds per network: one that arrives sooner waits its turn and then goes out — no error. The message reaches the team by e-mail, with `email` as t

Alternatives in Health & Science

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”