katto-mcp 0.5.6 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/QUICKSTART.md +35 -35
- package/README.md +128 -128
- package/SKILL.md +45 -45
- package/index.mjs +397 -397
- package/package.json +4 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Katto (https://katto.tech)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Katto (https://katto.tech)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/QUICKSTART.md
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# Katto — 60-second quickstart
|
|
2
|
-
|
|
3
|
-
Turn a long video into captioned 9:16 short clips from your assistant, your terminal, or
|
|
4
|
-
your code. **One quota** (Creator: 25 videos/mo, ≤90 min each · Free: 2/mo), shared across
|
|
5
|
-
all three. Create a key at https://katto.tech/dashboard/api-keys (keys can be read-only).
|
|
6
|
-
|
|
7
|
-
## MCP — in Claude, Cursor, ChatGPT
|
|
8
|
-
Hosted, zero-install, OAuth 2.1:
|
|
9
|
-
```json
|
|
10
|
-
{ "mcpServers": { "katto": { "url": "https://mcp.katto.tech/mcp" } } }
|
|
11
|
-
```
|
|
12
|
-
Then just ask: *"Clip the best 6 moments from <url> and caption them."*
|
|
13
|
-
Prefer local? `npx -y katto-mcp` with `KATTO_API_KEY=sk_live_...`.
|
|
14
|
-
|
|
15
|
-
## CLI — in your terminal or a cron
|
|
16
|
-
```bash
|
|
17
|
-
npm i -g katto-cli
|
|
18
|
-
katto login # or set KATTO_API_KEY=sk_live_...
|
|
19
|
-
katto clip <url> --clips 6 --wait --json | jq '.clips[].url'
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## REST API — in your product
|
|
23
|
-
```bash
|
|
24
|
-
curl -X POST https://katto.tech/api/v1/jobs \
|
|
25
|
-
-H "Authorization: Bearer sk_live_..." \
|
|
26
|
-
-H "Idempotency-Key: $(uuidgen)" \
|
|
27
|
-
-H "Content-Type: application/json" \
|
|
28
|
-
-d '{"url":"https://youtube.com/watch?v=..."}'
|
|
29
|
-
# → { "job_id": "..." }
|
|
30
|
-
# then poll GET /v1/jobs/{id}, or pass a "webhook_url" for a signed completion callback.
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
What comes back: finished clips (MP4 + SRT captions + a title and a 0–100 score), 9:16,
|
|
34
|
-
word-timed captions, reframed. Re-render the layout/caption style or dub into
|
|
35
|
-
for free (no quota). Full reference: https://katto.tech/docs/api
|
|
1
|
+
# Katto — 60-second quickstart
|
|
2
|
+
|
|
3
|
+
Turn a long video into captioned 9:16 short clips from your assistant, your terminal, or
|
|
4
|
+
your code. **One quota** (Creator: 25 videos/mo, ≤90 min each · Free: 2/mo), shared across
|
|
5
|
+
all three. Create a key at https://katto.tech/dashboard/api-keys (keys can be read-only).
|
|
6
|
+
|
|
7
|
+
## MCP — in Claude, Cursor, ChatGPT
|
|
8
|
+
Hosted, zero-install, OAuth 2.1:
|
|
9
|
+
```json
|
|
10
|
+
{ "mcpServers": { "katto": { "url": "https://mcp.katto.tech/mcp" } } }
|
|
11
|
+
```
|
|
12
|
+
Then just ask: *"Clip the best 6 moments from <url> and caption them."*
|
|
13
|
+
Prefer local? `npx -y katto-mcp` with `KATTO_API_KEY=sk_live_...`.
|
|
14
|
+
|
|
15
|
+
## CLI — in your terminal or a cron
|
|
16
|
+
```bash
|
|
17
|
+
npm i -g katto-cli
|
|
18
|
+
katto login # or set KATTO_API_KEY=sk_live_...
|
|
19
|
+
katto clip <url> --clips 6 --wait --json | jq '.clips[].url'
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## REST API — in your product
|
|
23
|
+
```bash
|
|
24
|
+
curl -X POST https://katto.tech/api/v1/jobs \
|
|
25
|
+
-H "Authorization: Bearer sk_live_..." \
|
|
26
|
+
-H "Idempotency-Key: $(uuidgen)" \
|
|
27
|
+
-H "Content-Type: application/json" \
|
|
28
|
+
-d '{"url":"https://youtube.com/watch?v=..."}'
|
|
29
|
+
# → { "job_id": "..." }
|
|
30
|
+
# then poll GET /v1/jobs/{id}, or pass a "webhook_url" for a signed completion callback.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
What comes back: finished clips (MP4 + SRT captions + a title and a 0–100 score), 9:16,
|
|
34
|
+
word-timed captions, reframed. Re-render the layout/caption style or dub into 19 languages
|
|
35
|
+
for free (no quota). Full reference: https://katto.tech/docs/api
|
package/README.md
CHANGED
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
# katto-mcp
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/katto-mcp)
|
|
4
|
-
[](https://www.npmjs.com/package/katto-mcp)
|
|
5
|
-
[](./LICENSE)
|
|
6
|
-
[](https://registry.modelcontextprotocol.io)
|
|
7
|
-
|
|
8
|
-
**The AI video clipping MCP server.** Turn long videos into scored, captioned, vertical 9:16 short clips from any MCP client (Claude, Cursor, Claude Code, ChatGPT, VS Code, and other conformant clients). Drop in a YouTube link, a podcast, or a Twitch VOD and get publish-ready shorts back through natural conversation.
|
|
9
|
-
|
|
10
|
-
Powered by [Katto](https://katto.tech), an AI video clipper that turns long-form video (podcasts, interviews, streams, webinars) into short-form clips for TikTok, Reels and YouTube Shorts. Katto is a flat-priced, no-credits alternative to tools like OpusClip: one 25-video quota covers videos up to 90 minutes each, with the API and MCP included on every paid plan (not gated behind an enterprise tier).
|
|
11
|
-
|
|
12
|
-
## What it does
|
|
13
|
-
|
|
14
|
-
Ask your agent something like *"clip the best moments from this podcast and reframe them for TikTok"* and Katto will:
|
|
15
|
-
|
|
16
|
-
- find the strongest 30 to 90 second moments in a long video and score each clip 0 to 100 on Hook, Flow, Value and Trend,
|
|
17
|
-
- reframe to vertical 9:16 with face tracking, split-screen for two speakers, and stacked layouts for gaming,
|
|
18
|
-
- burn animated captions (auto-captioned in 99 languages via Whisper large-v3; word-by-word timing in 41 of them, sentence-level in the rest) and optionally dub into
|
|
19
|
-
- and hand back publish-ready MP4 files plus SRT caption urls.
|
|
20
|
-
|
|
21
|
-
Typical uses: repurpose a YouTube video into shorts, turn a podcast episode into clips, cut highlights from a Twitch VOD, or convert a long interview into vertical social posts.
|
|
22
|
-
|
|
23
|
-
## Two ways to connect
|
|
24
|
-
|
|
25
|
-
### Hosted (zero-install, recommended)
|
|
26
|
-
|
|
27
|
-
Point any OAuth-capable MCP client at the hosted endpoint and sign in with your Katto account. The API key never touches your disk, and you can revoke access anytime:
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
https://mcp.katto.tech/mcp (Streamable HTTP, OAuth 2.1)
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Local (npx)
|
|
34
|
-
|
|
35
|
-
For Cursor, CI and scripts. Create an API key at **[katto.tech/dashboard/api-keys](https://katto.tech/dashboard/api-keys)**, then add the server to your MCP client config:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{
|
|
39
|
-
"mcpServers": {
|
|
40
|
-
"katto": {
|
|
41
|
-
"command": "npx",
|
|
42
|
-
"args": ["-y", "katto-mcp"],
|
|
43
|
-
"env": { "KATTO_API_KEY": "sk_live_..." }
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
The hosted endpoint above also accepts `Authorization: Bearer sk_live_...` directly for key-based clients.
|
|
50
|
-
|
|
51
|
-
## Install per client
|
|
52
|
-
|
|
53
|
-
**Claude Code** (hosted, OAuth):
|
|
54
|
-
```bash
|
|
55
|
-
claude mcp add --transport http katto https://mcp.katto.tech/mcp
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Claude Desktop** — Settings → Connectors → *Add custom connector* → `https://mcp.katto.tech/mcp`, then sign in. (Or add the `npx` block above to `claude_desktop_config.json`.)
|
|
59
|
-
|
|
60
|
-
**Cursor** — Settings → MCP → *Add* → paste the `npx` JSON block above (uses `KATTO_API_KEY`).
|
|
61
|
-
|
|
62
|
-
**VS Code** (MCP extension) — add the same `npx` block to your MCP settings, or point it at the hosted URL if your client supports remote OAuth servers.
|
|
63
|
-
|
|
64
|
-
**ChatGPT** (Developer mode / connectors) — add a custom connector with URL `https://mcp.katto.tech/mcp`.
|
|
65
|
-
|
|
66
|
-
## Tools
|
|
67
|
-
|
|
68
|
-
Clipping:
|
|
69
|
-
- **`katto_create_clip_job(url, config?)`** clip a long video (YouTube, Twitch, Vimeo, Rumble, Zoom, Dailymotion). Returns a job id.
|
|
70
|
-
- **`katto_get_job(id)`** poll until `status` is `completed`; `clips` holds the finished MP4 + caption (SRT) urls.
|
|
71
|
-
- **`katto_get_clips(id)`** just the finished clips of a job (MP4 + SRT + title + virality score).
|
|
72
|
-
- **`katto_get_transcript(id)`** the job's timestamped transcript segments.
|
|
73
|
-
- **`katto_list_jobs(limit?, cursor?, status?)`** your recent jobs, newest first (keyset pagination).
|
|
74
|
-
- **`katto_cancel_job(id)`** cancel a running job and refund the monthly video slot.
|
|
75
|
-
|
|
76
|
-
Editing (no quota):
|
|
77
|
-
- **`katto_rerender_clip(id, clip_index, layout_mode?, caption_style?)`** re-render one clip with a new reframe layout or caption style.
|
|
78
|
-
- **`katto_dub_clip(id, clip_index, languages)`** re-render a clip dubbed into one or more of
|
|
79
|
-
- **`katto_get_rerender(id, rerender_id)`** poll a re-render for the new versioned clip url.
|
|
80
|
-
|
|
81
|
-
Account and reference:
|
|
82
|
-
- **`katto_get_usage()`** your plan and remaining monthly video quota.
|
|
83
|
-
- **`katto_get_account()`** the connected account, this key's scopes, and quota.
|
|
84
|
-
- **`katto_get_brand_kit()`** your saved brand kits (colors, caption font, layout, watermark).
|
|
85
|
-
- **`katto_get_webhook_secret()`** your webhook signing secret and how to verify signed callbacks (returns a secret — treat it like a credential).
|
|
86
|
-
- **`katto_list_sources()`** the video platforms Katto can clip from, with an example url each.
|
|
87
|
-
- **`katto_list_clip_lengths()`** the valid target clip-length buckets.
|
|
88
|
-
- **`katto_list_caption_styles()`** the caption-style presets you can pass as `caption_style` when creating a job or re-rendering a clip.
|
|
89
|
-
|
|
90
|
-
Jobs draw from your Katto plan's monthly video quota (25 on Creator, 2 on Free), videos up to 90 minutes. The underlying REST API also supports `Idempotency-Key` safe retries, read-only scoped keys, and signed HMAC webhooks. See the [docs](https://katto.tech/docs/api).
|
|
91
|
-
|
|
92
|
-
## Env
|
|
93
|
-
|
|
94
|
-
| var | required | default |
|
|
95
|
-
| --- | --- | --- |
|
|
96
|
-
| `KATTO_API_KEY` | yes | (none) |
|
|
97
|
-
| `KATTO_API_URL` | no | `https://katto.tech` |
|
|
98
|
-
|
|
99
|
-
Full docs: **[katto.tech/docs/api](https://katto.tech/docs/api)**
|
|
100
|
-
|
|
101
|
-
## Security & data
|
|
102
|
-
|
|
103
|
-
- **Hosted auth is OAuth 2.1** — the API key is never written to your disk, and you can revoke a connected client anytime from your Katto account settings.
|
|
104
|
-
- **Local auth uses a scoped `sk_live_` key** you create yourself; keys can be read-only, and the npx server only sends it to `KATTO_API_URL` (default `katto.tech`) over HTTPS.
|
|
105
|
-
- `katto_get_webhook_secret` returns a signing secret — handle it like any credential; it is only needed to verify inbound webhook signatures.
|
|
106
|
-
|
|
107
|
-
## Also listed on
|
|
108
|
-
|
|
109
|
-
- npm: [katto-mcp](https://www.npmjs.com/package/katto-mcp)
|
|
110
|
-
- GitHub: [miracleweasel/katto-mcp](https://github.com/miracleweasel/katto-mcp)
|
|
111
|
-
- [mcp.so](https://mcp.so/servers/katto) · [Smithery](https://smithery.ai/server/@dev-4lue/katto-mcp) · [Glama](https://glama.ai/mcp/servers/@miracleweasel/katto-mcp)
|
|
112
|
-
- Official MCP Registry: `io.github.miracleweasel/katto-mcp`
|
|
113
|
-
|
|
114
|
-
## Public Discovery
|
|
115
|
-
|
|
116
|
-
Katto – AI video clipping MCP server: turn long videos and podcasts into scored, captioned, reframed 9:16 clips, from any MCP client (Claude, Cursor, ChatGPT). Hosted, OAuth 2.1, no API key on disk.
|
|
117
|
-
|
|
118
|
-
Intents this server covers: *AI video clipping MCP server*, *MCP server for short-form video*, *MCP to turn podcasts into clips*, *video clipping for AI agents (Claude / Cursor / ChatGPT)*.
|
|
119
|
-
|
|
120
|
-
Example prompts:
|
|
121
|
-
|
|
122
|
-
1. "Clip the best moments from this podcast episode and reframe them for TikTok: `https://youtube.com/watch?v=…`"
|
|
123
|
-
2. "Check the status of my last clipping job and give me the download links for the finished clips."
|
|
124
|
-
3. "Take clip 2 from that job, dub it into Spanish and re-render it with the Bold caption style."
|
|
125
|
-
|
|
126
|
-
## License
|
|
127
|
-
|
|
128
|
-
MIT — see [LICENSE](./LICENSE).
|
|
1
|
+
# katto-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/katto-mcp)
|
|
4
|
+
[](https://www.npmjs.com/package/katto-mcp)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
[](https://registry.modelcontextprotocol.io)
|
|
7
|
+
|
|
8
|
+
**The AI video clipping MCP server.** Turn long videos into scored, captioned, vertical 9:16 short clips from any MCP client (Claude, Cursor, Claude Code, ChatGPT, VS Code, and other conformant clients). Drop in a YouTube link, a podcast, or a Twitch VOD and get publish-ready shorts back through natural conversation.
|
|
9
|
+
|
|
10
|
+
Powered by [Katto](https://katto.tech), an AI video clipper that turns long-form video (podcasts, interviews, streams, webinars) into short-form clips for TikTok, Reels and YouTube Shorts. Katto is a flat-priced, no-credits alternative to tools like OpusClip: one 25-video quota covers videos up to 90 minutes each, with the API and MCP included on every paid plan (not gated behind an enterprise tier).
|
|
11
|
+
|
|
12
|
+
## What it does
|
|
13
|
+
|
|
14
|
+
Ask your agent something like *"clip the best moments from this podcast and reframe them for TikTok"* and Katto will:
|
|
15
|
+
|
|
16
|
+
- find the strongest 30 to 90 second moments in a long video and score each clip 0 to 100 on Hook, Flow, Value and Trend,
|
|
17
|
+
- reframe to vertical 9:16 with face tracking, split-screen for two speakers, and stacked layouts for gaming,
|
|
18
|
+
- burn animated captions (auto-captioned in 99 languages via Whisper large-v3; word-by-word timing in 41 of them, sentence-level in the rest) and optionally dub into 19 languages,
|
|
19
|
+
- and hand back publish-ready MP4 files plus SRT caption urls.
|
|
20
|
+
|
|
21
|
+
Typical uses: repurpose a YouTube video into shorts, turn a podcast episode into clips, cut highlights from a Twitch VOD, or convert a long interview into vertical social posts.
|
|
22
|
+
|
|
23
|
+
## Two ways to connect
|
|
24
|
+
|
|
25
|
+
### Hosted (zero-install, recommended)
|
|
26
|
+
|
|
27
|
+
Point any OAuth-capable MCP client at the hosted endpoint and sign in with your Katto account. The API key never touches your disk, and you can revoke access anytime:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
https://mcp.katto.tech/mcp (Streamable HTTP, OAuth 2.1)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Local (npx)
|
|
34
|
+
|
|
35
|
+
For Cursor, CI and scripts. Create an API key at **[katto.tech/dashboard/api-keys](https://katto.tech/dashboard/api-keys)**, then add the server to your MCP client config:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"mcpServers": {
|
|
40
|
+
"katto": {
|
|
41
|
+
"command": "npx",
|
|
42
|
+
"args": ["-y", "katto-mcp"],
|
|
43
|
+
"env": { "KATTO_API_KEY": "sk_live_..." }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The hosted endpoint above also accepts `Authorization: Bearer sk_live_...` directly for key-based clients.
|
|
50
|
+
|
|
51
|
+
## Install per client
|
|
52
|
+
|
|
53
|
+
**Claude Code** (hosted, OAuth):
|
|
54
|
+
```bash
|
|
55
|
+
claude mcp add --transport http katto https://mcp.katto.tech/mcp
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Claude Desktop** — Settings → Connectors → *Add custom connector* → `https://mcp.katto.tech/mcp`, then sign in. (Or add the `npx` block above to `claude_desktop_config.json`.)
|
|
59
|
+
|
|
60
|
+
**Cursor** — Settings → MCP → *Add* → paste the `npx` JSON block above (uses `KATTO_API_KEY`).
|
|
61
|
+
|
|
62
|
+
**VS Code** (MCP extension) — add the same `npx` block to your MCP settings, or point it at the hosted URL if your client supports remote OAuth servers.
|
|
63
|
+
|
|
64
|
+
**ChatGPT** (Developer mode / connectors) — add a custom connector with URL `https://mcp.katto.tech/mcp`.
|
|
65
|
+
|
|
66
|
+
## Tools
|
|
67
|
+
|
|
68
|
+
Clipping:
|
|
69
|
+
- **`katto_create_clip_job(url, config?)`** clip a long video (YouTube, Twitch, Vimeo, Rumble, Zoom, Dailymotion). Returns a job id.
|
|
70
|
+
- **`katto_get_job(id)`** poll until `status` is `completed`; `clips` holds the finished MP4 + caption (SRT) urls.
|
|
71
|
+
- **`katto_get_clips(id)`** just the finished clips of a job (MP4 + SRT + title + virality score).
|
|
72
|
+
- **`katto_get_transcript(id)`** the job's timestamped transcript segments.
|
|
73
|
+
- **`katto_list_jobs(limit?, cursor?, status?)`** your recent jobs, newest first (keyset pagination).
|
|
74
|
+
- **`katto_cancel_job(id)`** cancel a running job and refund the monthly video slot.
|
|
75
|
+
|
|
76
|
+
Editing (no quota):
|
|
77
|
+
- **`katto_rerender_clip(id, clip_index, layout_mode?, caption_style?)`** re-render one clip with a new reframe layout or caption style.
|
|
78
|
+
- **`katto_dub_clip(id, clip_index, languages)`** re-render a clip dubbed into one or more of 19 languages.
|
|
79
|
+
- **`katto_get_rerender(id, rerender_id)`** poll a re-render for the new versioned clip url.
|
|
80
|
+
|
|
81
|
+
Account and reference:
|
|
82
|
+
- **`katto_get_usage()`** your plan and remaining monthly video quota.
|
|
83
|
+
- **`katto_get_account()`** the connected account, this key's scopes, and quota.
|
|
84
|
+
- **`katto_get_brand_kit()`** your saved brand kits (colors, caption font, layout, watermark).
|
|
85
|
+
- **`katto_get_webhook_secret()`** your webhook signing secret and how to verify signed callbacks (returns a secret — treat it like a credential).
|
|
86
|
+
- **`katto_list_sources()`** the video platforms Katto can clip from, with an example url each.
|
|
87
|
+
- **`katto_list_clip_lengths()`** the valid target clip-length buckets.
|
|
88
|
+
- **`katto_list_caption_styles()`** the caption-style presets you can pass as `caption_style` when creating a job or re-rendering a clip.
|
|
89
|
+
|
|
90
|
+
Jobs draw from your Katto plan's monthly video quota (25 on Creator, 2 on Free), videos up to 90 minutes. The underlying REST API also supports `Idempotency-Key` safe retries, read-only scoped keys, and signed HMAC webhooks. See the [docs](https://katto.tech/docs/api).
|
|
91
|
+
|
|
92
|
+
## Env
|
|
93
|
+
|
|
94
|
+
| var | required | default |
|
|
95
|
+
| --- | --- | --- |
|
|
96
|
+
| `KATTO_API_KEY` | yes | (none) |
|
|
97
|
+
| `KATTO_API_URL` | no | `https://katto.tech` |
|
|
98
|
+
|
|
99
|
+
Full docs: **[katto.tech/docs/api](https://katto.tech/docs/api)**
|
|
100
|
+
|
|
101
|
+
## Security & data
|
|
102
|
+
|
|
103
|
+
- **Hosted auth is OAuth 2.1** — the API key is never written to your disk, and you can revoke a connected client anytime from your Katto account settings.
|
|
104
|
+
- **Local auth uses a scoped `sk_live_` key** you create yourself; keys can be read-only, and the npx server only sends it to `KATTO_API_URL` (default `katto.tech`) over HTTPS.
|
|
105
|
+
- `katto_get_webhook_secret` returns a signing secret — handle it like any credential; it is only needed to verify inbound webhook signatures.
|
|
106
|
+
|
|
107
|
+
## Also listed on
|
|
108
|
+
|
|
109
|
+
- npm: [katto-mcp](https://www.npmjs.com/package/katto-mcp)
|
|
110
|
+
- GitHub: [miracleweasel/katto-mcp](https://github.com/miracleweasel/katto-mcp)
|
|
111
|
+
- [mcp.so](https://mcp.so/servers/katto) · [Smithery](https://smithery.ai/server/@dev-4lue/katto-mcp) · [Glama](https://glama.ai/mcp/servers/@miracleweasel/katto-mcp)
|
|
112
|
+
- Official MCP Registry: `io.github.miracleweasel/katto-mcp`
|
|
113
|
+
|
|
114
|
+
## Public Discovery
|
|
115
|
+
|
|
116
|
+
Katto – AI video clipping MCP server: turn long videos and podcasts into scored, captioned, reframed 9:16 clips, from any MCP client (Claude, Cursor, ChatGPT). Hosted, OAuth 2.1, no API key on disk.
|
|
117
|
+
|
|
118
|
+
Intents this server covers: *AI video clipping MCP server*, *MCP server for short-form video*, *MCP to turn podcasts into clips*, *video clipping for AI agents (Claude / Cursor / ChatGPT)*.
|
|
119
|
+
|
|
120
|
+
Example prompts:
|
|
121
|
+
|
|
122
|
+
1. "Clip the best moments from this podcast episode and reframe them for TikTok: `https://youtube.com/watch?v=…`"
|
|
123
|
+
2. "Check the status of my last clipping job and give me the download links for the finished clips."
|
|
124
|
+
3. "Take clip 2 from that job, dub it into Spanish and re-render it with the Bold caption style."
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
MIT — see [LICENSE](./LICENSE).
|
package/SKILL.md
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: katto-clip
|
|
3
|
-
description: Turn a long video (a YouTube / Twitch / Vimeo / Rumble / Zoom / Dailymotion link, or an upload) into scored, captioned, 9:16 short clips using Katto's cloud pipeline. Use when the user wants to clip, repurpose, or make shorts from long-form video, or to dub / re-render an existing clip.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Katto clipping skill
|
|
7
|
-
|
|
8
|
-
Katto runs the whole pipeline in its cloud — download → transcript → moment scoring →
|
|
9
|
-
cut → captions → reframe → optional dub → publish. You trigger it; nothing renders on
|
|
10
|
-
the local machine.
|
|
11
|
-
|
|
12
|
-
## Connect
|
|
13
|
-
- **Hosted MCP (recommended, zero-install):** point the client at `https://mcp.katto.tech/mcp`
|
|
14
|
-
(OAuth 2.1 + Dynamic Client Registration; no key on disk).
|
|
15
|
-
- **Local:** `npx -y katto-mcp` with `KATTO_API_KEY=sk_live_...` (Cursor, CI, cron).
|
|
16
|
-
- Tools are prefixed `katto_`. `tools/list` works without a key; every tool **call** needs a key.
|
|
17
|
-
|
|
18
|
-
## Core flow
|
|
19
|
-
1. `katto_create_clip_job({ url, config? })` → returns a `job_id`. Spends **1 video** from the
|
|
20
|
-
monthly quota. Pass an idempotency key so a retry never double-spends.
|
|
21
|
-
2. Poll `katto_get_job({ id })` until `status` is `"completed"`.
|
|
22
|
-
3. `katto_get_clips({ id })` → finished clips (MP4 url + SRT + title + score 0–100).
|
|
23
|
-
|
|
24
|
-
## Editing — never counts against quota
|
|
25
|
-
- `katto_rerender_clip({ id, clip_index, layout_mode?, caption_style? })`, then `katto_get_rerender(...)`.
|
|
26
|
-
- `katto_dub_clip({ id, clip_index, languages })` → dub into any of **
|
|
27
|
-
|
|
28
|
-
## Reference / account
|
|
29
|
-
- `katto_get_usage`, `katto_get_account` — remaining quota, plan, this key's scopes.
|
|
30
|
-
- `katto_list_sources` (accepted platforms), `katto_list_clip_lengths` (valid length buckets).
|
|
31
|
-
- `katto_get_transcript` (timestamped), `katto_get_brand_kit`, `katto_get_webhook_secret` (treat as a credential).
|
|
32
|
-
|
|
33
|
-
## Rules of the road
|
|
34
|
-
- **One quota**, shared with the app / API / CLI: Creator = 25 videos/month, ≤90 min each; Free = 2/month.
|
|
35
|
-
Re-renders
|
|
36
|
-
- Captions: **99 languages** (word-timed in 41, sentence-level in the rest). Dubbing: **
|
|
37
|
-
- **Don't invent timings.** The only measured figure is ~5 minutes for 8 clips on a 20-minute video;
|
|
38
|
-
longer sources take longer. Say that, not a number you'd like.
|
|
39
|
-
|
|
40
|
-
## Example
|
|
41
|
-
User: *"Clip the best 6 moments from this podcast, then dub clip 2 in Spanish."*
|
|
42
|
-
→ `katto_create_clip_job(url, { clips: 6 })` → poll `katto_get_job` → `katto_get_clips`
|
|
43
|
-
→ `katto_dub_clip(id, 2, ["es"])` → `katto_get_rerender`.
|
|
44
|
-
|
|
45
|
-
Full reference: https://katto.tech/docs/api · OpenAPI: https://katto.tech/openapi.json
|
|
1
|
+
---
|
|
2
|
+
name: katto-clip
|
|
3
|
+
description: Turn a long video (a YouTube / Twitch / Vimeo / Rumble / Zoom / Dailymotion link, or an upload) into scored, captioned, 9:16 short clips using Katto's cloud pipeline. Use when the user wants to clip, repurpose, or make shorts from long-form video, or to dub / re-render an existing clip.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Katto clipping skill
|
|
7
|
+
|
|
8
|
+
Katto runs the whole pipeline in its cloud — download → transcript → moment scoring →
|
|
9
|
+
cut → captions → reframe → optional dub → publish. You trigger it; nothing renders on
|
|
10
|
+
the local machine.
|
|
11
|
+
|
|
12
|
+
## Connect
|
|
13
|
+
- **Hosted MCP (recommended, zero-install):** point the client at `https://mcp.katto.tech/mcp`
|
|
14
|
+
(OAuth 2.1 + Dynamic Client Registration; no key on disk).
|
|
15
|
+
- **Local:** `npx -y katto-mcp` with `KATTO_API_KEY=sk_live_...` (Cursor, CI, cron).
|
|
16
|
+
- Tools are prefixed `katto_`. `tools/list` works without a key; every tool **call** needs a key.
|
|
17
|
+
|
|
18
|
+
## Core flow
|
|
19
|
+
1. `katto_create_clip_job({ url, config? })` → returns a `job_id`. Spends **1 video** from the
|
|
20
|
+
monthly quota. Pass an idempotency key so a retry never double-spends.
|
|
21
|
+
2. Poll `katto_get_job({ id })` until `status` is `"completed"`.
|
|
22
|
+
3. `katto_get_clips({ id })` → finished clips (MP4 url + SRT + title + score 0–100).
|
|
23
|
+
|
|
24
|
+
## Editing — never counts against quota
|
|
25
|
+
- `katto_rerender_clip({ id, clip_index, layout_mode?, caption_style? })`, then `katto_get_rerender(...)`.
|
|
26
|
+
- `katto_dub_clip({ id, clip_index, languages })` → dub into any of **19 languages**: en, es, fr, it, pt, hi, ja, zh, de, ko, nl, pl, ru, tr, id, vi, th, uk, ar.
|
|
27
|
+
|
|
28
|
+
## Reference / account
|
|
29
|
+
- `katto_get_usage`, `katto_get_account` — remaining quota, plan, this key's scopes.
|
|
30
|
+
- `katto_list_sources` (accepted platforms), `katto_list_clip_lengths` (valid length buckets).
|
|
31
|
+
- `katto_get_transcript` (timestamped), `katto_get_brand_kit`, `katto_get_webhook_secret` (treat as a credential).
|
|
32
|
+
|
|
33
|
+
## Rules of the road
|
|
34
|
+
- **One quota**, shared with the app / API / CLI: Creator = 25 videos/month, ≤90 min each; Free = 2/month.
|
|
35
|
+
Re-renders are free; dubbing is a Creator feature.
|
|
36
|
+
- Captions: **99 languages** (word-timed in 41, sentence-level in the rest). Dubbing: **19**. Publish: **7 platforms**.
|
|
37
|
+
- **Don't invent timings.** The only measured figure is ~5 minutes for 8 clips on a 20-minute video;
|
|
38
|
+
longer sources take longer. Say that, not a number you'd like.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
User: *"Clip the best 6 moments from this podcast, then dub clip 2 in Spanish."*
|
|
42
|
+
→ `katto_create_clip_job(url, { clips: 6 })` → poll `katto_get_job` → `katto_get_clips`
|
|
43
|
+
→ `katto_dub_clip(id, 2, ["es"])` → `katto_get_rerender`.
|
|
44
|
+
|
|
45
|
+
Full reference: https://katto.tech/docs/api · OpenAPI: https://katto.tech/openapi.json
|