Sats4AI - Bitcoin-Powered AI Tools について
Sats4AIは、Bitcoin Lightningで都度決済する40種類以上のAI・通信ツールを提供するリモートMCPサーバーです。APIキーやアカウントなしで、通話、メッセージ、翻訳、音声、画像処理、文書抽出などを必要とするエージェント向けです。
主な機能
- 01AI通話、SMS、FAX、メール
- 02音声生成と文字起こし
- 03多言語翻訳
- 04画像生成・編集ツール
- 05文書抽出と形式変換
- 06Lightning請求書と決済フロー
活用シーン
- 01SMSや自動電話の送信
- 02テキスト翻訳や音声文字起こし
- 03画像の生成または編集
- 04PDFからテキストを抽出
- 05EPUBからオーディオブックを作成
MCP 対応
リモート MCP サーバーとして、AI、通信、文書関連のツールをMCP クライアントに公開します。ツールと料金を確認してLightning請求書を作成し、支払いIDを使ってサービスを呼び出します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://sats4ai.com/api/mcpclaude mcp add --transport http cnghockey-sats4ai https://sats4ai.com/api/mcp{"mcpServers":{"cnghockey-sats4ai":{"type":"http","url":"https://sats4ai.com/api/mcp"}}}Cursor で開く{"servers":{"cnghockey-sats4ai":{"type":"http","url":"https://sats4ai.com/api/mcp"}}}VS Code で開く{"mcpServers":{"cnghockey-sats4ai":{"type":"http","url":"https://sats4ai.com/api/mcp"}}}{"mcpServers":{"cnghockey-sats4ai":{"serverUrl":"https://sats4ai.com/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
57| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ocr | boolean | いいえ | receive_fax の場合:OCR によるテキスト抽出オプションを追加します(+200 sats)。支払い時にここで設定する必要があります。料金に含まれていない場合、receive_fax は実行時に ocr=true を拒否します。 |
| mode | enum | いいえ | generate_video の旧エイリアス:'standard'→768p、'pro'→2K。'resolution' の使用を推奨します。standard | pro |
| text | string | いいえ | text_to_speech に必須:合成する正確なテキスト(料金はティア別の文字単価で計算され、支払い時に確定します) |
| prompt | string | いいえ | generate_text に必須:正確なプロンプト(文字数に基づいて料金を計算し、支払い時に確定します) |
| message | string | いいえ | send_sms に必須:メッセージ本文(最大 1544 文字。SMS のセグメント単位で課金されるため、長文やアクセント記号付きのメッセージは料金が高くなります) |
| modelId | number | いいえ | 省略可能。list_models の AI モデル ID。省略するとデフォルト(最良)のモデルが使用されます。 |
| duration | number | いいえ | generate_video / animate_image に必須:長さ(秒、5-15) |
| quantity | number | いいえ | 従量課金の場合に支払う単位数:boardingpass_wallet ではパス数、extract_document / extract_receipt / send_fax ではページ数。デフォルトは 1 です。数量が過少の場合、実行時に拒否され、正確な追加支払額が返されます。 |
| toolName | string | はい | 支払い対象のツール名(例:'generate_text'、'generate_image'、'generate_video'、'send_sms'、'place_call') |
| resolution | enum | いいえ | generate_video / animate_image では 768p(デフォルト)または 2K を指定します。料金は解像度 × 長さで計算され、ネイティブ音声は無料です。2K は 768p のレンダリング結果をアップスケールしたものです。480p/720p/1080p は廃止された Seedance の段階ですが、引き続き受け付けます(480p/720p→768p、1080p→2K)。edit_image は編集 1 回につき一律 200 sats のため、resolution は料金に影響しません。768p | 2K | 480p | 720p | 1080p | 1K | 4K |
| fileContext | string | いいえ | generate_text の場合:ファイルを添付する際は、抽出したファイルのテキストを含めます(料金に影響します) |
| phoneNumber | string | いいえ | send_sms と place_call では必須です:E.164 形式の電話番号(例:+14155550100) |
| systemPrompt | string | いいえ | generate_text 用:カスタム system prompt を使用する場合に指定します(価格に影響します) |
| characterCount | number | いいえ | epub_to_audiobook では必須です:書籍テキストの総文字数(価格は音声ティアごとの文字単価で計算され、最低 500 sats)。書籍本文ではなく文字数を送信してください。ファイルは epub_to_audiobook 自体に渡します。実行時に実ファイルから価格を再計算し、支払い不足の場合は実行を拒否して、追加で支払う正確な金額を通知します。 |
| generate_audio | boolean | いいえ | 受け付けますが無視されます——H3 の音声はネイティブ機能で、常に有効かつ追加料金なしです。音声なしでの生成は指定できません。 |
| durationMinutes | number | いいえ | 音声/通話の時間(分)。audioUrl を指定して place_call を実行する場合は必須です(1~30)。transcribe_audio / transcribe_translate では分単位の価格(10 sats/分)の設定に使われるため、音声の長さを指定してください(既定値は 1)。支払い済みの長さを超える音声は、実行時に拒否され、返金されます。 |
詳細
sats4ai-mcp
AI エージェントのための、許可不要のコミュニケーションを加速するサービスです。Bitcoin Lightning で支払える 40 種類以上のツールを利用できます。登録不要、API キー不要、KYC 不要です。
AI エージェントがあらゆる言語での AI 通話、602 言語の音声、119 言語間の翻訳、FAX、SMS、文字起こし、オーディオブック、画像生成、音楽、ドキュメント抽出などを利用できるリモートの MCP(Model Context Protocol) サーバーです。すべて Lightning Network の少額決済による従量課金です。
クイックセットアップ
Claude Desktop
claude_desktop_config.json(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json)に追加します。
{
"mcpServers": {
"sats4ai": {
"url": "https://sats4ai.com/api/mcp"
}
}
}
Claude Code
claude mcp add sats4ai --transport http https://sats4ai.com/api/mcp
接続を確認するには、エージェントに 「最初の 3 つの Sats4AI モデルを一覧表示して」 と尋ねます。list_models が呼び出され、結果が返されます。エージェントが請求書を自動で支払う場合は、Lightning ウォレット MCP も追加してください(エージェントウォレット経由の支払いを参照)。
Cursor
Settings → MCP → Edit Config の順に選択し、次を追加します。
{
"mcpServers": {
"sats4ai": {
"url": "https://sats4ai.com/api/mcp"
}
}
}
Cursor を再起動します。新しいチャットで 「利用可能な Sats4AI ツールは?」 と尋ね、ツールが検出されることを確認します。自動支払いを行うには、Lightning ウォレット MCP と組み合わせてください(エージェントウォレット経由の支払いを参照)。
Windsurf
~/.codeium/windsurf/mcp_config.json を編集します(ファイルがない場合は作成します)。重要:Windsurf では、リモート HTTP MCP サーバーに url ではなく serverUrl を使用します。
{
"mcpServers": {
"sats4ai": {
"serverUrl": "https://sats4ai.com/api/mcp"
}
}
}
Windsurf を再起動します。Sats4AI ツールが Cascade のツール一覧に表示されます。Cascade では、すべての MCP を合わせて最大 100 個のツールを利用できるため、アクティブなツールは必要最小限にしてください。自動支払いを行うには、Lightning ウォレット MCP と組み合わせてください(エージェントウォレット経由の支払いを参照)。
stdio プロキシ(旧式の MCP クライアント)
リモート HTTP サーバーに対応していないクライアントでは、同梱の stdio プロキシを使用します。
npx sats4ai-mcp
または、設定に次を追加します。
{
"mcpServers": {
"sats4ai": {
"command": "npx",
"args": ["sats4ai-mcp"]
}
}
}
任意の MCP クライアント
サーバーの URL は次のとおりです。
https://sats4ai.com/api/mcp
これはリモート HTTP サーバーです。ローカルプロセス、依存関係、インストールは不要です。
何ができますか?
接続したら、エージェントにそのまま依頼してください。次のプロンプトでは、検出、Lightning 請求書の支払い、結果の取得までの一連の流れを試せます。
- 「この段落を Sats4AI でスペイン語に翻訳して。支払いを作成し、Lightning ウォレットで請求書を支払ってから、翻訳を実行して」
- 「+33612345678 への SMS 送信料金を確認してから、『明日の午後 3 時の予約が確定しました。』と送信して」
- 「雷雨の中の灯台の画像を生成して。請求書を支払い、結果を見せて」
- 「AI 音声エージェントに +14155551234 へ電話をかけさせて、歯科の予約を変更してから、文字起こしを渡して」
- 「この EPUB をオーディオブックにして。支払いを作成してから、完了するまで
check_job_statusを繰り返し確認して」 - 「この画像の背景を削除して」
- 「この音声ファイルを文字起こししてから、その内容を英語に翻訳して」
- 「この 3 ページの PDF を +4930123456 に FAX 送信する料金を見積もってから、送信して」
利用可能なツール
AI 生成
| ツール | 説明 | 価格 |
|---|---|---|
image | テキストプロンプトから画像を生成します | 100-200 sats |
video | テキストプロンプトから動画を生成します | 解像度に応じて約250-400 sats/秒(768pは250、2Kは400) |
video_from_image | 静止画像に動きを加えて動画にします | 解像度に応じて約250-400 sats/秒(768pは250、2Kは400) |
text | AI 言語モデルとチャットします(Kimi K3、1M コンテキスト、ビジョン) | 約1 sat/10文字(高品質)・約1 sat/1000文字(標準) |
translate_text | 119言語間でテキストを翻訳します | 1 sat/1000文字から |
translate_rare_language | 最先端モデルでは対応していない452言語に翻訳します — ボージュプリー語、マイティリー語、マガヒー語、マニプール語、ケチュア語、シャン語など。各言語には測定済みの品質スコアがあります | 50 satsから |
music | AI ボーカル付きの楽曲、またはインストゥルメンタル(構成タグ、歌詞なし)を生成します | 5 sats/秒、15~300秒(75~1,500 sats)・歌詞の作成は+25 |
3d | 写真を3D GLBモデルに変換します | 1,600 sats |
翻訳料金は言語によって異なります。 翻訳先の言語によって使用するエンジンが決まるため、より高性能なモデルで対応する言語では、標準の1 sat/1000文字より料金が高くなります。
GET /api/languagesは、すべての言語について正確な料金、モデル、測定済みのchrFスコアを返します。また、402チャレンジでは、支払い前に必ず実際の金額が提示されます。
音声とスピーチ
| ツール | 説明 | 価格 |
|---|---|---|
tts | テキスト読み上げ(3段階、602以上の言語) | 文字単位、1 satから |
transcription | 音声をテキストに変換します(13言語) | 10 sats/分 |
voice_clone | 音声サンプルから声を複製します | 7,500 sats |
epub_to_audiobook | 書籍(EPUB/PDF/TXT)をAIナレーション付きオーディオブックに変換します | 500 sats以上 |
translate_epub | EPUB全体を別の言語に翻訳します — EPUBを入力し、EPUBを出力します。マークアップはそのまま保持されます(非同期。create_paymentにはcharacterCountとtargetLanguageが必要です) | 翻訳先言語のエンジン料金に基づく文字単位、最低50 sats |
画像処理
| ツール | 説明 | 価格 |
|---|---|---|
remove_background | あらゆる画像の背景を削除します(BiRefNet、SOTA) | 44 sats |
upscale_image | Real-ESRGANで画像を2倍/4倍に拡大します | 5 sats |
restore_face | ぼやけた顔や損傷した顔を復元します(CodeFormer) | 25 sats |
colorize_image | 白黒写真をカラー化します(DDColor、ICCV 2023) | 5 sats |
deblur_image | カメラの手ぶれによるぼやけを除去します(NAFNet、ECCV 2022) | 110 sats |
render_card | タイポグラフィを使ったタイトルカード(PNG/JPEG)— レイアウトは決定論的で、送信したテキストがそのまま表示されます | 5 sats |
detect_nsfw | 画像の安全性を分類します(通常/示唆的/露骨) | 2 sats |
detect_objects | バウンディングボックス付きで物体を検出します(Grounding DINO) | 5 sats |
remove_object | 説明に基づいて物体を削除します — マスクは不要です | 130 sats |
image_edit | AIへの指示で画像を編集します | 変動(モデルによって異なります)— get_model_pricingを確認してください |
ビジョンとドキュメント
| ツール | 説明 | 価格 |
|---|---|---|
vision | 画像の内容を分析し、説明します | 21 sats |
ocr | PDFや画像からテキストを抽出します | 10 sats/ページ |
extract_receipt | レシートを構造化JSONに変換します | 25 sats/ページ |
file_convert | 200以上のファイル形式間で変換します | 100 sats |
pdf_merge | 複数のPDFを1つに結合します | 100 sats |
convert_html_to_pdf | HTML/MarkdownをPDFに変換します | 50 sats |
e_signature | 入力または描画した署名でPDFに署名します | 1,000 sats |
boardingpass_wallet | 航空会社の搭乗券(PDF/スクリーンショット)をGoogle Walletのパスに変換します | 100 sats/パス |
コミュニケーション
| ツール | 説明 | 価格 |
|---|---|---|
send_email | 任意のアドレスにメールを送信します | 200 sats |
send_sms | 世界中に SMS を送信します | 変動制(送信先によって異なります)— create_payment が正確な見積もりを返します |
place_call | 自動音声通話を発信します | 変動制(送信先によって異なります)— create_payment が正確な見積もりを返します |
ai_call | AI 音声エージェントを派遣して双方向通話を行います | 送信先と通話時間によって異なります — create_payment が正確な見積もりを返します |
open_voice_bridge | あなたのエージェントが一度に一ターンずつ進行する通話を開始します。こちらから発信して文字起こしを行い、あなたのエージェントが返答します。リアルタイムではなくターン制です。通話相手の最後の発言からあなたの返答開始までに、こちら側で約2秒かかるほか、モデルの思考時間も加わります | 送信先に応じた料金のデポジット — create_payment が正確な見積もりを返します |
voice_bridge_say | 開始中の通話で発話します。テキスト(602言語対応)または自分の音声を使用できます。各返答は1~2文(最大700音声単位)にしてください。通話相手は割り込めません | デポジットに含まれます |
poll_voice_bridge | 通話相手の発言を読み取ります。通話相手が話し終えたらすぐに文字起こしを取得するには、waitMs(最大25000)を指定してください | デポジットに含まれます |
end_voice_bridge | 通話を終了します。最終的な文字起こしと、デポジットのうち未使用の時間分の返金リンクを返します | デポジットに含まれます |
send_fax | 世界中にファクスを送信します(PDF URL または入力したテキスト) | 500 sats(10ページ以下)、以降1ページごとに+50 sats |
receive_fax | ファクスを受信する24時間の受付時間を開始し、メールで受け取ります | 500 sats(OCR オプションは+200) |
ヘルパーツール
| ツール | 説明 |
|---|---|
list_models | 利用可能な AI モデルと料金を確認します |
get_model_pricing | 特定のモデルの料金を取得します |
create_payment | サービスの Lightning 請求書を作成します |
check_payment_status | 支払いが受領されたか確認します。カート ID を指定すると、各項目の状態が表示されます |
create_cart | 1件の請求書で2~10件の通話分を支払います(合計最大2,000 sats)。各項目は通常の支払いと同様に利用できます。使用しなかった項目は、約1時間後にその項目の料金が返金されます |
check_job_status | 非同期ジョブ(動画、3D、オーディオブック、EPUB 翻訳)の状態を確認します |
get_job_result | 完了したジョブの結果を取得します |
request_refund | 失敗したサービスの返金を申請します |
vote_on_service | 予定されているサービスに賛成または反対の投票をします |
list_planned_services | 今後のサービスを確認し、投票します |
仕組み
- エージェントが
list_modelsを呼び出し、利用可能なモデルと料金を確認します - エージェントが
create_paymentを呼び出し、Lightning 請求書を取得します - エージェントの Lightning ウォレットを使って支払います(例:lightning-wallet-mcp)
- エージェントがツールを呼び出します(例:
image、text)。その際、paymentIdを指定します - 結果が返されます — base64 画像、テキスト、URL など
API キーもアカウントも不要です。ID に紐づくレート制限もありません。Bitcoin と AI だけです。
エラー処理と返金
支払い後に有料ツールが失敗すると、JSON-RPC エラーレスポンスに返金情報が含まれます。
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32603,
"message": "Image generation failed",
"data": {
"refund": {
"charge_id": 12345,
"refund_amount": 200,
"lnurl_withdraw": "lnurl1dp68gurn8ghj7..."
}
}
}
}
LNURL 対応ウォレット、または lightning-wallet の claim_lnurl_withdraw ツールを使って返金を請求してください。
エラーには error_code に加えて、復旧のための suggestion、example、さらに再試行可能なコードの場合は retry_after_seconds が error.data に含まれます。同じフィールドは isError: true のツール結果や、await_result のすべての FAILED 最終結果にも現れるため、どの経路でも同じ形式で処理できます。error テキストではなく、error_code に基づいて分岐してください。支払いライフサイクルに関するコードは、PAYMENT_NOT_FOUND(誤った paymentId)、PAYMENT_PENDING(請求書がまだ支払われていない)、PAYMENT_ALREADY_USED(各支払いで実行できるのは1回)です。失敗後に返金された場合は、refund が添付された L402_REFUND_ISSUED と表示されます。全コードの一覧:GET https://sats4ai.com/api/error-codes。
エージェントウォレットでの支払い
Lightning ウォレットの MCP サーバーと連携すれば、エージェントが自律的に支払いを行えます。
{
"mcpServers": {
"sats4ai": {
"url": "https://sats4ai.com/api/mcp"
},
"lightning-wallet": {
"command": "npx",
"args": ["lightning-wallet-mcp"]
}
}
}
エージェントは lightning-wallet を使って sats4ai の請求書を支払い、AI ツールを完全に自律して利用できます。
エージェントウォレットによっては、1 時間に送信できる支払いの回数に上限があります。create_cart は 2〜10 個の商品を受け取り、請求書を 1 件返すため、タスク全体で必要な支払いは 1 回だけです。その後、各商品はそれぞれの paymentId で利用できます。これらの ID は必ず保持してください。カート ID ではツールを実行できません。
Block Buzz
AI エージェントが対等なチームメイトとして活躍するオープンソースのワークスペース、Block Buzz を使っていますか?Buzz エージェントは Goose/Codex/Claude Code のサブプロセスであり、Buzz は MCP 設定を引き継いでエージェントを起動します。そのため、このサーバーは Buzz 専用の設定なしで Buzz ワークスペース内で動作します。
最も手軽な方法は、**Sats4AI ペルソナパック**です。このパックは、このサーバーと Lightning ウォレットに接続された @sats4ai チームメイトを追加するため、価格を調べ、請求書を支払い、結果をチャンネル内に返せるようになります。
git clone https://github.com/cnghockey/sats4ai-buzz-pack
buzz pack validate ./sats4ai-buzz-pack
手動で設定する場合は、Buzz が実行するエージェントに sats4ai(およびウォレット MCP)を追加してください。設定はそのまま引き継がれます。Buzz の .mcp.json は stdio 専用なので、リモートの url 形式ではなく、上記の npx sats4ai-mcp プロキシ形式を使用してください。
L402 API
MCP を使わずに HTTP で直接連携するには、L402 API を使用してください。
# Step 1: Request -> get 402 + Lightning invoice
curl -X POST https://sats4ai.com/api/l402/generate-image \
-H "Content-Type: application/json" \
-d '{"input": {"prompt": "a cat in space"}}' -i
# Step 2: Pay the invoice with any Lightning wallet
# Step 3: Re-send with proof
curl -X POST https://sats4ai.com/api/l402/generate-image \
-H "Content-Type: application/json" \
-H "Authorization: L402 <macaroon>:<preimage>" \
-d '{"input": {"prompt": "a cat in space"}}'
手動の手順をすべて省略することもできます。L402 エンドポイントは標準の L402 プロトコルに対応しているため、Lightning Labs が提供する L402 クライアントのlngetが自動的に支払いを行います。Lightning ノードを指定して、エンドポイントを呼び出してください。
lnget -X POST -d '{"text": "Hello", "targetLanguage": "Spanish"}' \
--content-type application/json --max-cost 50 \
https://sats4ai.com/api/l402/translate-text
# Fetches the 402, pays the invoice, retries, prints the result.
L402 のドキュメント全文:sats4ai.com/l402 | コード例:sats4ai-l402-examples
サービスディスカバリー
エージェントによるサービス検出のための、機械可読なエンドポイント:
# Full service catalog with pricing, quality benchmarks, and performance metadata
GET https://sats4ai.com/.well-known/l402-services
# MCP tool catalog with latency (p50/p95), reliability, and failure modes
GET https://sats4ai.com/api/mcp/discovery
# Semantic search — find tools by capability
GET https://sats4ai.com/api/discover?q=translate
# Per-service metadata with enums and input schemas
GET https://sats4ai.com/api/l402/{service}
すべての有料ツールにはパフォーマンスメタデータ(レイテンシ p50/p95、信頼性評価、既知の障害モード)が含まれているため、エージェントはどのツールを呼び出すか、どれくらい待つかを適切に判断できます。
プログラムからの利用
const { SERVER_URL, TOOLS, getClaudeConfig } = require("sats4ai-mcp");
console.log(SERVER_URL); // "https://sats4ai.com/api/mcp"
console.log(TOOLS); // ["image", "video", "text", ...]
console.log(getClaudeConfig()) // { mcpServers: { sats4ai: { url: "..." } } }
セキュリティ
脆弱性を見つけましたか?公開の issue は作成しないでください。 [email protected] までメールでご連絡ください。開示方針と対象範囲の詳細は SECURITY.md をご覧ください。
リンク
- ウェブサイト:sats4ai.com
- MCP ドキュメント:sats4ai.com/mcp
- L402 API ドキュメント:sats4ai.com/l402
- L402 コード例:github.com/cnghockey/sats4ai-l402-examples
- サービスディスカバリー:sats4ai.com/.well-known/l402-services
- セマンティック検索:sats4ai.com/api/discover
- セキュリティポリシー:SECURITY.md
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。