Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

My TV Channel

REMOTE · MY-TV-CHANNEL.COM · SCANNED OCT 6

Create and run 24/7 linear TV channels. Import videos by URL; we transcode, schedule and stream.

0 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security60
Transport & Reachability100
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2572 tokens (~135/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage82
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 45% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the My TV Channel MCP server?

My TV Channel is a hosted endpoint at https://my-tv-channel.com/api/mytvchannel/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · my-tv-channel.com

# add to Claude Code
claude mcp add --transport http com-my-tv-channel-my-tv-channel 'https://my-tv-channel.com/api/mytvchannel/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-my-tv-channel-my-tv-channel": {
      "url": "https://my-tv-channel.com/api/mytvchannel/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-my-tv-channel-my-tv-channel": {
      "type": "http",
      "url": "https://my-tv-channel.com/api/mytvchannel/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-my-tv-channel-my-tv-channel]
url = "https://my-tv-channel.com/api/mytvchannel/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-my-tv-channel-my-tv-channel": {
      "type": "remote",
      "url": "https://my-tv-channel.com/api/mytvchannel/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-my-tv-channel-my-tv-channel --url 'https://my-tv-channel.com/api/mytvchannel/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-my-tv-channel-my-tv-channel:
    url: "https://my-tv-channel.com/api/mytvchannel/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-my-tv-channel-my-tv-channel": {
      "Transport": "http",
      "Url": "https://my-tv-channel.com/api/mytvchannel/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-my-tv-channel-my-tv-channel -t streamable-http -u 'https://my-tv-channel.com/api/mytvchannel/mcp'
// mcp.json
{
  "mcpServers": {
    "com-my-tv-channel-my-tv-channel": {
      "type": "http",
      "url": "https://my-tv-channel.com/api/mytvchannel/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Aug 26 0
    • Stability: 0.97 → pass security
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Aug 26 0
    • MCP protocol: fail → pass ▲ functional
    • MCP protocol version: 2025-06-18 → 2026-07-28 functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
    • Server version: 1.0.0 → 1.1.0 functional
    • Tool “archive_channel” changed its title: Archive channel cosmetic
    • Tool “check_handle_available” changed its title: Check handle availability cosmetic
    • Tool “create_channel” changed its title: Create channel cosmetic
    • Tool “delete_asset” changed its title: Delete asset cosmetic
    • Tool “get_account_status” changed its title: Get account status cosmetic
    • Tool “get_channel” changed its title: Get channel cosmetic
    • Tool “get_schedule” changed its title: Get schedule cosmetic
    • Tool “get_schedule_rules” changed its title: Get schedule rules cosmetic
    • Tool “get_transcode_status” changed its title: Get transcode status cosmetic
    • Tool “import_video_from_url” changed its title: Import video from URL cosmetic
    • Tool “import_youtube_video” changed its title: Import YouTube video cosmetic
    • Tool “list_assets” changed its title: List assets cosmetic
    • Tool “list_channels” changed its title: List channels cosmetic
    • Tool “regenerate_schedule” changed its title: Regenerate schedule cosmetic
    • Tool “retry_transcode” changed its title: Retry transcode cosmetic
    • Tool “set_asset_weight” changed its title: Set asset weight cosmetic
    • Tool “set_schedule_rules” changed its title: Set schedule rules cosmetic
    • Tool “update_channel” changed its title: Update channel cosmetic
    • Tool “validate_schedule_rules” changed its title: Validate schedule rules cosmetic
  • 2 Aug 26 0
    • Schema quality: unverified → excellent ▲ functional
    • Stability: unverified → 0.03 ▲ functional
  • 1 Aug 26 0

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 6 Oct 2026 · Probed https://my-tv-channel.com/api/mytvchannel/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=my-tv-channel.com CN=YE2,O=Let's Encrypt,C=US 1 Oct 2026 30 Dec 2026 ECDSA 256 ECDSA-SHA384 57725be31c02cdcbf730377d41af043af95
SANs: *.my-tv-channel.com, my-tv-channel.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of my-tv-channel.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
my-tv-channel.com. present 20774 8 Verified
my-tv-channel.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://my-tv-channel.com/api/mytvchannel/mcp Verified 200
http (plaintext) http://my-tv-channel.com/api/mytvchannel/mcp HTTPS enforced 301 https://my-tv-channel.com/api/mytvchannel/mcp
MCP tools · 19 exposed · ~2,453 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
archive_channel ~87

Take a channel off the air and out of every listing. This ARCHIVES rather than destroys: the handle stays reserved and assets and schedule history are retained, so it can be restored. Refuses with 409 while transcodes are still running. Idempotent. This is the reversible way to take a channel down; delete_asset removes individual videos instead.

NameTypeReqDescription
channel_idintegeryes–

No output schema declared.

No examples provided.

check_handle_available ~74

Check whether a channel handle is free before trying to create it. The handle becomes the subdomain: {handle}.my-tv-channel.com. 3-63 chars, lowercase a-z, 0-9 and hyphens.

NameTypeReqDescription
handlestringyesDesired handle, e.g. "retro-arcade"

No output schema declared.

No examples provided.

create_channel ~217

Create a 24/7 linear TV channel. It will NOT be live yet — a channel goes live automatically once it has at least 4 ready assets AND at least 15 minutes of total content. is_public lists it in Discover and is available on every subscription tier, including Starter.

NameTypeReqDescription
categorystring––
channel_typestringyesUse "thematic" unless the channel is tied to a place
descriptionstring––
handlestringyes3-63 chars, lowercase a-z 0-9 and hyphens. Becomes {handle}.my-tv-channel.com
is_publicboolean–List in Discover. Available on all tiers.
locationobject–Required only when channel_type is "location"
namestringyesDisplay name
orientationstring–vertical = 9:16
primary_languagestring–ISO 639-1, e.g. "en", "fr"
tagsarray––

No output schema declared.

No examples provided.

delete_asset ~71

Remove a video from a channel. Soft delete — it stops being scheduled immediately and the schedule regenerates automatically. Idempotent. The asset is retained and stops being scheduled; it is not erased. Affects one video — archive_channel takes a whole channel off the air.

NameTypeReqDescription
asset_idintegeryes–

No output schema declared.

No examples provided.

get_account_status ~79

Start here. Returns who the account is, its subscription tier and limits, how much weekly upload/stream quota is used and remaining, and every channel the owner has with its ready-asset count and what it still needs to go live (launchGaps). Call this before creating anything so you know the real limits for THIS account rather than assuming.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_channel ~57

Get one channel by id. Includes scheduleStatus (inactive | pending | active | error) — poll this to confirm a channel has gone live — plus watchUrl, launchedAt and isArchived.

NameTypeReqDescription
channel_idintegeryesChannel id

No output schema declared.

No examples provided.

get_schedule ~52

Read the channel's EPG — what is playing and what is coming up. Note this one returns a plain array of entries (unlike other tools, which return an object).

NameTypeReqDescription
channel_idintegeryes–

No output schema declared.

No examples provided.

get_schedule_rules ~40

Read the channel's declarative schedule rules (fixed time slots and dayparts), plus its scheduling mode and timezone.

NameTypeReqDescription
channel_idintegeryes–

No output schema declared.

No examples provided.

get_transcode_status ~102

Poll transcode progress. Give either channel_id (all its videos) or asset_id (one). Each asset reports uploadStatus (downloading -> pending -> transcoding -> ready) and the summary tells you when meetsLaunchRequirements becomes true: 4+ ready assets AND 900+ seconds. Poll every 30-60s; transcoding takes roughly real-time/4.

NameTypeReqDescription
asset_idinteger––
channel_idinteger––

No output schema declared.

No examples provided.

import_video_from_url ~244

Add a video to a channel from a direct media URL. THIS IS THE MAIN WAY TO ADD CONTENT over MCP — you cannot upload local file bytes through this interface, so if the owner has local files, ask them to host them somewhere reachable or upload via the app. The URL must be a direct, public, unauthenticated link to mp4/mov/m4v/mpeg/mpg/avi, or a FINITE .m3u8 (VOD, not a live stream) — not a web page, not behind a login, not a YouTube/Vimeo watch page. The server downloads it. Returns immediately; the asset then goes downloading -> pending -> transcoding -> ready. Duration counts against the weekly upload quota. Re-submitting the same URL to the same channel returns the original asset instead of importing twice.

NameTypeReqDescription
channel_idintegeryes–
tagsarray––
titlestring––
urlstringyesDirect, public media URL
weightinteger–How often it plays, 0-10 (default 5). Set it here rather than after — see set_asset_weight.

No output schema declared.

No examples provided.

import_youtube_video ~244

Import a YouTube video that the OWNER UPLOADED THEMSELVES. This will not work for anyone else's video, by design — a channel built from other people's videos is a copyright problem for the owner. Ownership is proved by a tag only the uploader can add: 1. The owner's tag looks like 'MyTVChannelApp#<device-id>'. When the import fails for a missing tag, the 403 error message contains that account's exact tag string. 2. They paste that exact string into the video's description or tags on YouTube. 3. Retry the import. You cannot do step 2 for them and you cannot bypass it. Public finished videos only: no live streams, no private or age-restricted videos, no playlists or channel URLs. Capped at 10 per day. Counts against the same weekly upload quota as everything else.

NameTypeReqDescription
channel_idintegeryes–
tagsarray––
titlestring–Overrides the YouTube title
urlstringyesA single-video YouTube URL (watch, shorts or youtu.be)
weightinteger––

No output schema declared.

No examples provided.

list_assets ~23

List the videos on a channel.

NameTypeReqDescription
channel_idintegeryes–

No output schema declared.

No examples provided.

list_channels ~16

List the channels owned by this account.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

regenerate_schedule ~90

Rebuild the channel's schedule now using the current weights. Call this after changing weights on a channel that is ALREADY live, otherwise the change will not air until the hourly cron. Throttled to one call per channel per 5 minutes; exceeding that returns 429 with a Retry-After header giving the seconds remaining. Requires the channel to meet launch requirements.

NameTypeReqDescription
channel_idintegeryes–

No output schema declared.

No examples provided.

retry_transcode ~36

Re-queue a video whose transcode failed. Only works on assets in a failed state.

NameTypeReqDescription
asset_idintegeryes–

No output schema declared.

No examples provided.

set_asset_weight ~184

Change how often a video plays (weight 0-10, default 5; 0 removes it from rotation entirely), and optionally its title or tags. IMPORTANT ORDERING: weights only affect what actually airs when the schedule is (re)generated. A channel builds its schedule the instant it crosses the launch threshold, so weights set AFTER that are stored but do not air. Either set the weight when you import each video, or call regenerate_schedule afterwards. Weights are relative: identical weights across every video produce a uniform rotation, and the spread between them is what shapes airtime.

NameTypeReqDescription
asset_idintegeryes–
tagsarray–Tag videos seqXX01, seqXX02 … (XX = any two letters) to force them to play in order as a mini-series.
titlestring––
weightinteger––

No output schema declared.

No examples provided.

set_schedule_rules ~444

Give the channel a durable schedule: fixed slots ("news at 18:00") and dayparts ("no kids content after 22:00"). The scheduler re-honours these on EVERY rebuild, so you set them once instead of babysitting the grid. **Pro tier or higher.** This REPLACES the entire ruleset — send every rule you want, not just new ones. Sending an empty array removes all rules and returns the channel to plain weighted-random. Validate first with validate_schedule_rules. Rule shapes: time_slot {rule_type:'time_slot', start_time:'18:00', end_time?:'21:00', days_mask:127, selector_type:'asset'|'tag'|'playlist', selector_value:<id|tag|[ids]>, priority?:0} daypart_weight {rule_type:'daypart_weight', start_time:'22:00', end_time:'06:00', days_mask:127, selector_type:'asset'|'tag', selector_value:..., weight_multiplier:0-10} days_mask is a bitmask: bit0=Mon … bit6=Sun. 127=daily, 31=Mon-Fri, 96=weekend. end_time on a time_slot makes it a BLOCK that keeps drawing from the selector until that time — that is how you get 'cartoons 06:00-09:00' rather than one cartoon. selector_type 'playlist' with an array of asset ids plays them IN ORDER. weight_multiplier 0 removes matching assets from that window entirely. Set `timezone` (IANA) or the times mean UTC, which is almost never what the owner meant. Slots start ON-OR-AFTER their time: the programme running into a slot is never cut short, so an 18:00 slot may begin at 18:02. That is intended.

NameTypeReqDescription
channel_idintegeryes–
rulesarrayyesThe COMPLETE ruleset. Empty array clears all rules.
timezonestring–IANA name, e.g. "Europe/Paris". Strongly recommended.

No output schema declared.

No examples provided.

update_channel ~221

Update an existing channel: name, description, visibility, category, language, age rating, or the community chat link. Only send the fields you are changing.

NameTypeReqDescription
age_classificationstring––
allow_offline_downloadboolean––
categorystring––
channel_idintegeryes–
chat_channel_idstring–Discord channel id within that server
chat_platformstring–Community chat platform shown as an overlay on the player. Discord is the fully supported one; the others are accepted but only Discord has a working embed today.
chat_server_idstring–Discord server (guild) id — the owner must supply this; you cannot discover it
descriptionstring––
is_publicboolean–List in Discover. Allowed on every tier.
keywordsstring–Multilingual search keywords
namestring––
primary_languagestring–ISO 639-1, e.g. "en"
show_scheduleboolean––

No output schema declared.

No examples provided.

validate_schedule_rules ~172

DRY-RUN a ruleset. Saves nothing. Returns {valid, errors, warnings, preview} where preview is a simulated 24h grid of what would actually air. Intended as the dry run for set_schedule_rules: rules are wall-clock, slots start on-or-after their time, and dayparts reweight the random fill, so the airing result is hard to predict from the rules alone. Unlike set_schedule_rules this is not tier-gated and works on any tier. Same payload as set_schedule_rules.

NameTypeReqDescription
channel_idintegeryes–
hoursinteger–How many hours to simulate (default 24, max 168)
rulesarrayyesSame shape as set_schedule_rules
timezonestring–IANA name, e.g. "Europe/Paris"

No output schema declared.

No examples provided.

Common questions

What is the My TV Channel MCP server?

My TV Channel is an MCP server listed in the public MCP registry as com.my-tv-channel/my-tv-channel. Create and run 24/7 linear TV channels. Import videos by URL; we transcode, schedule and stream. This page covers its hosted endpoint (https://my-tv-channel.com/api/mytvchannel/mcp).

Is the My TV Channel MCP server safe to use?

My TV Channel scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the My TV Channel MCP server expose?

My TV Channel exposes 19 tools: get_account_status, list_channels, get_channel, check_handle_available, create_channel, and 14 more. Their descriptions and schemas cost roughly 2,453 tokens of context every time the server is loaded.

Does the My TV Channel MCP server require authentication?

No. We connected to My TV Channel without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the My TV Channel MCP server still maintained?

My TV Channel is still listed as active in the MCP registry. We last reached this channel on 6 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.