Skip to main content
ClaudeWave

MCP server for the AppsGolem YouTube cutter API — cut YouTube clips programmatically, or let an AI agent do it. npx appsgolem-mcp

MCP ServersRegistry oficial0 estrellas0 forksTypeScriptMITActualizado today
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Last scanned: 8/25/2026
Install in Claude Code / Claude Desktop
Method: NPX · appsgolem-mcp
Claude Code CLI
claude mcp add appsgolem-mcp -- npx -y appsgolem-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "appsgolem-mcp": {
      "command": "npx",
      "args": ["-y", "appsgolem-mcp"],
      "env": {
        "APPSGOLEM_API_KEY": "<appsgolem_api_key>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
APPSGOLEM_API_KEY
Casos de uso

Resumen de MCP Servers

# appsgolem-mcp (Node / TypeScript)

[![npm](https://img.shields.io/npm/v/appsgolem-mcp)](https://www.npmjs.com/package/appsgolem-mcp)

An [MCP](https://modelcontextprotocol.io) server for the **AppsGolem** YouTube
cutter API. It lets an AI agent (Claude Desktop, Claude Code, Cursor, …) cut
clips from YouTube videos — in any format the web cutter supports — and get a
direct download URL back. The REST logic lives in a small, dependency-light
client (`src/client.ts`); `src/server.ts` is the thin MCP tool layer over it.

> **Get your API key → [appsgolem.com/agents](https://appsgolem.com/agents)** — sign up, add prepaid
> credits, and generate a key (`ag_live_…`). That page also has copy-paste
> setup for Claude Code, Codex, Cursor, and any MCP client, plus a prompt
> cookbook.

## Requirements

- Node.js >= 18 (uses the global `fetch`).
- An AppsGolem API key (`ag_live_…`) — get one at
  **[appsgolem.com/agents](https://appsgolem.com/agents)** (sign up → add credits → generate a key in
  your dashboard). Credits are prepaid; buy a pack or a subscription, no
  auto-renewal required.

## Install / connect (no manual install)

`npx` fetches and runs the server on demand — nothing to install globally.

**Claude Desktop / Cursor** — add to the client's MCP config (e.g.
`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "appsgolem": {
      "command": "npx",
      "args": ["-y", "appsgolem-mcp"],
      "env": { "APPSGOLEM_API_KEY": "ag_live_…" }
    }
  }
}
```

**Claude Code** — one command:

```bash
claude mcp add appsgolem -e APPSGOLEM_API_KEY=ag_live_… -- npx -y appsgolem-mcp
```

The server speaks MCP over **stdio** (the transport those clients use). A
missing `APPSGOLEM_API_KEY` is not fatal at startup — the server still starts
and advertises its tools; each call then returns a clear `config_error` telling
you to set the key.

## Configuration

| Env var              | Required | Default                 | Notes                         |
| -------------------- | -------- | ----------------------- | ----------------------------- |
| `APPSGOLEM_API_KEY`  | yes      | —                       | Your `ag_live_…` key.         |
| `APPSGOLEM_API_BASE` | no       | `https://appsgolem.com` | Override for self-host / dev. |

## Pricing

1 produced clip = **1 credit**. **2160p (4K) = 4** credits per clip — *except*
`audio_only`, which stays **1**. A source **longer than 2 h** adds **+1** once
per job, but only when its duration is known (the surcharge is skipped if the
probe can't determine it). A batch/stitch of *N* clips costs *N* per-clip.
**Failed cuts are never billed.**

---

## Tools

The server exposes **three** tools. A call that passes MCP input-schema
validation returns a structured result — the API's own JSON on success, or
`{ "error": … }` on any handler/API failure — and never raises a protocol-level
error, so an agent always gets a usable object. (Invalid tool *arguments* are
rejected by the MCP SDK before the handler runs, as a text-only `isError`
result.)

### 1. `cut_youtube_video`

Cut a clip (or a batch of clips) from a YouTube video. By default it **waits**
until the clip is produced and returns its status (including a `download_url`
once a download token is ready); set `wait: false` to submit and return
immediately with the current job (its state is normally `queued` after dispatch).

**Parameters**

| Name              | Type      | Default  | Notes |
| ----------------- | --------- | -------- | ----- |
| `url`             | string    | —        | **Required.** YouTube watch / share / `youtu.be` URL. Playlists are rejected. |
| `start`           | string    | —        | Clip start: `"SS"`, `"MM:SS"`, or `"HH:MM:SS"` (≤ 300 h). Omit when using `clips`. |
| `end`             | string    | —        | Clip end, same formats (≤ 300 h). Omit when using `clips`. |
| `resolution`      | string    | `1080p`  | `144p` · `240p` · `360p` · `480p` · `720p` · `1080p` · `1440p` · `2160p` (4K; total cut ≤ 60 min). |
| `mode`            | string    | `video`  | `video` · `audio_only` · `both` · `nosound` · `short` · `gif` · `frames` (see **Modes** below). |
| `audio_format`    | string    | —        | The `audio_only` output format: `mp3` · `m4a` · `wav` · `flac` (server defaults to `mp3`). `both` always produces MP3. |
| `bitrate`         | string    | —        | Lossy-audio bitrate `320` · `256` · `192` · `128` (default `320`): MP3/M4A in `audio_only`, MP3 in `both`; ignored for WAV/FLAC. |
| `fast`            | boolean   | `false`  | Stream-copy (≈10× faster, keyframe-aligned); `video` / `nosound` / `both` only. Mutually exclusive with a non-1× `speed` — if both are set, `fast` wins and `speed` is forced to `1.0`. |
| `speed`           | number    | `1.0`    | Playback speed `0.5` · `1` · `1.25` · `1.5` · `2`. `video` / `nosound` / `both` / `audio_only`. |
| `interval_ms`     | integer   | `2000`   | `frames` sampling interval: `100` · `500` · `1000` · `2000` · `5000` · `10000` (non-sheet extraction is capped at 1,800 JPGs total across all clips). |
| `burn_ts`         | boolean   | `false`  | `frames`: burn the source timestamp onto each JPG. |
| `sheet`           | boolean   | `false`  | `frames`: return a single contact-sheet JPG (2–80 frames, single clip). Setting it disables `burn_ts`. |
| `clips`           | array     | —        | An array of **1–10** `{ start, end }` ranges **instead of** `start`/`end` (an empty array is rejected). |
| `stitch`          | boolean   | `false`  | With 2+ `clips`, join them into one file (else a zip of clips); ignored for a single clip. `video` / `audio_only` / `both` / `short` / `nosound`. |
| `idempotency_key` | string    | —        | A stable key (**≤ 200 chars**) so a retried request reuses the same job (sent as the `Idempotency-Key` header). |
| `wait`            | boolean   | `true`   | Poll until ready, up to the `timeout_seconds` polling deadline. |
| `timeout_seconds` | integer   | `300`    | Polling deadline in seconds (default 300). It bounds the *polling* only — the initial submission and one in-flight status request (each up to a 30 s request timeout) can extend total wall-clock. |

**Returns (`wait: true`, default)** — the produced job status. `download_url` is
present once a download token is available; if it isn't yet, poll again:

```json
{
  "id": "e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b",
  "state": "produced",
  "credits_reserved": 1,
  "created_at": "2026-08-22T12:00:00+00:00",
  "download_url": "https://appsgolem.com/v1/download/…/clip.mp4"
}
```

**Returns (`wait: false`)** — the job immediately, with its current state
(normally `queued` after dispatch) and no `download_url` yet; poll
`get_cut_status` with the `id` (or fetch `poll_url`):

```json
{
  "id": "e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b",
  "state": "queued",
  "credits_reserved": 1,
  "poll_url": "/v1/cuts/e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b"
}
```

If the wait times out before the clip is ready, the result carries
`"still_processing": true` and the job `id` — poll `get_cut_status` with that
id. If the job reaches a terminal failure, the result is
`{ "error": "cut_failed", "state": "failed" | "refunded", "id": … }` (and no
credit is charged).

### 2. `get_cut_status`

Check a cut job by its id. Use it to poll a job started with
`cut_youtube_video(wait=false)` or one that timed out.

| Name     | Type   | Notes |
| -------- | ------ | ----- |
| `job_id` | string | **Required.** The job id (a UUID) returned by `cut_youtube_video`. |

**Returns** — the job's state; once produced/delivered it also carries a
`download_url` when a download token is available (otherwise poll again):

```json
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "created_at": "…" }
```

States progress `accepted → queued → produced → delivered`, or
`failed → refunded` on error.

### 3. `get_account_balance`

Return the API account's spendable credit balance and current hourly cap. No
parameters.

**Returns**

```json
{ "balance": 412, "hourly_cap": 60 }
```

---

## Modes

| `mode`       | Output | Notable options |
| ------------ | ------ | --------------- |
| `video`      | Video file, no watermark — normally MP4; `fast` preserves the source container (e.g. WebM at high res) | `resolution`, `fast`, `speed` |
| `audio_only` | mp3 / m4a / wav / flac | `audio_format`, `bitrate`, `speed` |
| `both`       | Video + MP3 together, as a zip (`fast` may preserve the video's source container) | `bitrate`, `fast`, `speed` |
| `nosound`    | Video with no audio track — normally MP4; `fast` preserves the source container | `resolution`, `fast`, `speed` |
| `short`      | Portrait 9:16 — AI smart-crop when applicable, else a letterbox-blur fallback whose exact aspect depends on the source (Shorts / Reels / TikTok) | `resolution` |
| `gif`        | Animated GIF (≤ 5 min; no multi-clip) | `resolution` |
| `frames`     | JPG stills | `interval_ms`, `burn_ts`, `sheet` |

---

## Example prompts

Because the agent picks the parameters from your request, you drive it in plain
language:

- *"Cut 0:30 to 1:15 from https://youtu.be/dQw4w9WgXcQ in 1080p."* →
  `cut_youtube_video(url, start="0:30", end="1:15")`
- *"Grab the audio of that video from 2:00 to 5:00 as an mp3."* →
  `mode="audio_only", audio_format="mp3"`
- *"Make a vertical short of the 10:00–10:45 highlight."* →
  `mode="short", start="10:00", end="10:45"`
- *"Turn 0:05–0:12 into a GIF."* → `mode="gif"`
- *"Extract a contact sheet of frames every 5 seconds from 1:00 to 2:00."* →
  `mode="frames", interval_ms=5000, sheet=true`
- *"Stitch 0:10–0:20 and 1:00–1:10 into one clip."* →
  `clips=[{start:"0:10",end:"0:20"},{start:"1:00",end:"1:10"}], stitch=true`
- *"Do a fast, stream-copy cut of 0:00–0:30."* → `fast=true`
- *"How many API credits do I have left?"* → `get_account_balance()`

---

## Result & error shapes

Every result from a handler is a plain object (MCP argument-validation
failures are the exception — see the Tools note above). On failure the objec

Lo que la gente pregunta sobre appsgolem-mcp

¿Qué es apancyborg/appsgolem-mcp?

+

apancyborg/appsgolem-mcp es mcp servers para el ecosistema de Claude AI. MCP server for the AppsGolem YouTube cutter API — cut YouTube clips programmatically, or let an AI agent do it. npx appsgolem-mcp Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-24.

¿Cómo se instala appsgolem-mcp?

+

Puedes instalar appsgolem-mcp clonando el repositorio (https://github.com/apancyborg/appsgolem-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar apancyborg/appsgolem-mcp?

+

Nuestro agente de seguridad ha analizado apancyborg/appsgolem-mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene apancyborg/appsgolem-mcp?

+

apancyborg/appsgolem-mcp es mantenido por apancyborg. La última actividad registrada en GitHub es del 2026-08-24, con 0 issues abiertos.

¿Hay alternativas a appsgolem-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega appsgolem-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: apancyborg/appsgolem-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/apancyborg-appsgolem-mcp)](https://claudewave.com/repo/apancyborg-appsgolem-mcp)
<a href="https://claudewave.com/repo/apancyborg-appsgolem-mcp"><img src="https://claudewave.com/api/badge/apancyborg-appsgolem-mcp" alt="Featured on ClaudeWave: apancyborg/appsgolem-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a appsgolem-mcp