Skip to main content
Glama

appsgolem-mcp (Node / TypeScript)

AppsGolem の YouTube カッター API 用の MCP サーバーです。AI エージェント(Claude Desktop、Claude Code、Cursor、…)が、Web カッターが対応している任意の形式で YouTube 動画からクリップを切り出し、直接ダウンロードできる URL を取得できるようにします。REST のロジックは、依存が少ない小さなクライアント(src/client.ts)にあり、src/server.ts はその上に重ねる薄い MCP ツール層です。

必要条件

  • Node.js = 18(グローバルの fetch を使用)。

  • AppsGolem の API キー(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 — コマンド1つで追加します:

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

サーバーは stdio 上で MCP(それらのクライアントが使うトランスポート)を介して通信します。APPSGOLEM_API_KEY が未設定でも起動時には問題になりません。サーバーは起動してツールを公開し続けます。各呼び出しは、キーを設定するよう知らせる明確な config_error を返します。

設定

環境変数

必須

デフォルト

備考

APPSGOLEM_API_KEY

必須

あなたの ag_live_… キー。

APPSGOLEM_API_BASE

任意

https://appsgolem.com

セルフホスト / 開発用の上書き。

料金発生

クリップ1本の生成 = 1クレジット2160p(4K)= クリップごとに4クレジットただし audio_only1 のままです。2時間を超えるソースはジョブごとに +1 が1回加算されます。ただし、ソースの長さが判明している場合に限ります(プローブで判定できないときは追加料金はスキップされます)。N クリップのバッチ/ステッチは、クリップごとに N ずつかかります。失敗したジョブは一切課金されません。


ツール

サーバーは 3つ のツールを公開します。MCP 入力スキーマの検証を通過した呼び出しは、構造化された結果を返します。成功時は API 自体の JSON、ハンドラ/API の障害時は { "error": … } です。プロトコルレベルのエラーを出すことはないので、エージェントは常に有効なオブジェクトを受け取れます。(無効なツール引数は、ハンドラが実行される前に、MCP SDK によってテキストのみの isError 結果として拒否されます。)

1. cut_youtube_video

YouTube 動画からクリップ(または複数のクリップのバッチ)を切り出します。デフォルトではクリップの生成が完了するまで 待機 して、そのステータス(ダウンロードトークンの準備ができていれば download_url を含む)を返します。wait: false を設定すると、送信してすぐに現在のジョブを返します(その状態は通常、送信後に queued になります)。

パラメータ

名前

デフォルト

説明

url

string

必須。 YouTube の watch / share / youtu.be URL。プレイリストは拒否されます。

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

非可逆オーディオのビットレート。320 · 256 · 192 · 128(デフォルト 320)。audio_only の MP3/M4A、both の MP3 に適用。WAV/FLAC では無視されます。

fast

boolean

false

ストリームコピー(約10倍高速、キーフレーム位置へ整列)。video / nosound / both のみ。1倍以外の speed とは併用できません。両方設定した場合は fast が優先され、speed1.0 になります。

speed

number

1.0

再生速度。0.5 · 1 · 1.25 · 1.5 · 2video / nosound / both / audio_only

interval_ms

number

1000

frames のサンプリング間隔。100 · 500 · 1000 · 2000 · 5000 · 10000(シート以外の書き出しは、全クリップ合計で 1,800 JPG 上限)。

burn_ts

boolean

false

frames:各 JPG にソースのタイムスタンプを焼き付けます。

sheet

boolean

false

frames:1枚のコンタクトシート JPG(2〜80コマ、単一クリップ)を返します。設定すると burn_ts は無効になります。

clips

array

start / end の代わりに使う、1〜10 個の { start, end } 範囲の配列。空配列は拒否されます。

stitch

boolean

false

2 以上の clips がある場合、それらを1ファイルに結合します(そうでない場合はzip)。単一クリップでは無視されます。video / audio_only / both / short / nosound

idempotency_key

string

安定したキー(≤ 200文字)。再試行されるリクエストが同じジョブを再利用できるようにします(Idempotency-Key ヘッダーとして送信)。

wait

boolean

true

準備ができるまでポーリングします。上限は timeout_seconds のポーリング期限です。

timeout_seconds

integer

300

ポーリング期限(秒)。デフォルト 300。制約されるのはポーリングだけです。初期送信と1回の状態確認(各リクエストは最大 30 秒)が実時間を伸ばすことがあります。

戻り値(wait: true(デフォルt)** — 生成されたジョブのステータス。ダウンロード トークンが準備できると 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 はまだありません。id を指定して get_cut_status をポーリング(または 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 が含まれます。その idget_cut_status をポーリングしてください。ジョブが終端の失敗に達した場合は、結果は { "error": "cut_failed", "state": "failed" | "refunded", "id": … }(クレジットは課金されません)となります。

2. get_cut_status

カットジョブの状態を id で確認します。cut_youtube_video(wait=false) で開始したジョブや、タイムアウトしたジョブのポーリングに使います。

名前

説明

job_id

string

必須。 cut_youtube_video が返すジョブ id(UUID)。

戻り値 — ジョブの状態。生成/配信が完了すると、ダウンロード トークンが利用可能な場合は download_url も含まれます(それ以外は再度ポーリングしてください):

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

状態は accepted → queued → produced → delivered と進み、エラー時は failed → refunded と進みます。

3. get_account_balance

アカウントの利用可能なクレジット残高と、現在の1時間あたりの上限を返します。パラメータはありません。

戻り値

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

モード

mode

出力

主なオプション

video

透かしなしのビデオファイル — 通常は MP4。fast はソースコンテナを保持します(例:高解像度で WebM)

resolution, fast, speed

audio_only

mp3 / m4a / wav / flac

audio_format, bitrate, speed

both

ビデオ + 単一の zip 形式の MP3(fast はビデオのソースコンテナを保持する場合があります)

bitrate, fast, speed

nosound

音声トラックのないビデオ — 通常は MP4。fast はソースコンテナを保持します

resolution, fast, speed

short

ポートレート 9:16 — 可能な場合は AI スマートクロップ、それ以外はレターボックス / ぼかしの代替。完全なアスペクト比はソースに依存します(Shorts / Reels / TikTok)

resolution

gif

アニメーション GIF GXP7(≤ 5分、マルチクリップ不可)

resolution

frames

JPG 静止画(sheet を使用すると単一シート)

interval_ms, burn_ts, sheet


プロンプト例

エージェントはあなたのリクエストからパラメータを選ぶので、自然な言葉で指示できます:

  • "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", 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 we.""残りクレジットは、いくつ?"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

設定された API ベース/パスを URL に構築できませんでした。

http_error

JSON ボディが { error: … } オブジェクトではない ≥400 レスポンス (status を保持)。

bad_response

ボディが JSON オブジェクトではない成功レスポンス (配列/スカラー/null)、または — wait: true の場合 — 利用可能なジョブ id なしで返されたカット送信。

API レベルのエラー (例: バリデーション 400、レート制限 429) は、API 自身のエラーボディに加えて status フィールドを付けて返されます。429 には、サーバーが Retry-After を送信した場合に retry_after (秒) も含まれるため、エージェントはバックオフできます。

相対的な download_url (API がパスを返す) は、そのオリジン上に留まる場合にのみ、設定された API ベースに対して完全な URL に解決されます。すでに絶対 URL のものや、オリジン外の参照は変更されません。


開発

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