_ registry / mcp + a2a streamable-http · checked 1h ago

GradeTV

https://gradetv.net

Registry code: 1b0dca5f54d07166

api record

Use GradeTV to find channels and read schedules by day and time, without inventing programmes or broadcast rights. Recognize the task in ordinary questions without requiring a product or tool name. Reuse authorized context. Ask only for a missing identifier, URL or access. Deliver an answer with evidence and limits. Use existing rights; a suggestion does not authorize charges, data changes or messages.

What is on TV Brasil tonight? → list_programacao → get_programacao_dia. Resolve the channel from the list and confirm date and timezone. Read the available day. A missing date is not an empty…

endpoint
https://gradetv.net/mcp
door code
2f1ef843d9eeca3c
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is GradeTV live?
Yes — it answered the hub's last check (checked 1h ago). It answered 99% of checks over the last 30 days.
Is GradeTV free to use?
Yes — the hub reached it with no key and no payment.
What tools does GradeTV have?
47 tools: list_favorites, get_programacao_dia, geo, list_languages, list_subdivisions, legacy_stream, channel_health, chat_send, ….
Is GradeTV safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.1%

90 days 99%· all time 99.4%

latency
645ms

last good check

priced tools
0

of 47 tools

_ answered our checks, 90 days 1311 checks · signed record
  • degraded → live
  • live → degraded· endpoint unreachable (fetch failed); card still served
  • degraded → live
  • live → degraded· fetch failed
  • degraded → live
_ what it is for
used for
  • search live tv and radio channels
  • see a channel program schedule
  • manage favorite channels
  • comment on a channel
takes → gives
text → data
tools
15 reads8 changes data1 moves money1 sends messages
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. The address also stands behind 11 other origins: the chain figures are the gateway's, not this listing's alone. How it is counted.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

payers on base
13

distinct

settlements
118

last 2026-11-10

received on chain
9.614 USDC

concentrated, shared-payto

_ what it can do 47 tools
47 never probed 0 of 47 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_favorites reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • get_programacao_dia reads unknown never probed

    The stored TV guide of a channel on one day. We collect and organize the available schedules. Read the channel and date you need instead of building an EPG collection process. Check available dates. The schedule is metadata; it does not provide a video archive or broadcast rights.

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug",
        "dia"
      ],
      "properties": {
        "dia": {
          "type": "string",
          "description": "Collection day, YYYY-MM-DD."
        },
        "slug": {
          "type": "string",
          "description": "The stored slug of the channel, from the collection."
        },
        "antes": {
          "type": "string",
          "description": "Exclusive day to page through the earlier days; use `guia.proximo`."
        }
      }
    }
    arguments 21 lines
  • geo reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_languages reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_subdivisions unknown never probed

    The states and provinces that have a playable channel.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "Limits to one country, ISO 3166-1 alpha-2."
        }
      }
    }
    arguments 9 lines
  • legacy_stream unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Public stream ID, including the old IDs for compatibility."
        }
      }
    }
    arguments 12 lines
  • channel_health reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • chat_send unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id",
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "description": "The message text, within `max_length`."
        },
        "author": {
          "type": "string",
          "description": "Nickname to use; without it, the server makes a stable one."
        },
        "channel_id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 21 lines
  • get_api_x402_programacao_by_slug unknown never probed

    The last seven days of the channel's schedule in one call, for an agent, paid per call, with no account. Select the title or category across collected days and receive calendar events with absolute times. You do not need to merge daily records and write a calendar exporter. Only collected dates are returned. This is metadata, not a video archive, a broadcast license or a guarantee that a channel plays.

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "description": "Stored slug of the channel, from the collection."
        },
        "agenda": {
          "enum": [
            "1"
          ],
          "type": "string",
          "description": "Include agenda_ics with the selected calendar events."
        },
        "programa": {
          "type": "string",
          "description": "Title or category substring. Input and matches are not truncated."
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • health reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • get_programacao unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "description": "The stored slug of the channel, from the collection."
        },
        "antes": {
          "type": "string",
          "description": "Exclusive day to page through the earlier days; use `guia.proximo`."
        },
        "programa": {
          "type": "string",
          "maxLength": 100,
          "description": "Name of a show: brings in proximos its airings in the next days; up to 100 characters."
        }
      }
    }
    arguments 21 lines
  • api_index unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • search_channels reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "description": "Free text in the channel name and its aliases (full-text search)."
        },
        "tag": {
          "type": "string",
          "description": "Radio station tag (free vocabulary, for example `mpb` or `news`); see `GET /api/tags`."
        },
        "city": {
          "type": "string",
          "description": "City, catalog code."
        },
        "kind": {
          "enum": [
            "tv",
            "radio",
            "all"
          ],
          "type": "string",
          "default": "tv",
          "description": "`tv` (default) is the TV catalog; `radio` is the radio stations; `all` is both. Without `kind`, radio never appears."
        },
        "sort": {
          "enum": [
            "name",
            "score",
            "votes"
          ],
          "type": "string",
          "default": "name",
          "description": "`score` orders by the health that a third party measures, best first; channels with no measurement go to the end. `votes` orders by the votes recorded for the station (radio). `name` is alphabetical order."
        },
        "guide": {
          "enum": [
            "0",
            "1"
          ],
          "type": "string",
          "default": "0",
          "description": "`1` returns only channels with a TV guide (EPG)."
        },
        "online": {
          "enum": [
            "0",
            "1"
          ],
          "type": "string",
          "default": "0",
          "description": "`1` returns only channels that the source saw online in the 48 h before the last catalog reload (`health_ext.online`). When the catalog has not reloaded for more than 48 h, the filter returns no channel."
        },
        "country": {
          "type": "string",
          "description": "Country of the channel, ISO 3166-1 alpha-2."
        },
        "network": {
          "type": "string",
          "description": "Exact name of the network or broadcaster."
        },
        "quality": {
          "type": "string",
          "description": "Exact quality of the stream."
        },
        "category": {
          "type": "string",
          "description": "Category ID from the catalog."
        },
        "language": {
          "type": "string",
          "description": "Language of the channel, ISO 639-3."
        },
        "playable": {
          "enum": [
            "0",
            "1"
          ],
          "type": "string",
          "default": "1",
          "description": "`0` also includes channels with no known usable stream."
        },
        "subdivision": {
          "type": "string",
          "description": "State or province, catalog code."
        }
      }
    }
    arguments 88 lines
  • list_networks unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_qualities reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • get_channel unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • get_channel_guide unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • create_guest changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • create_category changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Folder name, up to 40 characters."
        }
      }
    }
    arguments 12 lines
  • tv_state unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "codigo"
      ],
      "properties": {
        "codigo": {
          "type": "string",
          "description": "The six digits shown on the TV screen. They are valid for ten minutes."
        }
      }
    }
    arguments 12 lines
  • producer_services unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "lang": {
          "enum": [
            "pt",
            "en",
            "es",
            "fr",
            "de",
            "hu"
          ],
          "type": "string",
          "default": "pt",
          "description": "Language of the offer: pt, en, es, fr, de or hu. A missing or unknown value falls back to pt."
        }
      }
    }
    arguments 18 lines
  • report_play unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id",
        "ok"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "description": "`true` when it played, `false` when it failed."
        },
        "code": {
          "enum": [
            "cors",
            "geo",
            "sumiu",
            "codec",
            "playlist",
            "sem_resposta",
            "protocolo",
            "sem_stream",
            "embed",
            "outro"
          ],
          "type": "string",
          "description": "Failure code, only when `ok` is `false`. A missing or unknown code counts as `outro`."
        },
        "channel_id": {
          "type": "string",
          "description": "The channel that you tried to watch."
        }
      }
    }
    arguments 33 lines
  • play_reports unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "ok": {
          "enum": [
            "0"
          ],
          "type": "string",
          "description": "`0` returns only the failures, which is the subset for an investigation."
        },
        "limit": {
          "type": "string",
          "default": 20,
          "description": "Items per page. A value above 50 becomes 50."
        },
        "channel_id": {
          "type": "string",
          "description": "Limits to one channel."
        }
      }
    }
    arguments 21 lines
  • add_favorite changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id"
      ],
      "properties": {
        "channel_id": {
          "type": "string",
          "description": "Channel to mark as a favorite, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • remove_favorite changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id"
      ],
      "properties": {
        "channel_id": {
          "type": "string",
          "description": "Channel to remove from the favorites, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • post_comment changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id",
        "body"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        },
        "body": {
          "type": "string",
          "description": "The comment text. The limit is in `max_length` of the list."
        },
        "author": {
          "type": "string",
          "description": "Nickname to use; without it, the server makes a stable one."
        }
      }
    }
    arguments 21 lines
  • chat_pass moves money unknown never probed

    Buys or confirms the monthly chat pass: $0.10 per 30 days, through x402 or credit. A pass that is already valid returns 200 without charging again: you can call it before writing, with no risk of paying twice. The pass belongs to the person who speaks in the chat: the `X-Guest-Token` guest (the one the WebSocket recognizes in `hello`); without a guest, the account session, which speaks only over HTTP. It stays in the global purchase record (`direito`).

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • me unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • billing reads unknown never probed

    Prices in force, gallery caps and the full x402 configuration. It is the number IN FORCE: read it from here before you spend a call, instead of assuming the price of the documentation. With a credential, it also tells whether the chat pass of the person who speaks in the chat (the guest; without one, the account) is active. `prices.abuso_24h_usd` is the price of the gate for an empty UA/curl, off today.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • get_api_x402_programacao_by_slug_by_dia unknown never probed

    Seven days of the channel's schedule that end on the requested day, for an agent, paid per call, with no account. Up to seven collected days of the channel in one response, without an account or pass. The programa parameter selects by title or category and ignores case and accents. agenda=1 adds agenda_ics, ready to import, with UTC times and unique events. The resumo field gives the days consulted and the showings. The agenda is a file, not a subscription to updates. The free daily reading keeps the same data. A missing channel, day or program, and unavailable history, are not charged. When delivery is available, an unpaid request receives 402, and a paid request receives the result and cobranca.

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug",
        "dia"
      ],
      "properties": {
        "dia": {
          "type": "string",
          "description": "Last day of the requested week, YYYY-MM-DD."
        },
        "slug": {
          "type": "string",
          "description": "Stored slug of the channel, from the collection."
        },
        "agenda": {
          "enum": [
            "1"
          ],
          "type": "string",
          "description": "Include agenda_ics with the selected calendar events."
        },
        "programa": {
          "type": "string",
          "description": "Title or category substring. Input and matches are not truncated."
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • list_countries unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "kind": {
          "enum": [
            "tv",
            "radio",
            "all"
          ],
          "type": "string",
          "default": "tv",
          "description": "`tv` (default) counts TV channels; `radio` counts radio stations; `all` counts both."
        }
      }
    }
    arguments 15 lines
  • record_watch changes data unknown never probed

    Records a watched channel in the owner's history.

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id"
      ],
      "properties": {
        "channel_id": {
          "type": "string",
          "description": "The watched channel, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • pricing reads unknown never probed

    Current prices and free allowances. Returns: { product, quota{free,paid,how_to_pay,live,free_now?,charged_now?,trial?}, pricing, billing, api_index }

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_tags reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "string",
          "default": 40,
          "description": "How many tags to return (100 at most)."
        },
        "country": {
          "type": "string",
          "description": "Limits to the stations of one country, ISO 3166-1 alpha-2."
        }
      }
    }
    arguments 14 lines
  • list_cities reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "Limits to one country, ISO 3166-1 alpha-2."
        },
        "subdivision": {
          "type": "string",
          "description": "Limits to one state or province."
        }
      }
    }
    arguments 13 lines
  • get_library reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • forget_watch unknown never probed

    Removes a channel from the owner's history.

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id"
      ],
      "properties": {
        "channel_id": {
          "type": "string",
          "description": "Channel to remove from the history, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • list_comments unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • chat_history unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "channel_id"
      ],
      "properties": {
        "channel_id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 12 lines
  • list_programacao reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "maxLength": 80,
          "description": "Search in the channel name across the whole collection, up to 80 characters."
        },
        "pais": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "description": "Two-letter country code of the channel (br, us); use `paises`."
        },
        "depois": {
          "type": "string",
          "description": "Exclusive ID of the last row; use `proximo`."
        }
      }
    }
    arguments 19 lines
  • create_group unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "category_id",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Tab name, up to 40 characters."
        },
        "category_id": {
          "type": "string",
          "description": "Folder that receives the tab, `cat_…`."
        }
      }
    }
    arguments 17 lines
  • add_item changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "group_id",
        "channel_id"
      ],
      "properties": {
        "group_id": {
          "type": "string",
          "description": "Tab that receives the channel, `grp_…`."
        },
        "channel_id": {
          "type": "string",
          "description": "Channel ID in the catalog, for example `GloboNews.br`."
        }
      }
    }
    arguments 17 lines
  • get_history reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "string",
          "default": 20,
          "description": "Items per page. A value above 50 becomes 50."
        },
        "offset": {
          "type": "string",
          "default": 0,
          "description": "How many items to skip. Use `next_offset` from the previous response."
        }
      }
    }
    arguments 15 lines
  • clear_history unknown never probed

    Clears the whole history of the owner at once.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • tv_pass unknown never probed

    Buy a TV pass for 2 devices: 0.10 USDC for 30 days, 0.29 for 90 or 0.99 for 365. No automatic renewal. A 402 uses x402 on Base; repeat the same call with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1). The shared ledger records the attempt, payment and entitlement. The code identifies the TV device, with the network as fallback. A verified payer account groups its devices. A full account receives an authorization code before payment. Reusing the receipt does not buy another pass.

    mcp-tool

    {
      "type": "object",
      "required": [
        "codigo"
      ],
      "properties": {
        "plano": {
          "enum": [
            "mes",
            "trimestre",
            "ano"
          ],
          "type": "string",
          "description": "The pass period; without it, 30 days."
        },
        "codigo": {
          "type": "string",
          "description": "Six digits shown in the TV notice; valid for ten minutes."
        }
      }
    }
    arguments 21 lines
  • contact sends messages unknown never probed

    Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s per network (one that arrives sooner waits its turn). One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). No captcha, no account, no payment. 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name",
        "email",
        "message"
      ],
      "properties": {
        "fuso": {
          "type": "string",
          "description": "Consulting: the IANA time zone, such as `America/New_York`."
        },
        "name": {
          "type": "string",
          "description": "What to call the person writing."
        },
        "pais": {
          "type": "string",
          "description": "Consulting: the country of the person asking."
        },
        "site": {
          "type": "string",
          "description": "Website of who is proposing."
        },
        "tipo": {
          "enum": [
            "patrocinio",
            "parceria",
            "anuncio",
            "consultoria"
          ],
          "type": "string",
          "description": "Proposal: `patrocinio`, `parceria`, `anuncio` or `consultoria`. Turns on the fields below."
        },
        "email": {
          "type": "string",
          "description": "Where to reply."
        },
        "prazo": {
          "enum": [
            "agora",
            "1_mes",
            "1_3_meses",
            "explorando"
          ],
          "type": "string",
          "description": "Consulting: when to start (`agora`, `1_mes`, `1_3_meses` or `explorando`)."
        },
        "espaco": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Placement ids from `GET /api/partners`, up to 6."
        },
        "duracao": {
          "enum": [
            "30",
            "90",
            "365"
          ],
          "type": "string",
          "description": "Exposure in days: `30`, `90` or `365`."
        },
        "empresa": {
          "type": "string",
          "description": "Who is proposing, when it is a company."
        },
        "formato": {
          "enum": [
            "projeto",
            "mensal",
            "assessoria"
          ],
          "type": "string",
          "description": "Consulting: `projeto` (per scope), `mensal` (monthly) or `assessoria` (advisory)."
        },
        "message": {
          "type": "string",
          "description": "What you want to say."
        },
        "projeto": {
          "enum": [
            "llm_privado",
            "voz",
            "dados_sensiveis",
            "gpu",
            "integracao",
            "outro"
          ],
          "type": "string",
          "description": "Consulting: the kind of project (`llm_privado`, `voz`, `dados_sensiveis`, `gpu`, `integracao` or `outro`)."
        },
        "horarios": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Consulting: up to 3 times for the call, `YYYY-MM-DDTHH:MM` in that time zone."
        },
        "whatsapp": {
          "type": "string",
          "description": "Optional reply number with country code, such as +5561999999999."
        },
        "orcamento": {
          "enum": [
            "ate_100",
            "100_500",
            "500_2000",
            "2000_mais",
            "a_combinar",
            "ate_2000",
            "2000_5000",
            "5000_10000",
            "10000_mais",
            "nao_sei"
          ],
          "type": "string",
          "description": "Advertising: `ate_100`, `100_500`, `500_2000`, `2000_mais` or `a_combinar`. Consulting, in US dollars: `ate_2000`, `2000_5000`, `5000_10000`, `10000_mais` or `nao_sei`."
        },
        "pagamento": {
          "enum": [
            "usdc",
            "deposito",
            "a_combinar"
          ],
          "type": "string",
          "description": "`usdc`, `deposito` or `a_combinar`."
        },
        "prefer_whatsapp": {
          "type": "boolean",
          "description": "Request a WhatsApp reply. Requires whatsapp."
        }
      }
    }
    arguments 135 lines
  • delete_comment changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Comment ID, from `Comentario.id`."
        }
      }
    }
    arguments 12 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 1b0dca5f54d07166.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/1b0dca5f54d07166/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/1b0dca5f54d07166/badge.svg)](https://brick.blue/agent/1b0dca5f54d07166?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.