GradeTV

net.gradetvPublished by gradetv.netOfficial publisherv1.0.1Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableMedia & Design

Overview

AI-generated overview

A remote MCP endpoint that gives an assistant access to a public TV and radio catalogue with stream health data, folders and M3U feeds.

What you can do
GradeTV exposes a public catalogue of TV and radio streams, described as including measured stream health, folders and M3U feeds intended for VLC. The manifest lists no tools, so the exact operations an assistant can call are not documented here. It runs as a remote streamable HTTP endpoint rather than a local package.
When to use it
Consider it when an assistant needs to look up publicly listed TV or radio channels, check reported stream health, or work with M3U playlists for a media player such as VLC. It is not aimed at private or paid streaming services.
Requirements
A remote streamable HTTP connection to the provider's endpoint; no packages, environment variables or headers are declared. The manifest declares no authentication, and network access to the endpoint is required.
Before you install
The manifest declares no authentication, so anything sent to the endpoint is not protected by a credential. No tools are listed, so what the assistant can read or change is unverified; confirm the catalogue is public and lawful to use in your region before relying on it.

Installation

In SourceWeft

  1. Open GradeTV in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/net.gradetv%2Fgrade/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

Tools

41

list_programacao

TV guide channels

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

Parametersqdepois

get_programacao

Channel TV guide

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

Parametersslugrequiredantes

get_programacao_dia

Channel TV guide for a day

The stored TV guide of a channel on one day.

Parametersdiarequiredslugrequiredantes

api_index

API index

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

Takes no parameters.

health

Service health

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

Takes no parameters.

geo

Suggested country and language

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.

Takes no parameters.

list_countries

Countries

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

Parameterskind

list_tags

Radio tags

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

Parameterslimitcountry

search_channels

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; 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 the country of the caller: each channel has `social.your_fails`, the result for YOUR environment, so the response is `Cache-Control: private`.

Parametersqtagcitykindsortguideonlinecountrynetworkqualitycategorylanguage+2 more

list_languages

Languages

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

Takes no parameters.

list_networks

Networks

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

Takes no parameters.

list_qualities

Stream qualities

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

Takes no parameters.

list_subdivisions

States and provinces

The states and provinces that have a playable channel.

Parameterscountry

list_cities

Cities

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

Parameterscountrysubdivision

get_channel

Get a channel

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

Parametersidrequired

get_channel_guide

Today's 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 `guide_now`.

Parametersidrequired

create_guest

Create a 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.

Takes no parameters.

get_library

Library

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

Takes no parameters.

create_category

Create a folder

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

Parametersnamerequired

create_group

Create a tab

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

Parametersnamerequiredcategory_idrequired

add_item

Add a channel to a tab

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

Parametersgroup_idrequiredchannel_idrequired

get_history

Watch history

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

Parameterslimitoffset

record_watch

Record a watched channel

Records a watched channel in the owner's history.

Parameterschannel_idrequired

forget_watch

Remove from the history

Removes a channel from the owner's history.

Parameterschannel_idrequired

clear_history

Clear the history

Clears the whole history of the owner at once.

Takes no parameters.

tv_state

TV network activation

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

Parameterscodigorequired

legacy_stream

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 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 access refusal or a CORS requirement. It is one indexed read: it does not fetch the origin and does not write to the database.

Parametersidrequired

producer_services

Services for producers

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.

Parameterslang

report_play

Report a 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 /api/channels/:id/health`, but they do not confirm the cause of a failure.

Parametersokrequiredcodechannel_idrequired

play_reports

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

Parametersoklimitchannel_id

channel_health

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 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 country, and `pra_voce` sums it up for the country of the caller. Without community reports (`POST /api/play-report`), the panel is empty.

Parametersidrequired

list_favorites

Favorites

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

Takes no parameters.

add_favorite

Add a favorite

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

Parameterschannel_idrequired

remove_favorite

Remove a favorite

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

Parameterschannel_idrequired

list_comments

Channel 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.

Parametersidrequired

post_comment

Post a 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.

Parametersidrequiredbodyrequiredauthor

delete_comment

Delete a 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.

Parametersidrequired

chat_history

Chat history

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

Parameterschannel_idrequired

chat_send

Send a chat message

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.

Parametersbodyrequiredauthorchannel_idrequired

me

Account

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.

Takes no parameters.

contact

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 the reply address. For voice, send multipart/form-data: `dados` is this JSON (up to 32 KiB), and `audio` is one WebM, Ogg or M4A audio file (up to 2 MB). Audio can replace message. The browser records up to two minutes. Audio is attached to the owner's e-mail.

Parametersfusonamerequiredpaissitetipoemailrequiredprazoespacoduracaoempresaformatomessagerequired+6 more

Version history

2
  1. v1.0.1LatestOct 16, 2026
  2. v1.0.0Sep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.