MCP Server

Samplecut

app.samplecut/samplecut
Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Extracts and trims audio from YouTube, TikTok, and Instagram links and retrieves available video transcripts.

cut_audio
Cut audio
Cut audio from a YouTube, TikTok, or Instagram URL and return a short-lived download link. Lead with download_url for cut/download requests; offer editor_url when the user wants to tweak the selection. Links expire after about an hour — ask again in chat for a fresh cut if expired. Omit start_sec and end_sec for the full track. format defaults to mp3 (wav allowed). clip_id and peaks drive the interactive clip card some chat apps show; do not show them to the user. If the user adjusted the clip in the card, read the widget context for the current range and download link before answering follow-ups.
Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'YouTube, TikTok, or Instagram URL to cut'}, 'format': {'enum': ['wav', 'mp3'], 'type': 'string', 'description': 'Download format; default mp3'}, 'end_sec': {'type': 'number', 'description': 'Range end in seconds', 'exclusiveMinimum': 0}, 'start_sec': {'type': 'number', 'minimum': 0, 'description': 'Range start in seconds'}, 'duration_sec': {'type': 'number', 'description': 'Clip length in seconds from start_sec (default 0) when end_sec is omitted', 'exclusiveMinimum': 0}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'format', 'full', 'download_url', 'editor_url', 'expires_at', 'clip_id', 'track_duration_sec', 'filename', 'peaks'], 'properties': {'full': {'type': 'boolean'}, 'peaks': {'type': 'array', 'items': {'type': 'number'}}, 'title': {'type': 'string'}, 'format': {'enum': ['wav', 'mp3'], 'type': 'string'}, 'clip_id': {'type': 'string'}, 'end_sec': {'type': 'number'}, 'filename': {'type': 'string'}, 'start_sec': {'type': 'number'}, 'editor_url': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'download_url': {'type': 'string'}, 'track_duration_sec': {'type': 'number'}}, 'additionalProperties': False}
get_transcript
Get transcript
Fetch timestamped captions for a YouTube, TikTok, or Instagram URL when the platform provides them. Use segment start_sec/end_sec (or the flat text) to choose a cut range, then call cut_audio with the same URL and those times. When available is false there are no captions — do not invent lyrics or timestamps; tell the user to pick times another way. Optional lang is a BCP-47 code (default en). No job_id is returned.
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'YouTube, TikTok, or Instagram URL to fetch captions for'}, 'lang': {'type': 'string', 'maxLength': 32, 'minLength': 1, 'description': 'Optional BCP-47 caption language (default en)'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['available', 'source', 'lang', 'segments', 'text'], 'properties': {'lang': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'text': {'type': 'string'}, 'source': {'anyOf': [{'enum': ['youtube_captions'], 'type': 'string'}, {'type': 'null'}]}, 'segments': {'type': 'array', 'items': {'type': 'object', 'required': ['start_sec', 'end_sec', 'text'], 'properties': {'text': {'type': 'string'}, 'end_sec': {'type': 'number'}, 'start_sec': {'type': 'number'}}, 'additionalProperties': False}}, 'available': {'type': 'boolean'}}, 'additionalProperties': False}
retrim_clip
Adjust clip
Re-cut a clip from Samplecut's clip card to a new start/end, reusing the audio already extracted for it. Called by the interactive card; to cut something new, use cut_audio.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['clip_id', 'start_sec', 'end_sec'], 'properties': {'format': {'enum': ['wav', 'mp3'], 'type': 'string', 'description': "Download format; default the clip's current format"}, 'clip_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'clip_id from a cut_audio result'}, 'end_sec': {'type': 'number', 'description': 'New range end in seconds', 'exclusiveMinimum': 0}, 'start_sec': {'type': 'number', 'minimum': 0, 'description': 'New range start in seconds'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'format', 'full', 'download_url', 'editor_url', 'expires_at', 'clip_id', 'track_duration_sec', 'filename', 'peaks'], 'properties': {'full': {'type': 'boolean'}, 'peaks': {'type': 'array', 'items': {'type': 'number'}}, 'title': {'type': 'string'}, 'format': {'enum': ['wav', 'mp3'], 'type': 'string'}, 'clip_id': {'type': 'string'}, 'end_sec': {'type': 'number'}, 'filename': {'type': 'string'}, 'start_sec': {'type': 'number'}, 'editor_url': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'download_url': {'type': 'string'}, 'track_duration_sec': {'type': 'number'}}, 'additionalProperties': False}
Added
retrim_clip
Oct. 1, 2026, 2:40 a.m.
Added
get_transcript
Oct. 1, 2026, 2:40 a.m.
Added
cut_audio
Oct. 1, 2026, 2:40 a.m.