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

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

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the content rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.1.0
- **Author:** com.my-tv-channel
- **License:** Unknown
- **Endpoints:** streamable-http https://my-tv-channel.com/api/mytvchannel/mcp
- **Source:** https://my-tv-channel.com
- **Endpoint health:** reachable (last checked 2026-09-20T11:49:41.538Z, 5 samples) — uptime is not a security property and is not part of the trust score
- **Compatible clients:** claude-code, cursor, copilot, chatgpt, gemini (basis: transport)

## Trust

60/100 (B), scored on the content rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: clean
- Obfuscation scan: clean
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-20T11:49:41.538Z
- **Version scanned:** live
- **CVEs:** no coverage — this entry has no package coordinates to query OSV against, so "no known CVEs" is NOT asserted for it.

## Tools

19 declared. Observed from a live `tools/list` probe.
- `get_account_status` — 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
- `list_channels` — List the channels owned by this account.
- `get_channel` — Get one channel by id. Includes scheduleStatus (inactive | pending | active | error) — poll this to confirm a channel has gone live — plus watchUrl, launchedAt 
- `check_handle_available` — 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 
- `create_channel` — 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 tota
- `update_channel` — Update an existing channel: name, description, visibility, category, language, age rating, or the community chat link. Only send the fields you are changing.
- `archive_channel` — 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,
- `import_video_from_url` — 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 i
- `import_youtube_video` — 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
- `list_assets` — List the videos on a channel.
- `get_transcode_status` — Poll transcode progress. Give either channel_id (all its videos) or asset_id (one). Each asset reports uploadStatus (downloading -> pending -> transcoding -> re
- `set_asset_weight` — 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
- `delete_asset` — Remove a video from a channel. Soft delete — it stops being scheduled immediately and the schedule regenerates automatically. Idempotent. The asset is retained 
- `retry_transcode` — Re-queue a video whose transcode failed. Only works on assets in a failed state.
- `regenerate_schedule` — 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 
- `get_schedule` — 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).
- `get_schedule_rules` — Read the channel's declarative schedule rules (fixed time slots and dayparts), plus its scheduling mode and timezone.
- `validate_schedule_rules` — 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 d
- `set_schedule_rules` — 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

## Install

**Verdict: review** — Installable, but 2 things to check first: No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
**Cautions** (coverage gaps and advisories — never blocking)
- No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"my-tv-channel\": {\n      \"type\": \"http\",\n      \"url\": \"https://my-tv-channel.com/api/mytvchannel/mcp\"\n    }\n  }\n}"
```

## Blast radius

Moderate to extensive — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: deletes data; runs on someone else's infrastructure.
- Floor 32, ceiling 56 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/com.my-tv-channel%2Fmy-tv-channel
- Install plan: https://forgeregistry.com/api/v1/packages/com.my-tv-channel%2Fmy-tv-channel/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/com.my-tv-channel%2Fmy-tv-channel
- HTML page: https://forgeregistry.com/registry/com.my-tv-channel%2Fmy-tv-channel
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
