appsgolem-mcp
appsgolem-mcp (Node / TypeScript)
Un servidor MCP para la API de corte de YouTube AppsGolem. Permite que un agente de IA (Claude Desktop, Claude Code, Cursor, …) corte clips de videos de YouTube — en cualquier formato que admita el cortador web — y obtenga una URL de descarga directa. La lógica REST vive en un cliente pequeño y con pocas dependencias (src/client.ts); src/server.ts es la capa fina de herramientas MCP sobre él.
Requisitos
Node.js >= 18 (usa
fetchglobal).Una clave de API de AppsGolem (
ag_live_…) — créala en tu panel enhttps://appsgolem.com/api-billing/. Los créditos son prepagados; compra un paquete o una suscripción allí.
Related MCP server: ytmcp
Instalar / conectar (sin instalación manual)
npx descarga y ejecuta el servidor bajo demanda — no hay que instalar nada globalmente.
Claude Desktop / Cursor — añade al archivo de configuración MCP del cliente (p. ej. claude_desktop_config.json):
{
"mcpServers": {
"appsgolem": {
"command": "npx",
"args": ["-y", "appsgolem-mcp"],
"env": { "APPSGOLEM_API_KEY": "ag_live_…" }
}
}
}Claude Code — un comando:
claude mcp add appsgolem -e APPSGOLEM_API_KEY=ag_live_… -- npx -y appsgolem-mcpEl servidor habla MCP sobre stdio (el transporte que usan esos clientes). La ausencia de APPSGOLEM_API_KEY no es fatal al inicio — el servidor igualmente arranca y anuncia sus herramientas; cada llamada devuelve entonces un config_error claro indicando que debes establecer la clave.
Configuración
Variable de entorno | Obligatoria | Valor por defecto | Notas |
| sí | — | Tu clave |
| no |
| Anulación para autoalojado / dev. |
Precios
1 clip producido = 1 crédito. 2160p (4K) = 4 créditos por clip — excepto audio_only, que sigue siendo 1. Una fuente de más de 2 h añade +1 una vez por trabajo, pero solo cuando se conoce su duración (el recargo se omite si la sonda no puede determinarla). Un lote/unión de N clips cuesta N por clip. Los cortes fallidos nunca se facturan.
Herramientas
El servidor expone tres herramientas. Una llamada que pasa la validación del esquema de entrada MCP devuelve un resultado estructurado — el propio JSON de la API en caso de éxito, o { "error": … } en cualquier fallo del manejador/API — y nunca lanza un error a nivel de protocolo, de modo que un agente siempre obtiene un objeto utilizable. (Los argumentos de herramienta no válidos son rechazados por el SDK de MCP antes de que se ejecute el manejador, como un resultado isError solo de texto.)
1. cut_youtube_video
Corta un clip (o un lote de clips) de un video de YouTube. Por defecto espera hasta que el clip se produce y devuelve su estado (incluyendo un download_url una vez que un token de descarga está listo); establece wait: false para enviar y devolver inmediatamente con el trabajo actual (su estado normalmente es queued después del envío).
Parámetros
Nombre | Tipo | Por defecto | Notas |
| string | — | Obligatorio. URL de YouTube de tipo watch / share / |
| string | — | Inicio del clip: |
| string | — | Fin del clip, mismos formatos (≤ 300 h). Omitir al usar |
| string |
|
|
| string |
|
|
| string | — | El formato de salida de |
| string | — | Bitrate de audio con pérdida |
| boolean |
| Copia de flujo (≈10× más rápido, alineado a keyframes); solo |
| number |
| Velocidad de reproducción |
| integer |
| Intervalo de muestreo de |
| boolean |
|
|
| boolean |
|
|
| array | — | Un array de 1–10 rangos |
| boolean |
| Con 2+ |
| string | — | Una clave estable (≤ 200 caracteres) para que una solicitud reintentada reutilice el mismo trabajo (se envía como cabecera |
| boolean |
| Sondea hasta que esté listo, hasta el plazo de |
| integer |
| Plazo de sondeo en segundos (por defecto 300). Limita solo el sondeo — el envío inicial y una solicitud de estado en curso (cada una con un tiempo de espera de solicitud de hasta 30 s) pueden extender el tiempo total de pared. |
Devuelve (wait: true, por defecto) — el estado del trabajo producido. download_url está presente una vez que un token de descarga está disponible; si aún no lo está, vuelve a sondear:
{
"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"
}Devuelve (wait: false) — el trabajo inmediatamente, con su estado actual (normalmente queued después del envío) y sin download_url todavía; sondea get_cut_status con el id (o consulta poll_url):
{
"id": "e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b",
"state": "queued",
"credits_reserved": 1,
"poll_url": "/v1/cuts/e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b"
}Si la espera agota el tiempo antes de que el clip esté listo, el resultado lleva "still_processing": true y el id del trabajo — sondea get_cut_status con ese id. Si el trabajo alcanza un fallo terminal, el resultado es { "error": "cut_failed", "state": "failed" | "refunded", "id": … } (y no se cobra ningún crédito).
2. get_cut_status
Comprueba un trabajo de corte por su id. Úsalo para sondear un trabajo iniciado con cut_youtube_video(wait=false) o uno que agotó el tiempo.
Nombre | Tipo | Notas |
| string | Obligatorio. El id del trabajo (un UUID) devuelto por |
Devuelve — el estado del trabajo; una vez producido/entregado también lleva un download_url cuando hay un token de descarga disponible (si no, vuelve a sondear):
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "created_at": "…" }Los estados progresan accepted → queued → produced → delivered, o failed → refunded en caso de error.
3. get_account_balance
Devuelve el saldo de créditos gastables de la cuenta de la API y el límite horario actual. Sin parámetros.
Devuelve
{ "balance": 412, "hourly_cap": 60 }Modos
| Salida | Opciones notables |
| Archivo de video, sin marca de agua — normalmente MP4; |
|
| mp3 / m4a / wav / flac |
|
| Video + MP3 juntos, como un zip ( |
|
| Video sin pista de audio — normalmente MP4; |
|
| Vertical 9:16 — recorte inteligente por IA cuando corresponde, si no un respaldo de letterbox desenfocado cuyo aspecto exacto depende de la fuente (Shorts / Reels / TikTok) |
|
| GIF animado (≤ 5 min; sin multi-clip) |
|
| Fotogramas JPG |
|
Ejemplos de indicaciones
Como el agente elige los parámetros a partir de tu solicitud, lo manejas en lenguaje natural:
"Corta de 0:30 a 1:15 de https://youtu.be/dQw4w9WgXcQ en 1080p." →
cut_youtube_video(url, start="0:30", end="1:15")"Extrae el audio de ese video de 2:00 a 5:00 como mp3." →
mode="audio_only", audio_format="mp3""Haz un short vertical del momento destacado de 10:00–10:45." →
mode="short", start="10:00", end="10:45""Convierte 0:05–0:12 en un GIF." →
mode="gif""Extrae una hoja de contactos de fotogramas cada 5 segundos de 1:00 a 2:00." →
mode="frames", interval_ms=5000, sheet=true"Une 0:10–0:20 y 1:00–1:10 en un solo clip." →
clips=[{start:"0:10",end:"0:20"},{start:"1:00",end:"1:10"}], stitch=true"Haz un corte rápido con copia de flujo de 0:00–0:30." →
fast=true"¿Cuántos créditos de API me quedan?" →
get_account_balance()
Formas de resultado y error
Cada resultado de un manejador es un objeto simple (los fallos de validación de argumentos MCP son la excepción — ver la nota de Herramientas arriba). En caso de fallo, el objeto tiene un código error (la llamada a la herramienta sigue teniendo éxito):
| Cuándo |
| Falta |
| La clave fue rechazada (401). |
|
|
| No existe tal trabajo para esta cuenta (404). |
| El trabajo alcanzó |
| Error de conexión/transporte o tiempo de espera de la solicitud agotado. |
| La base/ruta de API configurada no pudo construirse en una URL. |
| Una respuesta ≥400 cuyo cuerpo JSON no es un objeto |
| Una respuesta de éxito cuyo cuerpo no es un objeto JSON (array/escalar/null), o — con |
Los errores a nivel de API (p. ej. validación 400, límite de velocidad 429) se devuelven como el cuerpo de error propio de la API más un campo status; un 429 también incluye retry_after (segundos) cuando el servidor envía Retry-After, para que un agente pueda retroceder.
Un download_url relativo (la API devuelve una ruta) se resuelve a una URL completa contra la base de API configurada solo cuando permanece en ese origen; las URL ya absolutas y las referencias fuera de origen se dejan sin cambios.
Desarrollo
npm install
npm run build # tsc -> dist/
npm test # builds, then runs node --test (no network)
npm start # run the stdio server locally (key needed for calls, not startup)Publicación
npm publish (desde este directorio) hace que npx appsgolem-mcp funcione para todos. El script prepare construye dist/ automáticamente al instalar/publicar.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to access YouTube video data including information retrieval, captions/transcripts, AI-powered summaries, screenshots, comments, and video search through the VidCap API.419MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to fetch YouTube video transcripts with precise timestamps, multi-language support, and time-range filtering.31MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to fetch transcripts, metadata, and download videos/audio from YouTube without API keys.27MIT
- AlicenseAqualityDmaintenanceEnables AI tools to access YouTube content, including transcript extraction, video/channel info, and search.420MIT
Related MCP Connectors
Create AI-powered short-form video clips from YouTube videos. Supports webhook callbacks.
AI clips from long videos: analyze, clip, render and publish via the CutPro API.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/apancyborg/appsgolem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server