Skip to main content
Glama

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, сообщающий, что нужно задать ключ.

Конфигурация

Переменная окружения

Обязательная

По умолчанию

Примечания

APPSGOLEM_API_KEY

да

Ваш ключ ag_live_….

APPSGOLEM_API_BASE

нет

https://appsgolem.com

Переопределение для 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 после отправки).

Параметры

Имя

Тип

По умолчанию

Примечания

url

string

Обязательный. URL YouTube: watch / share / youtu.be. Плейлисты отклоняются.

start

string

Начало клипа: "SS", "MM:SS" или "HH:MM:SS" (≤ 300 ч). Опустите при использовании clips.

end

string

Конец клипа, те же форматы (≤ 300 ч). Опустите при использовании clips.

resolution

string

1080p

144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 2160p (4K; общая нарезка ≤ 60 мин).

mode

string

video

video · audio_only · both · nosound · short · gif · frames (см. Режимы ниже).

audio_format

string

Формат вывода для audio_only: mp3 · m4a · wav · flac (сервер по умолчанию использует mp3). both всегда создаёт MP3.

bitrate

string

Битрейт lossy-аудио 320 · 256 · 192 · 128 (по умолчанию 320): MP3/M4A в audio_only, MP3 в both; игнорируется для WAV/FLAC.

fast

boolean

false

Потоковое копирование (≈10× быстрее, выравнивание по ключевым кадрам); только video / nosound / both. Взаимоисключающе с не-1× speed — если заданы оба, fast побеждает, а speed принудительно становится 1.0.

speed

number

1.0

Скорость воспроизведения 0.5 · 1 · 1.25 · 1.5 · 2. video / nosound / both / audio_only.

interval_ms

integer

2000

Интервал выборки для frames: 100 · 500 · 1000 · 2000 · 5000 · 10000 (извлечение без листа ограничено 1 800 JPG суммарно по всем клипам).

burn_ts

boolean

false

frames: вжигать исходную временную метку на каждый JPG.

sheet

boolean

false

frames: вернуть один JPG-лист контактов (2–80 кадров, один клип). Установка отключает burn_ts.

clips

array

Массив из 1–10 диапазонов { start, end } вместо start/end (пустой массив отклоняется).

stitch

boolean

false

При 2+ clips объединить их в один файл (иначе zip клипов); игнорируется для одного клипа. video / audio_only / both / short / nosound.

idempotency_key

string

Стабильный ключ (≤ 200 символов), чтобы повторный запрос использовал то же задание (отправляется как заголовок Idempotency-Key).

wait

boolean

true

Опрашивать до готовности, вплоть до предела ожидания timeout_seconds.

timeout_seconds

integer

300

Предел ожидания в секундах (по умолчанию 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) или того, которое превысило время ожидания.

Имя

Тип

Примечания

job_id

string

Обязательный. Идентификатор задания (UUID), возвращённый cut_youtube_video.

Возвращает — состояние задания; после создания/доставки также содержит 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 }

Режимы

mode

Вывод

Примечательные параметры

video

Видеофайл без водяного знака — обычно MP4; fast сохраняет исходный контейнер (например, WebM в высоком разрешении)

resolution, fast, speed

audio_only

mp3 / m4a / wav / flac

audio_format, bitrate, speed

both

Видео + MP3 вместе, в виде zip (fast может сохранить исходный контейнер видео)

bitrate, fast, speed

nosound

Видео без звуковой дорожки — обычно MP4; fast сохраняет исходный контейнер

resolution, fast, speed

short

Вертикальное 9:16 — AI-умный кроп, когда применимо, иначе запасной вариант с размытием по бокам, точное соотношение сторон зависит от источника (Shorts / Reels / TikTok)

resolution

gif

Анимированный GIF (≤ 5 мин; без нескольких клипов)

resolution

frames

JPG-кадры

interval_ms, burn_ts, sheet


Примеры запросов

Поскольку агент выбирает параметры из вашего запроса, вы управляете им на простом языке:

  • «Вырежи 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 (вызов инструмента при этом всё равно завершается успешно):

error

Когда

config_error

APPSGOLEM_API_KEY отсутствует.

invalid_api_key

Ключ был отклонён (401).

invalid_job_id

job_id не является UUID.

not_found

Задача для этого аккаунта не найдена (404).

cut_failed

Задача перешла в состояние failed/refunded (оплата не производилась).

network_error

Сбой соединения/транспорта или таймаут запроса.

bad_request

Не удалось собрать URL из настроенных base/path API.

http_error

Ответ с кодом ≥400, тело JSON которого не является объектом { error: … } (содержит status).

bad_response

Успешный ответ, тело которого не является JSON-объектом (массив/скаляр/null), или — при wait: true — отправка cut, вернувшаяся без пригодного id задачи.

Ошибки уровня 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/ при установке/публикации.

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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