Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation4/5

get_transcript is clearly distinct (captions vs. audio cutting), and the cut_audio vs. retrim_clip boundary is explicitly clarified ('to cut something new, use cut_audio'). The two cutting tools still overlap conceptually, so an agent must read carefully, but the descriptions resolve most ambiguity.

Naming Consistency5/5

All three tools follow a clean snake_case verb_noun pattern (cut_audio, get_transcript, retrim_clip). No mixed conventions or vague verbs; the pattern is predictable and readable.

Tool Count4/5

Three tools is on the lean side but well-scoped for a focused audio-cutting service: extract, transcribe, and re-trim. It earns each tool's place without bloat, though the surface is thin enough that some users might want more.

Completeness4/5

The core lifecycle of fetch URL -> get transcript -> cut -> re-trim is covered, and expiry/format/lang edge cases are handled. Minor gaps exist (no way to list or manage existing clips or check job status), but agents can work around these.

Available Tools

3 tools
cut_audioCut audioAInspect

Cut audio from a YouTube, TikTok, Instagram, or SoundCloud 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesYouTube, TikTok, Instagram, or SoundCloud URL to cut
formatNoDownload format; default mp3
contextYesOne short sentence on what the user is trying to do with this audio (for example 'ringtone from the chorus'). No links, names or personal details.
end_secNoRange end in seconds
llm_modelYesThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
start_secNoRange start in seconds
duration_secNoClip length in seconds from start_sec (default 0) when end_sec is omitted
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fullYes
peaksYes
titleYes
formatYes
clip_idYes
end_secNo
filenameYes
start_secNo
editor_urlYes
expires_atYes
download_urlYes
track_duration_secYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the read/write/open-world profile; the description adds real operational context beyond them — links expire after about an hour and a re-request yields a fresh cut, and clip_id/peaks are internal fields that must not be surfaced to the user. Auth requirements and rate limits are still unstated, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb, sources and return artifact, then batches agent-facing instructions (link preference, expiry, hidden fields, widget re-read) into compact sentences. Every sentence carries instruction value, though the density of imperatives makes it slightly heavier than an ideal terse definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description still covers expiry, hidden fields, default format and full-track behavior. The one real gap is sibling routing against retrim_clip for re-cutting an existing clip, which the description does not address.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description does add non-schema behavior: omitting start_sec and end_sec yields the full track, and it reinforces the mp3 default with wav as the allowed alternative. It does not explain the start_sec/duration_sec/end_sec precedence, which the schema only partially clarifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (cut) and resource (audio) plus the supported source platforms and the artifact returned (a short-lived download link). It does not, however, differentiate itself from the sibling retrim_clip, which also produces clips — an agent must infer the boundary from context rather than the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-do-what rules: omit start_sec/end_sec for the full track, offer editor_url when the user wants to tweak the selection, and re-read widget context after an in-card adjustment. It never names retrim_clip or states when that alternative should be preferred, so routing between the two siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcriptGet transcriptA
Read-only
Inspect

Fetch timestamped captions for a YouTube, TikTok, Instagram, or SoundCloud 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesYouTube, TikTok, Instagram, or SoundCloud URL to fetch captions for
langNoOptional BCP-47 caption language (default en)
contextYesOne short sentence on what the user is trying to do with this audio (for example 'ringtone from the chorus'). No links, names or personal details.
llm_modelYesThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
langYes
textYes
sourceYes
segmentsYes
availableYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, destructiveHint=false, openWorldHint), but the description adds real behavioral context: what happens when captions are unavailable, that no job_id is returned, and the anti-hallucination constraint. This goes well beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by the downstream workflow, the failure case, and the one param note. Every sentence carries non-redundant information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained; the description still covers the sibling handoff, the unavailable-captions case, and the lang default. Complete for an agent to invoke correctly and act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url, lang, context, llm_model, and conversation_id in detail. The description restates lang (BCP-47, default en) but adds nothing beyond the schema for any parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (timestamped captions) and names the platforms it supports (YouTube, TikTok, Instagram, SoundCloud). It also implicitly distinguishes itself from cut_audio by describing the fetch-then-cut workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes to the sibling: use segment start_sec/end_sec then call cut_audio with the same URL and times. It also covers the failure path (available is false) with concrete guidance not to invent lyrics or timestamps and to tell the user to pick times another way.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrim_clipAdjust clipAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoDownload format; default the clip's current format
clip_idYesclip_id from a cut_audio result
contextNoOptional: why the clip is being re-cut
end_secYesNew range end in seconds
llm_modelNoOptional: the model making this call
start_secYesNew range start in seconds
conversation_idNoPass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fullYes
peaksYes
titleYes
formatYes
clip_idYes
end_secNo
filenameYes
start_secNo
editor_urlYes
expires_atYes
download_urlYes
track_duration_secYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the audio is reused rather than re-extracted, and the tool is invoked from the interactive card. It stops short of saying whether the prior clip is overwritten or whether clip_id remains valid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the operation and its reuse-of-audio behavior front-loaded before the routing hint to cut_audio.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers purpose, alternative routing, and invocation source. It leaves minor gaps about the fate of the original clip and whether the re-cut replaces or versions it, which matters for a non-read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented, including the conversation_id protocol and format default. The description's 'new start/end' merely restates start_sec/end_sec and adds no syntax or constraint detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (re-cut), resource (clip), and the resulting scope (new start/end), and explicitly distinguishes itself from the sibling cut_audio. An agent can tell it apart from cut_audio and get_transcript without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative explicitly ('to cut something new, use cut_audio') and gives the invocation context ('Called by the interactive card'), so the when-to-use and when-to-use-something-else conditions are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcut_audio1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"YouTube, TikTok, or Instagram URL to cut"New value: +"YouTube, TikTok, Instagram, or SoundCloud URL to cut"
    • Changedget_transcript1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"YouTube, TikTok, or Instagram URL to fetch captions for"New value: +"YouTube, TikTok, Instagram, or SoundCloud URL to fetch captions for"
  2. 3 tool updates
    • Changedcut_audio4 fields changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "One short sentence on what the user is trying to do with this audio (for example 'ringtone from the chorus'). No links, names or personal details.",
        +  "type": "string"
        +}
      • addedInput schema / properties / conversation_id
        Added value: +{
        +  "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.",
        +  "type": "string"
        +}
      • addedInput schema / properties / llm_model
        Added value: +{
        +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[
        +  "url",
        +  "context",
        +  "llm_model"
        +]
    • Changedget_transcript4 fields changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "One short sentence on what the user is trying to do with this audio (for example 'ringtone from the chorus'). No links, names or personal details.",
        +  "type": "string"
        +}
      • addedInput schema / properties / conversation_id
        Added value: +{
        +  "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.",
        +  "type": "string"
        +}
      • addedInput schema / properties / llm_model
        Added value: +{
        +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[
        +  "url",
        +  "context",
        +  "llm_model"
        +]
    • Changedretrim_clip3 fields changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Optional: why the clip is being re-cut",
        +  "type": "string"
        +}
      • addedInput schema / properties / conversation_id
        Added value: +{
        +  "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.",
        +  "type": "string"
        +}
      • addedInput schema / properties / llm_model
        Added value: +{
        +  "description": "Optional: the model making this call",
        +  "type": "string"
        +}
  3. 2 tool updates
    • Changedcut_audio5 fields changed
      • addedOutput schema / properties / clip_id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / filename
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / peaks
        Added value: +{
        +  "items": {
        +    "type": "number"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / track_duration_sec
        Added value: +{
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "title",
        -  "format",
        -  "full",
        -  "download_url",
        -  "editor_url",
        -  "expires_at"
        -]New value: +[
        +  "title",
        +  "format",
        +  "full",
        +  "download_url",
        +  "editor_url",
        +  "expires_at",
        +  "clip_id",
        +  "track_duration_sec",
        +  "filename",
        +  "peaks"
        +]
    • Addedretrim_clip
  4. 2 tool updates
    • First observedcut_audio
    • First observedget_transcript

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources