Poof について
Poof は、AI アシスタントから Poof API を呼び出し、画像や動画の背景を除去する MCP サーバーです。ローカルの stdio とリモート HTTP に対応し、メディア処理、動画ジョブの確認、アカウント残高の照会を行えます。
主な機能
- 01画像の背景除去
- 02動画の背景除去
- 03透明・マット・単色背景の選択
- 04動画処理ジョブの追跡
- 05アカウントとクレジット残高の確認
活用シーン
- 01透明背景の画像切り抜き作成
- 02透明またはグリーンバック動画の出力
- 03動画ジョブのダウンロードリンク確認
- 04Poof の残りクレジット確認
MCP 対応
MCP クライアントに Poof の背景除去 API ツール remove_background、remove_video_background、get_job、get_account を公開します。ローカルの stdio とリモートの Streamable HTTP に対応し、リモート接続では OAuth 2.1 または API キーを使用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.poof.bg/mcpclaude mcp add --transport http poof-bg https://api.poof.bg/mcp{"mcpServers":{"poof-bg":{"type":"http","url":"https://api.poof.bg/mcp"}}}Cursor で開く{"servers":{"poof-bg":{"type":"http","url":"https://api.poof.bg/mcp"}}}VS Code で開く{"mcpServers":{"poof-bg":{"type":"http","url":"https://api.poof.bg/mcp"}}}{"mcpServers":{"poof-bg":{"serverUrl":"https://api.poof.bg/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://api.poof.bg/mcp認証が必要ツール
詳細
@poof-bg/mcp
Poof の背景削除 API用 MCP(Model Context Protocol)サーバーです。Claude などの AI アシスタントを使って、画像や動画の背景を削除できます。
remove.bg からの移行をお考えですか?サービスは 2026 年 12 月 1 日に終了します。remove.bg の代替サービスと移行ガイドをご覧ください。
機能
- remove_background - 画像(PNG、JPEG、WebP、または静止 GIF)の背景を削除します(Base64 または URL を受け付けます)
- remove_video_background - URL で指定した動画の背景を削除します:透明 WebM/MOV、グリーンスクリーン MP4、ループ再生する透明 GIF、またはアルファマットに対応し、音声は保持されます(GIF を除く)
- get_job - 動画ジョブのステータスを確認し、ダウンロードリンクを取得します
- get_account - アカウント情報とクレジット残高を確認します
- stdio(ローカル)と HTTP(リモート/Cloudflare Worker)の両方のトランスポートに対応しています
インストール
ローカル(stdio トランスポート)
npm install -g @poof-bg/mcp
または、ローカルにインストールします:
git clone https://github.com/poof-bg/mcp.git
cd mcp
npm install
npm run build
リモート(Cloudflare Worker 経由の HTTP トランスポート)
同じツールを Streamable HTTP 経由で https://api.poof.bg/mcp から利用できます。認証方式は OAuth 2.1(Poof アカウントでサインイン)または x-api-key ヘッダーです。OAuth 接続は使用中は維持され、30 日間使用されないと期限切れになります。その後、クライアントから再度ログインを求められます(Codex では、codex mcp login poof を実行します)。
設定
環境変数
Poof API キーを設定します:
export POOF_API_KEY=your_api_key_here
API キーは dash.poof.bg で取得できます。
Claude Code
OAuth(推奨)
claude mcp add --transport http poof https://api.poof.bg/mcp
API キー
claude mcp add --transport http poof https://api.poof.bg/mcp \
--header "x-api-token: YOUR_POOF_API_KEY"
Claude Desktop
Claude Desktop の設定ファイルに追加します:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
オプション 1:OAuth によるリモート接続(推奨)
{
"mcpServers": {
"poof": {
"url": "https://api.poof.bg/mcp"
}
}
}
オプション 2:ローカル(stdio トランスポート)
{
"mcpServers": {
"poof": {
"command": "npx",
"args": ["-y", "@poof-bg/mcp"],
"env": {
"POOF_API_KEY": "your_api_key_here"
}
}
}
}
オプション 3:API キーによるリモート接続
{
"mcpServers": {
"poof": {
"url": "https://api.poof.bg/mcp",
"headers": {
"x-api-token": "YOUR_POOF_API_KEY"
}
}
}
}
Cursor
プロジェクトのルート(またはグローバル設定)にある .cursor/mcp.json に追加します:
OAuth(推奨)
{
"mcpServers": {
"poof": {
"url": "https://api.poof.bg/mcp"
}
}
}
ローカル(stdio)
{
"mcpServers": {
"poof": {
"command": "npx",
"args": ["-y", "@poof-bg/mcp"],
"env": {
"POOF_API_KEY": "your_api_key_here"
}
}
}
}
API キーによるリモート接続
{
"mcpServers": {
"poof": {
"url": "https://api.poof.bg/mcp",
"headers": {
"x-api-token": "YOUR_POOF_API_KEY"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します:
OAuth(推奨)
{
"mcpServers": {
"poof": {
"serverUrl": "https://api.poof.bg/mcp"
}
}
}
ローカル(stdio)
{
"mcpServers": {
"poof": {
"command": "npx",
"args": ["-y", "@poof-bg/mcp"],
"env": {
"POOF_API_KEY": "your_api_key_here"
}
}
}
}
API キーによるリモート接続
{
"mcpServers": {
"poof": {
"serverUrl": "https://api.poof.bg/mcp",
"headers": {
"x-api-token": "YOUR_POOF_API_KEY"
}
}
}
}
VS Code + Copilot
VS Code の settings.json に追加します:
OAuth(推奨)
{
"mcp": {
"servers": {
"poof": {
"url": "https://api.poof.bg/mcp"
}
}
}
}
ローカル(stdio)
{
"mcp": {
"servers": {
"poof": {
"command": "npx",
"args": ["-y", "@poof-bg/mcp"],
"env": {
"POOF_API_KEY": "your_api_key_here"
}
}
}
}
}
API キーによるリモート接続
{
"mcp": {
"servers": {
"poof": {
"url": "https://api.poof.bg/mcp",
"headers": {
"x-api-token": "YOUR_POOF_API_KEY"
}
}
}
}
}
Cline(VS Code 拡張機能)
Cline の設定を開き、MCP Servers の設定に追加します:
OAuth(推奨)
{
"poof": {
"url": "https://api.poof.bg/mcp"
}
}
ローカル(stdio)
{
"poof": {
"command": "npx",
"args": ["-y", "@poof-bg/mcp"],
"env": {
"POOF_API_KEY": "your_api_key_here"
}
}
}
API キーによるリモート接続
{
"poof": {
"url": "https://api.poof.bg/mcp",
"headers": {
"x-api-token": "YOUR_POOF_API_KEY"
}
}
}
ツール
remove_background
画像(PNG、JPEG、WebP、または静止 GIF、最大 20 MB)の背景を削除します。アニメーション GIF は動画として扱われるため、remove_video_background を使用してください。それでもこちらに送信された場合、このツールは画像ではなく動画ジョブを返します(get_job でポーリングしてください)。
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
image | string | はい | Base64 エンコードされた画像、または PNG、JPEG、WebP、静止 GIF 画像の URL |
format | string | いいえ | 出力形式:png、jpg、webp(デフォルト:png) |
channels | string | いいえ | カラーチャンネル:透明にする場合は rgba、不透明にする場合は rgb(背景色はデフォルトで白)、グレースケールのアルファマスクのみの場合は alpha(デフォルト:rgba) |
bg_color | string | いいえ | 背景色。例:#ffffff。設定すると背景が塗りつぶされ、結果は不透明になります。rgb チャンネルまたは jpg 形式で bg_color が指定されていない場合、背景は白になります。channels: alpha の場合は無視されます |
size | string | いいえ | 出力サイズのプリセット:full、preview、medium、hd(デフォルト:full)。width/height が設定されている場合は無視されます |
crop | boolean | いいえ | 被写体の境界に合わせてトリミングします(デフォルト:false) |
width | integer | いいえ | 出力幅(ピクセル単位、1~6000)。単独で指定すると、高さはアスペクト比に従います |
height | integer | いいえ | 出力高さ(ピクセル単位、1~6000)。単独で指定すると、幅はアスペクト比に従います |
fit | string | いいえ | 引き伸ばさずに width x height に収める方法:contain(デフォルト。余白を追加)、cover(全体を埋め、被写体の周囲のはみ出した部分をトリミング)、scale-down(余白を追加し、拡大はしない) |
プロンプトの例:
Remove the background from this image: https://example.com/photo.jpg
Remove the background and add a white background instead
Remove the background and give me a 500x500 image with the product centred
応答: 処理済み画像が MCP の image コンテンツブロックとして返され(アシスタントが表示して確認できます)、続いてメタデータを含むテキストブロックが返されます:
{ "success": true, "format": "png", "width": 1024, "height": 768, "processing_time_ms": 412 }
remove_video_background
動画の背景を削除します。公開 URL を渡してください。結果は 24 時間有効な直接ダウンロードリンクです。動画の料金は 1 秒あたり 5 クレジットで、端数は切り上げられます(30 fps を超える場合は 1 秒あたり 10 クレジット。アニメーション GIF はフレームレートにかかわらず常に 1 秒あたり 5 クレジットです)。ジョブが受け付けられた時点でクレジットが請求され、失敗した場合は返還されます。
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
video_url | string | はい | 動画の公開 https URL(mp4、mov、webm、m4v、mkv、またはアニメーション GIF。最大 500 MB、5 分) |
format | string | いいえ | 出力コンテナー:webm(VP9、bg_color が設定されていない限り透明)、mov(ProRes 4444、bg_color が設定されていない限り透明)、mp4(H.264、bg_color に合成)、gif(ループする GIF、1 ビット透明、音声なし、長辺は最大 1280 px(ワイド画面では 720p)、最大 50 fps。ステッカーサイズで出力するには size: preview を指定)(デフォルト:webm) |
channels | string | いいえ | 透明にする場合は rgba、不透明な背景にする場合は rgb、グレースケールのマット動画の場合は alpha(デフォルト:rgba) |
bg_color | string | いいえ | 背景色。例:#00ff00。設定すると背景が塗りつぶされ、どの形式(webm、mov、gif を含む)でも結果は不透明になります。rgb または mp4 で bg_color が指定されていない場合、背景は白になります。channels: alpha の場合は無視されます |
size | string | いいえ | 出力サイズのプリセット:full、preview(640)、medium(1280)、hd(1920)(デフォルト:full。ソース解像度は最大 4K) |
wait | boolean | いいえ | 終了するまで最大 50 秒間ポーリングしてから返します(デフォルト:true)。ジョブ ID をすぐに取得するには false を設定します |
プロンプトの例:
Remove the background from this video: https://example.com/clip.mp4
Turn https://example.com/clip.mov into a transparent WebM
Give me a green-screen MP4 of this video and keep the audio
応答:
{
"success": true,
"job": {
"id": "job_8f3a1c2e9b7d4a10",
"status": "completed",
"progress": 1,
"duration_seconds": 12.4,
"fps": 29.97,
"width": 1920,
"height": 1080,
"frames": 372,
"credits": 65,
"format": "webm",
"channels": "rgba",
"result_url": "https://cdn.poof.bg/1d/jobs/job_8f3a1c2e9b7d4a10/result.webm",
"expires_at": "2026-10-17T10:12:00Z"
}
}
50 秒経過後もジョブが実行中の場合、status は queued または processing、result_url は null となり、アシスタントに get_job を呼び出すよう伝える hint が返されます。
get_job
remove_video_backgroundで開始した動画ジョブの状態を確認します。ポーリングは無料です。
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
job_id | string | はい | ジョブ ID(job_...) |
プロンプトの例:
Is my video done yet?
Check job job_8f3a1c2e9b7d4a10 and give me the download link
レスポンス: 上記と同じjobオブジェクトです。statusがcompletedになるとresult_urlが設定され、ジョブがfailedの場合はerrorで理由が説明されます(失敗したジョブの料金は返金されます)。
get_account
アカウント情報とクレジット残高を取得します。
プロンプトの例:
Check my Poof account balance
How many credits do I have left?
レスポンス:
{
"success": true,
"data": {
"organizationId": "org_abc123",
"plan": "Pro",
"maxCredits": 5000,
"usedCredits": 1234,
"remainingCredits": 3766,
"autoRechargeThreshold": 100
}
}
エラー
呼び出しが失敗すると、読みやすいメッセージ(HTTP ステータス、エラーコード、詳細、ドキュメントへのリンク、リクエスト ID)とともに、isError: trueが設定されたツールの結果が返されるため、アシスタントは問題の内容を確認できます。メッセージには、再試行が有効かどうかも記載されます。クレジットの使い切り、無効な API キー、未対応の画像や動画、Poof がダウンロードできなかった URL については、同じ入力で再試行しないよう示されます。
レート制限(429)や一時的な処理エラー(502/503/504)は、報告される前にバックオフを挟んで2回再試行されます。
開発
Poof API へのリクエストには、次の形式のUser-Agentが含まれます。
poof-mcp/<version> (<client>; <transport>)(例:poof-mcp/1.5.2 (Claude-ClaudeAI; hosted))。
これにより、リクエストを行った AI クライアントを識別できます。
npm version <patch|minor|major>でリリースします。このコマンドはsrc/version.tsも更新します。
# Install dependencies
npm install
# Build
npm run build
# Run in dev mode (Cloudflare Worker)
npm run dev
# Run locally (stdio mode)
POOF_API_KEY=your_key npm start
# Test
npm test
# Lint
npm run lint
# Format
npm run format
デプロイ(Cloudflare Worker)
MCP サーバーを Cloudflare Worker としてデプロイするには、次の手順を実行します。
# Install Wrangler if you haven't already
npm install -g wrangler
# Login to Cloudflare
wrangler login
# Deploy
wrangler deploy
必要な環境シークレットを設定します。
wrangler secret put POOF_API_KEY
wrangler secret put MCP_JWT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY
ダッシュボード URL の変数も設定します。
wrangler secret put DASHBOARD_URL
ChatGPT アプリディレクトリ用に、OpenAI が発行するドメイン確認トークンをOPENAI_APPS_CHALLENGE_TOKENとして設定します(/.well-known/openai-apps-challengeで提供されます)。
wrangler secret put OPENAI_APPS_CHALLENGE_TOKEN
OAuth 状態の保存用に KV 名前空間も作成し、wrangler.toml内の ID を更新する必要があります。
wrangler kv namespace create OAUTH_KV
wrangler kv namespace create OAUTH_KV --preview
ライセンス
MIT
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。