Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

AppsGolem YouTube Cutter

by apancyborgversion 0.1.2i★ –iRuns on your computer
Registry nameio.github.apancyborg/appsgolem-mcp

Install

Overview

Description from the maker (original English)

Cut clips from YouTube videos in any format and get a direct download URL.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Marketing & social media
  • You need to fill in: APPSGOLEM_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: APPSGOLEM_API_KEY, APPSGOLEM_API_BASE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "appsgolem": {
      "command": "npx",
      "args": [
        "-y",
        "appsgolem-mcp"
      ],
      "env": {
        "APPSGOLEM_API_KEY": "your-value",
        "APPSGOLEM_API_BASE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add appsgolem --env APPSGOLEM_API_KEY=your-value --env APPSGOLEM_API_BASE=your-value -- npx -y appsgolem-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "appsgolem": {
      "command": "npx",
      "args": [
        "-y",
        "appsgolem-mcp"
      ],
      "env": {
        "APPSGOLEM_API_KEY": "your-value",
        "APPSGOLEM_API_BASE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "appsgolem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "appsgolem-mcp"
      ],
      "env": {
        "APPSGOLEM_API_KEY": "your-value",
        "APPSGOLEM_API_BASE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • APPSGOLEM_API_KEY secret required env
    Your AppsGolem API key (ag_live_…). Create one at https://appsgolem.com/agents.
  • APPSGOLEM_API_BASE env
    Override the API base URL (default https://appsgolem.com) for self-host or dev.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account apancyborg, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Marketing & social mediai

  • More stars than 0% of the other 3574 servers in this category
  • Published to the registry more recently than 27% of the other 3574 servers in this category
  • Basic checks equal to or better than 100% of the other 3574 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is AppsGolem YouTube Cutter safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: APPSGOLEM_API_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

An MCP server retrieving transcripts of YouTube videos

Runs on your computer★ 495MITUpdated 11 days ago
Install

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

Runs on your computer★ 244MITUpdated 10 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

appsgolem-mcp (Node / TypeScript)

An MCP 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):

{

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

Claude Code — one command:

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 varRequiredDefaultNotes
APPSGOLEM_API_KEYyes—Your ag_live_… key.
APPSGOLEM_API_BASEnohttps://appsgolem.comOverride 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

NameTypeDefaultNotes
urlstring—Required. YouTube watch / share / youtu.be URL. Playlists are rejected.
startstring—Clip start: "SS", "MM:SS", or "HH:MM:SS" (≤ 300 h). Omit when using clips.
endstring—Clip end, same formats (≤ 300 h). Omit when using clips.
resolutionstring1080p144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 2160p (4K; total cut ≤ 60 min).
modestringvideovideo · audio_only · both · nosound · short · gif · frames (see Modes below).
audio_formatstring—The audio_only output format: mp3 · m4a · wav · flac (server defaults to mp3). both always produces MP3.
bitratestring—Lossy-audio bitrate 320 · 256 · 192 · 128 (default 320): MP3/M4A in audio_only, MP3 in both; ignored for WAV/FLAC.
fastbooleanfalseStream-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.
speednumber1.0Playback speed 0.5 · 1 · 1.25 · 1.5 · 2. video / nosound / both / audio_only.
interval_msinteger2000frames sampling interval: 100 · 500 · 1000 · 2000 · 5000 · 10000 (non-sheet extraction is capped at 1,800 JPGs total across all clips).
burn_tsbooleanfalseframes: burn the source timestamp onto each JPG.
sheetbooleanfalseframes: return a single contact-sheet JPG (2–80 frames, single clip). Setting it disables burn_ts.
clipsarray—An array of 1–10 { start, end } ranges instead of start/end (an empty array is rejected).
stitchbooleanfalseWith 2+ clips, join them into one file (else a zip of clips); ignored for a single clip. video / audio_only / both / short / nosound.
idempotency_keystring—A stable key (≤ 200 chars) so a retried request reuses the same job (sent as the Idempotency-Key header).
waitbooleantruePoll until ready, up to the timeout_seconds polling deadline.
timeout_secondsinteger300Polling 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:

{

"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):

{

"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.

NameTypeNotes
job_idstringRequired. 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):

{ "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

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

Modes

modeOutputNotable options
videoVideo file, no watermark — normally MP4; fast preserves the source container (e.g. WebM at high res)resolution, fast, speed
audio_onlymp3 / m4a / wav / flacaudio_format, bitrate, speed
bothVideo + MP3 together, as a zip (fast may preserve the video's source container)bitrate, fast, speed
nosoundVideo with no audio track — normally MP4; fast preserves the source containerresolution, fast, speed
shortPortrait 9:16 — AI smart-crop when applicable, else a letterbox-blur fallback whose exact aspect depends on the source (Shorts / Reels / TikTok)resolution
gifAnimated GIF (≤ 5 min; no multi-clip)resolution
framesJPG stillsinterval_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 object has an error code (the tool call still succeeds):

errorWhen
config_errorAPPSGOLEM_API_KEY is missing.
invalid_api_keyThe key was rejected (401).
invalid_job_idjob_id isn't a UUID.
not_foundNo such job for this account (404).
cut_failedThe job reached failed/refunded (never billed).
network_errorConnection/transport failure or request timeout.
bad_requestThe configured API base/path couldn't be built into a URL.
http_errorA ≥400 response whose JSON body isn't an { error: … } object (carries status).
bad_responseA success response whose body isn't a JSON object (array/scalar/null), or — with wait: true — a cut submission that came back without a usable job id.

API-level errors — validation 400, 402 insufficient_credits, 404 not_found, 409 idempotency_conflict / duplicate_in_flight, 429 rate_limited, and 503 rate_limiter_unavailable / database_busy — are returned as the API's own error body plus a status field. A 429 also includes retry_after (seconds, from Retry-After) plus a reason (submission_cap · request_rate · poll_rate) so an agent can tell which limit it hit and back off correctly. A 503 is usually transient (retry after a short delay), but a persistent 503 is a server-side problem to report — not to retry indefinitely.

Status polling is not rate-limited for normal use — checking a job's progress never counts against your submissions/hour cap. You never need to throttle get_cut_status yourself: cut_youtube_video(wait=true) polls and paces for you (honoring the server's poll_after cadence and any Retry-After), so a single tool call handles even long jobs.

Produced download links expire after a bounded window (~72 hours by default on appsgolem.com; configurable per deployment) — fetch the file within it.

A relative download_url (the API returns

Only the beginning is shown; read the rest in the repo

Ask PopNx