Samplecut

Cut audio from YouTube, TikTok or Instagram links to MP3/WAV, and fetch video transcripts.

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
100%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,190Tokens (tool definitions)
~3.3 KBTypical response size
Moderate attention impact (0.93% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "samplecut": {
      "url": "https://api.samplecut.app/mcp"
    }
  }
}

Remote endpoints

https://api.samplecut.app/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢cut_audio(url, start_sec, end_sec, duration_sec, format)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "YouTube, TikTok, or Instagram URL to cut"
    },
    "start_sec": {
      "description": "Range start in seconds",
      "type": "number",
      "minimum": 0
    },
    "end_sec": {
      "description": "Range end in seconds",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "duration_sec": {
      "description": "Clip length in seconds from start_sec (default 0) when end_sec is omitted",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "format": {
      "description": "Download format; default mp3",
      "type": "string",
      "enum": [
        "wav",
        "mp3"
      ]
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "format": {
      "type": "string",
      "enum": [
        "wav",
        "mp3"
      ]
    },
    "full": {
      "type": "boolean"
    },
    "download_url": {
      "type": "string"
    },
    "editor_url": {
      "type": "string"
    },
    "expires_at": {
      "type": "string"
    },
    "start_sec": {
      "type": "number"
    },
    "end_sec": {
      "type": "number"
    },
    "clip_id": {
      "type": "string"
    },
    "track_duration_sec": {
      "type": "number"
    },
    "filename": {
      "type": "string"
    },
    "peaks": {
      "type": "array",
      "items": {
        "type": "number"
      }
    }
  },
  "required": [
    "title",
    "format",
    "full",
    "download_url",
    "editor_url",
    "expires_at",
    "clip_id",
    "track_duration_sec",
    "filename",
    "peaks"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_transcript(url, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "description": "YouTube, TikTok, or Instagram URL to fetch captions for"
    },
    "lang": {
      "description": "Optional BCP-47 caption language (default en)",
      "type": "string",
      "minLength": 1,
      "maxLength": 32
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean"
    },
    "source": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "youtube_captions"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "segments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "start_sec": {
            "type": "number"
          },
          "end_sec": {
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "start_sec",
          "end_sec",
          "text"
        ],
        "additionalProperties": false
      }
    },
    "text": {
      "type": "string"
    }
  },
  "required": [
    "available",
    "source",
    "lang",
    "segments",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪retrim_clip(clip_id, start_sec, end_sec, format)

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",
  "properties": {
    "clip_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "clip_id from a cut_audio result"
    },
    "start_sec": {
      "type": "number",
      "minimum": 0,
      "description": "New range start in seconds"
    },
    "end_sec": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "New range end in seconds"
    },
    "format": {
      "description": "Download format; default the clip's current format",
      "type": "string",
      "enum": [
        "wav",
        "mp3"
      ]
    }
  },
  "required": [
    "clip_id",
    "start_sec",
    "end_sec"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "format": {
      "type": "string",
      "enum": [
        "wav",
        "mp3"
      ]
    },
    "full": {
      "type": "boolean"
    },
    "download_url": {
      "type": "string"
    },
    "editor_url": {
      "type": "string"
    },
    "expires_at": {
      "type": "string"
    },
    "start_sec": {
      "type": "number"
    },
    "end_sec": {
      "type": "number"
    },
    "clip_id": {
      "type": "string"
    },
    "track_duration_sec": {
      "type": "number"
    },
    "filename": {
      "type": "string"
    },
    "peaks": {
      "type": "array",
      "items": {
        "type": "number"
      }
    }
  },
  "required": [
    "title",
    "format",
    "full",
    "download_url",
    "editor_url",
    "expires_at",
    "clip_id",
    "track_duration_sec",
    "filename",
    "peaks"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools