katto-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KATTO_API_KEY | Yes | Your Katto API key, required to authenticate with the Katto REST API. | |
| KATTO_API_URL | No | Base URL for the Katto API. | https://katto.tech |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| katto_create_clip_jobA | Submit a long video (YouTube, Twitch, Vimeo, Rumble, Zoom, Dailymotion) for clipping. Consumes 1 video from your monthly quota — check katto_get_usage first. Clips are produced asynchronously; returns a job id, then poll katto_get_job until status is 'completed'. Fails if the URL is unsupported or the video is over 90 minutes. |
| katto_get_jobA | Read-only. Get the status, progress and clips of a job by id. Clips come ranked by virality score (0-100, highest first; ties broken by clip_index). Each clip is { url, captions_url, title, score, clip_index, hd }: when status is 'completed' every url is a finished, downloadable clip; hd is true once the 1080p high-quality render is ready. hd=false does NOT mean broken — the url already works, the 1080p is just still rendering in the background (and stays the standard render on the free plan). The job-level hd_ready flag turns true once every clip is hd, i.e. the URLs are final and won't be swapped again (status='completed' fires earlier). Returns 404 for an unknown id. |
| katto_list_jobsA | Read-only. List your recent jobs, newest first. Paginate with 'cursor' (pass the previous next_cursor); optional 'status' filter. Returns { jobs: [{id, status, source, created_at, completed_at}], next_cursor }. |
| katto_get_clipsA | Read-only convenience: the clips of a job as { url, captions_url, title, score, clip_index, hd }, ranked by score (highest first). hd=true means the 1080p render is ready; hd=false means the url is the standard render (HD still finishing, or the free plan). Empty until the first clip is ready. |
| katto_get_usageA | Read-only. Your current plan and monthly video quota: { plan, videos_used, videos_limit, videos_remaining }. Call before katto_create_clip_job to confirm remaining quota. |
| katto_get_transcriptA | Read-only. The transcript of a completed job as timestamped segments [{ start, end, text }]. Returns 404 while the job is still processing. |
| katto_cancel_jobA | Cancel a still-running job (queued/processing) and refund the video back to your monthly quota. Safe to retry (idempotent). Returns an error if the job already finished, failed, or was cancelled. |
| katto_get_accountA | Read-only. The account behind this key: plan, this key's scopes (read/write), and monthly quota { videos_used, videos_limit, videos_remaining }. |
| katto_list_sourcesA | Read-only. The video platforms Katto can clip from, each with an example URL. Use it to confirm a URL is supported before calling katto_create_clip_job. |
| katto_list_clip_lengthsA | Read-only. The valid values for the optional config.clipLength on katto_create_clip_job (target clip-duration buckets). Note: clipLength is fixed at creation and cannot be changed by re-render. |
| katto_list_caption_stylesA | Read-only. The valid caption_style preset names for katto_rerender_clip (id + label), e.g. 'hormozi' for bold word-by-word highlight. Call this before re-rendering so you pass a real preset instead of guessing. |
| katto_rerender_clipA | Re-render one already-finished clip with a new reframe layout and/or caption style (get valid caption_style values from katto_list_caption_styles). Free — does NOT use video quota. Each call starts a new render (not idempotent); the original clip is kept. Returns a rerender_id; poll katto_get_rerender for the new clip url. |
| katto_dub_clipA | Re-render one finished clip dubbed into one or more of 8 languages (en, es, fr, it, pt, hi, ja, zh). Free — does NOT use video quota. Each call starts a new render (not idempotent). Returns a rerender_id; poll katto_get_rerender for the result. |
| katto_get_rerenderA | Read-only. Poll a re-render started by katto_rerender_clip or katto_dub_clip. Returns { status, clip_url, captions_url } — clip_url is null until status is 'completed'. |
| katto_get_brand_kitA | Read-only. Your saved brand kits (colors, caption font and position, default layout, watermark url). |
| katto_get_webhook_secretA | Read-only. Returns your webhook signing SECRET — treat it as a credential (do not display or log it) — plus how to verify Katto's signed completion callbacks (HMAC-SHA256 of {timestamp}.{body}). Pass webhook_url on a job to receive them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Several tools have overlapping purposes: katto_get_account and katto_get_usage both return quota/plan details, and katto_get_job already includes clips while katto_get_clips exists as a separate convenience. This could cause an agent to select the wrong tool when a single resource is exposed through multiple endpoints.
Names mostly follow a consistent katto_verb_noun pattern, but there is a minor inconsistency: collection-returning tools use both 'list' (katto_list_jobs, katto_list_sources) and 'get' (katto_get_clips), and katto_get_account vs katto_get_usage are semantically close despite different names.
16 tools is slightly above the typical 3-15 range, but each tool maps to a clear API operation and the set does not feel bloated. The count is reasonable for a video-clipping service with listing, job management, rendering, and account endpoints.
The toolset covers the main lifecycle: create/list/get/cancel jobs, retrieve clips and transcripts, rerender/dub clips, poll rerenders, and check account/usage. There are minor redundancies rather than major gaps, though a dedicated single-clip fetch or rerender listing could be considered missing.