com.my-tv-channel/my-tv-channel

MCPcommunitylive
v1.1.0com.my-tv-channelUnknownUpdated 1mo ago

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

Endpoint healthlive
checked 3 days ago · 577ms
100% of the last 6 checks reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
1mo agoLast update
Package
Authorcom.my-tv-channel
LicenseUnknown
Version1.1.0
Sourcemcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/30
→ Publisher: this listing has no repository on file, so `forge publish` cannot verify ownership automatically. Use "Claim this listing" above — Forge reviews these by hand.
—Domain verification+0/10
→ Not currently available for this listing type — the domain-verification check only runs for npm-backed packages today, so this row cannot be earned here yet regardless of what's hosted at the domain.
✓Prompt-injection scan · clean+30/30
✓Obfuscation / exfil scan · clean+20/20
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
DependenciesNot audited
Tool surface19 tools · 1 privileged
Security scan✓ Cleanvlive · 15d agoHow well does this scan work?
EvalsNone
IndexedAug 11, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

19 tools · 1 privileged
Observed live from the vendor's endpoint15d ago

Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.

  • https://my-tv-channel.com/api/mytvchannel/mcp19 tools · 387ms
get_account_statusStart 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 li…

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 li…

No input schema was published for this tool.

list_channelsList the channels owned by this account.

List the channels owned by this account.

No input schema was published for this tool.

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

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.

ParameterTypeDescription
channel_id*integerChannel id
check_handle_availableCheck 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.

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.

ParameterTypeDescription
handle*stringDesired handle, e.g. "retro-arcade"
create_channelCreate 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.

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.

ParameterTypeDescription
handle*string3-63 chars, lowercase a-z 0-9 and hyphens. Becomes {handle}.my-tv-channel.com
name*stringDisplay name
channel_type*stringUse "thematic" unless the channel is tied to a place
descriptionstring—
primary_languagestringISO 639-1, e.g. "en", "fr"
tagsarray—
categorystring—
orientationstringvertical = 9:16
is_publicbooleanList in Discover. Available on all tiers.
locationobjectRequired only when channel_type is "location"
update_channelUpdate an existing channel: name, description, visibility, category, language, age rating, or the community chat link. Only send the fields you are changing.

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

ParameterTypeDescription
channel_id*integer—
namestring—
descriptionstring—
categorystring—
keywordsstringMultilingual search keywords
primary_languagestringISO 639-1, e.g. "en"
age_classificationstring—
is_publicbooleanList in Discover. Allowed on every tier.
show_scheduleboolean—
allow_offline_downloadboolean—
chat_platformstringCommunity 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 tod…
chat_server_idstringDiscord server (guild) id — the owner must supply this; you cannot discover it
chat_channel_idstringDiscord channel id within that server
archive_channelTake 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;…

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;…

ParameterTypeDescription
channel_id*integer—
import_video_from_urlAdd 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, unauthentic…

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, unauthentic…

ParameterTypeDescription
channel_id*integer—
url*stringDirect, public media URL
titlestring—
tagsarray—
weightintegerHow often it plays, 0-10 (default 5). Set it here rather than after — see set_asset_weight.
import_youtube_videoImport 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…

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…

ParameterTypeDescription
channel_id*integer—
url*stringA single-video YouTube URL (watch, shorts or youtu.be)
titlestringOverrides the YouTube title
tagsarray—
weightinteger—
list_assetsList the videos on a channel.

List the videos on a channel.

ParameterTypeDescription
channel_id*integer—
get_transcode_statusPoll 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…

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…

ParameterTypeDescription
channel_idinteger—
asset_idinteger—
set_asset_weightChange 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, s…

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, s…

ParameterTypeDescription
asset_id*integer—
weightinteger—
titlestring—
tagsarrayTag videos seqXX01, seqXX02 … (XX = any two letters) to force them to play in order as a mini-series.
delete_assetprivilegedRemove 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.

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.

ParameterTypeDescription
asset_id*integer—
retry_transcodeRe-queue a video whose transcode failed. Only works on assets in a failed state.

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

ParameterTypeDescription
asset_id*integer—
regenerate_scheduleRebuild 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…

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…

ParameterTypeDescription
channel_id*integer—
get_scheduleRead 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).

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

ParameterTypeDescription
channel_id*integer—
get_schedule_rulesRead the channel's declarative schedule rules (fixed time slots and dayparts), plus its scheduling mode and timezone.

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

ParameterTypeDescription
channel_id*integer—
validate_schedule_rulesDRY-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 airi…

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 airi…

ParameterTypeDescription
channel_id*integer—
timezonestringIANA name, e.g. "Europe/Paris"
hoursintegerHow many hours to simulate (default 24, max 168)
rules*arraySame shape as set_schedule_rules
set_schedule_rulesGive 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 wan…

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 wan…

ParameterTypeDescription
channel_id*integer—
timezonestringIANA name, e.g. "Europe/Paris". Strongly recommended.
rules*arrayThe COMPLETE ruleset. Empty array clears all rules.

19 of 19 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

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

Keywords
mcp
Alternatives
Comparing tool surfaces…

No dependency coverage

This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.