appsgolem-mcp
appsgolem-mcp (Node / TypeScript)
Сервер MCP для API нарезки YouTube-видео AppsGolem. Он позволяет ИИ-агенту (Claude Desktop, Claude Code, Cursor, …) вырезать клипы из YouTube-видео — в любом формате, который поддерживает веб-резак, — и получать прямую ссылку для скачивания. REST-логика находится в небольшом клиенте без лишних зависимостей (src/client.ts); src/server.ts — это тонкий слой инструментов MCP поверх него.
Требования
Node.js >= 18 (используется глобальный
fetch).Ключ API AppsGolem (
ag_live_…) — создайте его в панели управления по адресуhttps://appsgolem.com/api-billing/. Кредиты предоплачены; купите пакет или подписку там.
Related MCP server: ytmcp
Установка / подключение (без ручной установки)
npx загружает и запускает сервер по требованию — ничего глобально устанавливать не нужно.
Claude Desktop / Cursor — добавьте в конфигурацию MCP клиента (например,
claude_desktop_config.json):
{
"mcpServers": {
"appsgolem": {
"command": "npx",
"args": ["-y", "appsgolem-mcp"],
"env": { "APPSGOLEM_API_KEY": "ag_live_…" }
}
}
}Claude Code — одна команда:
claude mcp add appsgolem -e APPSGOLEM_API_KEY=ag_live_… -- npx -y appsgolem-mcpСервер общается по MCP через stdio (транспорт, который используют эти клиенты). Отсутствие APPSGOLEM_API_KEY не является фатальным при запуске — сервер всё равно запускается и объявляет свои инструменты; каждый вызов затем возвращает понятный config_error, сообщающий, что нужно задать ключ.
Конфигурация
Переменная окружения | Обязательная | По умолчанию | Примечания |
| да | — | Ваш ключ |
| нет |
| Переопределение для self-host / dev. |
Цены
1 созданный клип = 1 кредит. 2160p (4K) = 4 кредита за клип — кроме
audio_only, который остаётся 1. Исходник длиннее 2 часов добавляет +1 один раз за задание, но только когда его длительность известна (надбавка пропускается, если пробу не удаётся её определить). Пакет/склейка из N клипов стоит N за клип.
Неудачные нарезки не тарифицируются.
Инструменты
Сервер предоставляет три инструмента. Вызов, прошедший проверку схемы входных данных MCP, возвращает структурированный результат — собственный JSON API при успехе или { "error": … } при любой ошибке обработчика/API — и никогда не вызывает ошибку на уровне протокола, так что агент всегда получает пригодный объект. (Недопустимые аргументы инструмента отклоняются MCP SDK до запуска обработчика, как текстовый результат isError.)
1. cut_youtube_video
Вырезать клип (или пакет клипов) из YouTube-видео. По умолчанию он ожидает
готовности клипа и возвращает его статус (включая download_url, когда токен для скачивания готов); установите wait: false, чтобы отправить задание и сразу вернуться с текущим заданием (его состояние обычно queued после отправки).
Параметры
Имя | Тип | По умолчанию | Примечания |
| string | — | Обязательный. URL YouTube: watch / share / |
| string | — | Начало клипа: |
| string | — | Конец клипа, те же форматы (≤ 300 ч). Опустите при использовании |
| string |
|
|
| string |
|
|
| string | — | Формат вывода для |
| string | — | Битрейт lossy-аудио |
| boolean |
| Потоковое копирование (≈10× быстрее, выравнивание по ключевым кадрам); только |
| number |
| Скорость воспроизведения |
| integer |
| Интервал выборки для |
| boolean |
|
|
| boolean |
|
|
| array | — | Массив из 1–10 диапазонов |
| boolean |
| При 2+ |
| string | — | Стабильный ключ (≤ 200 символов), чтобы повторный запрос использовал то же задание (отправляется как заголовок |
| boolean |
| Опрашивать до готовности, вплоть до предела ожидания |
| integer |
| Предел ожидания в секундах (по умолчанию 300). Он ограничивает только опрос — начальная отправка и один запрос статуса в процессе (каждый с таймаутом запроса до 30 с) могут увеличить общее время. |
Возвращает (wait: true, по умолчанию) — статус созданного задания. download_url присутствует, когда токен для скачивания готов; если его ещё нет, опросите снова:
{
"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"
}Возвращает (wait: false) — задание сразу, с его текущим состоянием
(обычно queued после отправки) и без download_url; опросите
get_cut_status с id (или получите poll_url):
{
"id": "e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b",
"state": "queued",
"credits_reserved": 1,
"poll_url": "/v1/cuts/e48db1a2-1c3d-4e5f-8a9b-0c1d2e3f4a5b"
}Если ожидание истекло до готовности клипа, результат содержит
"still_processing": true и id задания — опросите get_cut_status с этим
id. Если задание достигло конечного сбоя, результат —
{ "error": "cut_failed", "state": "failed" | "refunded", "id": … } (и кредит не списывается).
2. get_cut_status
Проверить задание нарезки по его id. Используйте для опроса задания, запущенного с
cut_youtube_video(wait=false) или того, которое превысило время ожидания.
Имя | Тип | Примечания |
| string | Обязательный. Идентификатор задания (UUID), возвращённый |
Возвращает — состояние задания; после создания/доставки также содержит
download_url, когда токен для скачивания доступен (иначе опросите снова):
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "created_at": "…" }Состояния прогрессируют accepted → queued → produced → delivered, или
failed → refunded при ошибке.
3. get_account_balance
Возвращает доступный кредитный баланс API-аккаунта и текущий часовой лимит. Без параметров.
Возвращает
{ "balance": 412, "hourly_cap": 60 }Режимы
| Вывод | Примечательные параметры |
| Видеофайл без водяного знака — обычно MP4; |
|
| mp3 / m4a / wav / flac |
|
| Видео + MP3 вместе, в виде zip ( |
|
| Видео без звуковой дорожки — обычно MP4; |
|
| Вертикальное 9:16 — AI-умный кроп, когда применимо, иначе запасной вариант с размытием по бокам, точное соотношение сторон зависит от источника (Shorts / Reels / TikTok) |
|
| Анимированный GIF (≤ 5 мин; без нескольких клипов) |
|
| JPG-кадры |
|
Примеры запросов
Поскольку агент выбирает параметры из вашего запроса, вы управляете им на простом языке:
«Вырежи 0:30–1:15 из https://youtu.be/dQw4w9WgXcQ в 1080p.» →
cut_youtube_video(url, start="0:30", end="1:15")«Возьми аудио этого видео с 2:00 по 5:00 как mp3.» →
mode="audio_only", audio_format="mp3"«Сделай вертикальный шорт из хайлайта 10:00–10:45.» →
mode="short", start="10:00", end="10:45"«Преврати 0:05–0:12 в GIF.» →
mode="gif"«Извлеки лист кадров каждые 5 секунд с 1:00 по 2:00.» →
mode="frames", interval_ms=5000, sheet=true«Склей 0:10–0:20 и 1:00–1:10 в один клип.» →
clips=[{start:"0:10",end:"0:20"},{start:"1:00",end:"1:10"}], stitch=true«Сделай быструю нарезку с потоковым копированием 0:00–0:30.» →
fast=true«Сколько у меня осталось API-кредитов?» →
get_account_balance()
Формы результатов и ошибок
Каждый результат от обработчика — это обычный объект (исключение — ошибки валидации аргументов MCP; см. примечание об инструментах выше). При сбое объект содержит код error (вызов инструмента при этом всё равно завершается успешно):
| Когда |
|
|
| Ключ был отклонён (401). |
|
|
| Задача для этого аккаунта не найдена (404). |
| Задача перешла в состояние |
| Сбой соединения/транспорта или таймаут запроса. |
| Не удалось собрать URL из настроенных base/path API. |
| Ответ с кодом ≥400, тело JSON которого не является объектом |
| Успешный ответ, тело которого не является JSON-объектом (массив/скаляр/null), или — при |
Ошибки уровня API (например, ошибка валидации 400, превышение лимита
запросов 429) возвращаются в виде собственного тела ошибки API плюс поле
status; 429 также включает retry_after (в секундах), когда сервер
отправляет Retry-After, чтобы агент мог сделать паузу.
Относительный download_url (API возвращает путь) преобразуется в полный URL на
основе настроенного базового URL API только если он относится к тому же
origin; уже абсолютные URL и ссылки на другой origin остаются без изменений.
Разработка
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)Публикация
npm publish (из этого каталога) делает npx appsgolem-mcp доступным для всех.
Скрипт prepare автоматически собирает dist/ при установке/публикации.
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