# Slice (remote · mcp.tryslicemedia.com)

Turn long podcast episodes, video or audio, into captioned vertical clips and transcripts.

- Trust score: 77/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `mcp.tryslicemedia.com`: 77/100 (this document), [markdown](https://verifymcp.io/servers/com-tryslicemedia-slice/mcp.md), [page](https://verifymcp.io/servers/com-tryslicemedia-slice/mcp)

## Channel facts

- Endpoint: `https://mcp.tryslicemedia.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.1`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 92/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2999 tokens (~272/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Slice MCP server?

Slice is a hosted endpoint at https://mcp.tryslicemedia.com/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.

### Claude

```bash
claude mcp add --transport http com-tryslicemedia-slice 'https://mcp.tryslicemedia.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-tryslicemedia-slice": {
      "url": "https://mcp.tryslicemedia.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-tryslicemedia-slice": {
      "type": "http",
      "url": "https://mcp.tryslicemedia.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-tryslicemedia-slice]
url = "https://mcp.tryslicemedia.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tryslicemedia-slice": {
      "type": "remote",
      "url": "https://mcp.tryslicemedia.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-tryslicemedia-slice --url 'https://mcp.tryslicemedia.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-tryslicemedia-slice:
    url: "https://mcp.tryslicemedia.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-tryslicemedia-slice": {
      "Transport": "http",
      "Url": "https://mcp.tryslicemedia.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-tryslicemedia-slice -t streamable-http -u 'https://mcp.tryslicemedia.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-tryslicemedia-slice": {
      "type": "http",
      "url": "https://mcp.tryslicemedia.com/mcp"
    }
  }
}
```

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

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 77)

First indexed and scored.

## MCP tools (11)

### `start_episode` (~386 tokens)

Start an episode

Use this when the user wants a podcast, interview, stream or other video turned into short clips. An audio-only episode (MP3, M4A, WAV, OGG or FLAC) works too: its clips come out as captioned vertical videos drawn with an audio template. With a video or audio file attached in the chat, pass it as file: it is copied into Slice, transcribed, and searched for the moments worth posting, with no further steps. With no file, it returns an upload_url for the user to open and drop the file in (up to three hours and 4.5GB). Follow with get_episode. Do not use when the user only wants the words as text (use transcribe_audio), and do not use for links to YouTube or other web pages; those are not supported.

Input parameters:

- `content_type` (string): What kind of video it is, which decides how clips are found: podcast (a podcast or interview), stream (a livestream or gaming video) or other (a vlog, challenge, talk or story). Pass it when the user…
- `file` (object): A video or audio file the user attached in the conversation.
- `name` (string): What to call the episode. Defaults to the file name.
- `target_seconds` (integer): Optional. How long each clip should be, in seconds (15 to 180), when the user asks for a length, e.g. "30 second clips". Every clip found then plays for at most this long and at most 10% less (at lea…

Output parameters:

- `episode_id` (string)
- `message` (string)
- `name` (string)
- `status` (string)
- `upload_url` (string): Open this to upload the video or audio file. Works for two hours.

### `get_episode` (~138 tokens)

Get an episode

Use this when the user asks how an episode is going, whether it is ready, or what clips were found. Returns one status for the whole pipeline (waiting_for_upload, uploading, transcribing, finding_clips, ready or failed) and, once ready, the found clips with number, ref, title, opening line, length and whether each has been cut and captioned. With no episode_id it lists recent episodes. Read the live answer from here rather than guessing how long things take. Do not use for transcripts made with transcribe_audio.

Input parameters:

- `episode_id` (string): From start_episode, or from this tool with no id.

Output parameters:

- `clips` (array)
- `duration` (string): Episode length, mm:ss.
- `episode_id` (string)
- `episodes` (array)
- `message` (string)
- `name` (string)
- `progress_percent` (number)
- `status` (string)
- `upload_url` (string)

### `make_clips` (~374 tokens)

Make clips

Use this when the user picks found clips to make. Cuts each one from the episode and renders it with captions burned in, in one step. Pass the numbers or refs get_episode listed (refs in brackets are fine). Optional style, caption_size, position, hook_title, fit and background apply to these clips. Returns a job per clip; follow with get_job for the files. Do not use before get_episode reports the episode ready, and do not use to change a clip that is already made (use restyle_clip).

Input parameters:

- `background` (string): What fills the space around a whole video: "black", or "blur" for a blurred copy of the video. Only matters with fit "whole".
- `caption_size` (string): Caption size. "bigger" and "smaller" are relative to now.
- `clips` (array, required): Numbers or refs from get_episode, e.g. [2, 5] or ["a3f9"]. Up to 10.
- `episode_id` (string, required): The episode the clips were found in.
- `fit` (string): How the picture sits in the frame. "fill" (the default) crops it to fill the frame. "whole" shows the whole video, nothing cropped, with space around it; use when the user does not want a wide video…
- `hook_title` (boolean|string): The title box at the top of the clip, on by default for new clips. false removes it, true puts the clip's title there, or give the words to show.
- `position` (string): Where the captions sit. "up" and "down" move them from where they are now.
- `style` (string): A caption style id or name from list_styles, e.g. bold-punch.

Output parameters:

- `clips` (array)
- `episode_id` (string)
- `message` (string)
- `notes` (array)

### `get_job` (~151 tokens)

Get a clip job

Use this when the user wants to know whether a clip is cut or rendered, or wants the finished file. Pass the job_id from make_clips or restyle_clip, or a clip_id for that clip's latest render. Returns the status, progress, a still from the clip and, when finished, a short download link. Pass wait: true to hold on up to about 40 seconds for it to finish. Do not use for transcribe_audio jobs.

Input parameters:

- `clip_id` (string): A cut clip, for its latest render.
- `job_id` (string): From make_clips or restyle_clip.
- `wait` (boolean): Wait briefly for it to finish instead of reporting now.

Output parameters:

- `clip_id` (string)
- `clips` (array): For a cut: the clips it made, and the render that follows each.
- `download_url` (string): A short link that downloads the MP4. Good for 7 days.
- `file_size_mb` (number)
- `job_id` (string)
- `kind` (string)
- `message` (string)
- `poster_url` (string)
- `progress_percent` (number)
- `status` (string)
- `title` (string)

### `restyle_clip` (~437 tokens)

Restyle a clip

Use this when the user wants a made clip changed and rendered again: a different caption style, bigger or smaller captions, captions moved up or down, the hook title turned on, off or reworded, or the whole video shown instead of cropped (fit, background). The change is saved on the clip and a new render starts; follow with get_job. When the user wants the look kept for future clips, pass save_as_default (new clips then start from it). Do not use for clips that have not been made yet (use make_clips).

Input parameters:

- `background` (string): What fills the space around a whole video: "black", or "blur" for a blurred copy of the video. Only matters with fit "whole".
- `caption_size` (string): Caption size. "bigger" and "smaller" are relative to now.
- `clip_id` (string, required): The clip_id from get_episode or get_job (or the job_id of its render). With episode_id, the clip's number or ref also works.
- `episode_id` (string): Only needed when clip_id is a number or ref from get_episode.
- `fit` (string): How the picture sits in the frame. "fill" (the default) crops it to fill the frame. "whole" shows the whole video, nothing cropped, with space around it; use when the user does not want a wide video…
- `hook_title` (boolean|string): The title box at the top of the clip, on by default for new clips. false removes it, true puts the clip's title there, or give the words to show.
- `position` (string): Where the captions sit. "up" and "down" move them from where they are now.
- `save_as_default` (boolean): True when the user wants this look kept for future clips ("use this from now on", "save this style"). Can be sent with no other change to keep the clip's current look.
- `style` (string): A caption style id or name from list_styles, e.g. bold-punch.

Output parameters:

- `changes` (array)
- `clip_id` (string)
- `job_id` (string): Pass to get_job.
- `message` (string)
- `saved_as_default` (boolean)
- `status` (string)

### `list_styles` (~86 tokens)

List caption styles

Use this when the user wants to know which caption looks they can choose from. Returns each style's id, name, a one-line description and a link to a preview picture. Pass styles to look up particular ones. Do not use to change a clip (use restyle_clip or make_clips).

Input parameters:

- `styles` (array): Ids or names to look up. Default all.

Output parameters:

- `notes` (array)
- `styles` (array)

### `find_clips_about` (~291 tokens)

Find clips about a topic

Use this when the user wants clips from an episode on a particular topic or for a particular audience, e.g. "clips about creativity for artists" or "moments for young entrepreneurs". Searches the episode again for moments that fit the focus, skipping clips already found, and adds what it finds to the episode's clips. It may find fewer than usual, or none, when little in the episode fits; say so plainly. Returns each new clip's number, ref, title and why it fits. Takes about a minute; if it is still searching, call it again with the same focus to wait for the result. Do not use before get_episode reports the episode ready.

Input parameters:

- `episode_id` (string, required): The episode to search.
- `focus` (string): What to look for, in the user's words: a topic or an audience. Optional when target_seconds is given.
- `target_seconds` (integer): Optional. How long each clip should be, in seconds (15 to 180), when the user asks for a length, e.g. "30 second clips". Every clip found then plays for at most this long and at most 10% less (at lea…

Output parameters:

- `clips` (array)
- `episode_id` (string)
- `focus` (string)
- `found` (integer): How many new clips fit the focus.
- `message` (string)
- `status` (string)
- `target_seconds` (integer|null): The clip length searched for; null for any length.

### `read_captions` (~234 tokens)

Read captions on a clip

Use this when the user asks what a clip says, what is on screen at a particular moment, which caption contains a word or a typo, or who said something. It is also the only way to get a caption's id, so read it first whenever a later step needs to name one caption. Narrow with at_seconds, a from/to range, or contains. Do not use for a transcript made with transcribe_audio, or to find clips (use get_episode).

Input parameters:

- `at_seconds` (number): Only the caption(s) on screen at this moment, in seconds.
- `clip_id` (string, required): A made clip's clip_id, from get_episode or get_job.
- `contains` (string): Only captions containing this text. Case-insensitive.
- `from_seconds` (number): Start of a time range, in seconds.
- `include_removed` (boolean): Include captions the editor has removed. They are not in the video. Default false.
- `limit` (number): Up to 200. Default 40.
- `to_seconds` (number): End of a time range, in seconds.

Output parameters:

- `captions` (array)
- `clip_id` (string)
- `message` (string)
- `name` (string)
- `total` (integer): Captions matching, before the limit.

### `transcribe_audio` (~304 tokens)

Transcribe audio or video

Use this when the user wants the words: speech in an audio or video file turned into text, from a podcast, interview, lecture, meeting or voice note. Accepts a file the user attached (file) or a direct https link to a media file such as .mp3, .m4a, .wav or .mp4 (url). Returns the transcript with speaker turns, plus a page with the full text and .txt, .srt and .vtt downloads. Short files finish in this call; longer ones return status "processing" and a transcription_id for transcription_status. Up to 90 minutes per file. The first transcript needs no account; after that it asks for a Slice sign-in, and a signed-in person gets 3 transcripts a month, shared with the Slice website. Do not use when the user wants short video clips made from a video (start_episode does that), for YouTube, Spotify, Apple Podcasts or other web pages (they are pages, not files), for text already in the conversation, or for live audio.

Input parameters:

- `file` (object): An audio or video file the user attached in the conversation.
- `url` (string): A direct https link to an audio or video file, e.g. https://example.com/episode.mp3. Not a web page.
- `wait` (boolean): Default true: wait briefly so short files come back finished. False returns at once with a transcription_id.

Output parameters:

- `downloads` (object)
- `duration_minutes` (number)
- `file_name` (string)
- `language` (string): Detected language code, e.g. en.
- `message` (string)
- `results_url` (string): Page with the full transcript and downloads. No sign-in; share it only with people who should see the transcript.
- `status` (string)
- `transcript` (string): The transcript in paragraphs, with speaker labels when there is more than one voice.
- `transcript_truncated` (boolean): True when only the first part is included here; the results page has all of it.
- `transcription_id` (string): Pass to transcription_status or email_transcript.
- `word_count` (integer)

### `transcription_status` (~96 tokens)

Get a transcription

Use this when transcribe_audio returned status "processing", to check whether the transcript is finished and get its text. Pass the transcription_id it returned. Call it again after a short wait while the status is still "processing". Only answers in the conversation (or Slice account) that started the transcription. Do not use to start a transcription; use transcribe_audio.

Input parameters:

- `transcription_id` (string, required): The transcription_id transcribe_audio returned.

Output parameters:

- `downloads` (object)
- `duration_minutes` (number)
- `file_name` (string)
- `language` (string): Detected language code, e.g. en.
- `message` (string)
- `results_url` (string): Page with the full transcript and downloads. No sign-in; share it only with people who should see the transcript.
- `status` (string)
- `transcript` (string): The transcript in paragraphs, with speaker labels when there is more than one voice.
- `transcript_truncated` (boolean): True when only the first part is included here; the results page has all of it.
- `transcription_id` (string): Pass to transcription_status or email_transcript.
- `word_count` (integer)

### `email_transcript` (~120 tokens)

Email a transcript

Use this only when the user explicitly asks for a finished transcript to be emailed to them. Needs a Slice sign-in, asked for on first use, and sends the .txt, .srt and .vtt files only to the confirmed email address on that Slice account, never to another address. Each transcript can be emailed one time, and only from the conversation or account that made it. Do not use to send a transcript to somebody else; share the results page instead.

Input parameters:

- `transcription_id` (string, required): The transcription_id of a finished transcript.

Output parameters:

- `message` (string)
- `status` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-tryslicemedia-slice/mcp#diagnostics

## Score history

- 2026-10-17: 77

## Common questions

### What is the Slice MCP server?

Slice is an MCP server listed in the public MCP registry as com.tryslicemedia/slice. Turn long podcast episodes, video or audio, into captioned vertical clips and transcripts. This page covers its hosted endpoint (https://mcp.tryslicemedia.com/mcp).

### Is the Slice MCP server safe to use?

Slice 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 Slice MCP server expose?

Slice exposes 11 tools: start_episode, get_episode, make_clips, get_job, restyle_clip, and 6 more. Their descriptions and schemas cost roughly 2,617 tokens of context every time the server is loaded.

### Does the Slice MCP server require authentication?

Yes. Slice asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Slice MCP server still maintained?

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

## Links

- Remote endpoint: https://mcp.tryslicemedia.com/mcp
- Website: https://tryslicemedia.com/agents
- Changelog RSS feed: https://verifymcp.io/servers/com-tryslicemedia-slice/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-tryslicemedia-slice/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-tryslicemedia-slice/mcp
