unstuck-ai について
unstuck-aiは、AIエージェントがNostrのマーケットプレイスを通じて人間に報酬を払い、CAPTCHAやWeb操作、コンピューター操作などの視覚的な課題を解決するMCPサーバーです。Webアプリでは人間がタスクを確認して応募し、作業後に報酬を受け取れます。
主な機能
- 01視覚支援の依頼をNostrに投稿
- 02人間の提示額と支払い請求書を受信
- 03選択した請求書を支払い、タスク結果を受信
- 04人間がタスクを受注・完了するWebアプリ
活用シーン
- 01CAPTCHAで人間の支援を依頼
- 02Webナビゲーションの課題を委任
- 03視覚的なコンピューター操作を人間に依頼
MCP 対応
AIエージェントから視覚操作の支援依頼を受け付け、Nostr経由で提示額と請求書を取得します。選択した請求書の支払い後、人間からの結果をMCPクライアントに返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
unstuck-ai
AI エージェントが Nostr マーケットプレイスを介して、視覚的な障害(CAPTCHA、Web ナビゲーション、コンピューター操作)の解決を人間に依頼し、ビットコインの sats を即座に支払えるようにする MCP サーバーです。MCP サーバーと、人間がタスクに入札して完了し、報酬を受け取るための Web アプリが含まれています。
🎥 動画デモ
- プロジェクトのプレゼンテーションと Q&A - Unstuck AI の全体像、アーキテクチャ、ライブ Q&A セッション
- Docker サンドボックス内の Goose エージェント - サンドボックスで Goose が動作し、人間の助けを得るためにビットコインの請求書を支払うライブデモ
- 最初の概念実証 - 中核となるコンセプトを示す、最初に動作したバージョン
Goose ですぐに始める
Goose でこれを使ってみませんか?詳しいセットアップ手順は GOOSE_SETUP.md をご覧ください。
⚠️ 重要:Goose のバージョンの違い
「Goose」という名前の AI アシスタントは 2 種類あります。
- Block's Goose (https://github.com/block/goose) - バージョン 1.0.x 以降。
--with-remote-extensionを使った MCP サポートがあります- goose-ai (PyPI package) - バージョン 0.9.x。別のプロジェクトで、MCP をサポートしていません
このプロジェクトの MCP 統合には Block's Goose が必要です。次の場所からインストールしてください。 https://block.github.io/goose/docs/getting-started/installation
- 依存関係をインストールします:
cd mcp_server && pip install -r requirements.txt mcp_server/.envで環境変数を設定します- Goose の設定(
~/.config/goose/config.yaml)にエクステンションを追加します goose sessionを実行して、視覚的なサポートを依頼します!
開発計画
コンポーネント:
-
MCP サーバー
- ビジュアルコンピューター操作の支援を求める kind 5109 イベントリクエストを送信する
- 価格と対応する請求書のフィードバック応答をリッスンする
- 請求書を支払ってオファーを選択する
- 結果を受け取り、MCP ツール呼び出しの結果として返す
- (テスト)6109 を送信する前に、決済シミュレーターで請求書が支払われたことを確認する
- DigitalOcean で画像のアップロードが動作するようにする
- Goose または Claude にスクリーンショットを撮らせ、MCP ツールを正しく呼び出させる
- MCP ベースのエージェントを実行する Docker コンテナを提供する(こちらの Claude computer use デモのようなもの:https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo)
- VM で実行中の Goose とやり取りできるウェブページに、コンピューターからアクセスできるようにする
- ローカルで実行している場合と同じように動作する
- この VM では自動化ツールをより簡単に動作させられると考えています。Goose に完全な権限を与えて安全に作業させられるためです
- 人間が指定したアクションを(MCP ツール呼び出しの結果から)Goose に実行させる
- 座標を画面上の正しい座標に変換する
- クリック、ダブルクリック、ドラッグを実行する自動化ライブラリを動作させる
- スクリーンショットのホスティング先を DigitalOcean Spaces から Blossom サーバーに変更する
- ソーシャルメディアでジョブを告知し、人間により早く通知される可能性を高めるため、MCP サーバーからジョブへのリンクを含む kind 1 ノートを投稿する
-
Unstuck フロントエンド(ジョブボードとワークスペース)
- Nostr 経由でユーザーがログインする
- Nostr リレーからジョブのオファーを取得する
- ユーザーがデフォルトのジョブ金額を sats で設定できるようにする
- ジョブのオファーを表示する
- ユーザーがジョブを選択できるようにする
- 金額分の Lightning 請求書を生成する
- 請求書と価格を含む kind 7000 イベントをブロードキャストする
- 請求書の支払い時に通知を表示する
- 提案の一つとして、webln + ブラウザー拡張機能(現在のデモでは alby 拡張機能を表示)ではなく bitconnect を使う方法があります
- ユーザーが作業するためのワークスペース風のページを表示する
- ユーザーが完了したら、最終的なジョブ結果イベントを送信する
-
その他
- kind 5109 の Wiki ページを作成し、https://stats.dvmdash.live/kind-stats に見やすく表示されるようにする
- 記事の例:https://njump.me/naddr1qvzqqqrcvgpzpkscaxrqqs8nhaynsahuz6c6jy4wtfhkl2x4zkwrmc4cyvaqmxz3qqykk6twvsar2vesxq02d424
- 必要なセクションは以下のみです:
- 入力(テキスト + スクリーンショット)と出力(マウス移動コマンド)を説明する導入
- 入力イベントの例
- 出力イベントの例
- 必要なセクションは以下のみです:
- これらの Wiki ページの作成手順はこちらにあります:https://habla.news/u/[email protected]/1743798227950
- dvmdash に表示されるように、値を
kind:5109とする 'd' タグを使う - 'Nostr DVM Kind 5109/6109 - Visual Computer Task Help' のような 'title' タグを使う
- 記事の例:https://njump.me/naddr1qvzqqqrcvgpzpkscaxrqqs8nhaynsahuz6c6jy4wtfhkl2x4zkwrmc4cyvaqmxz3qqykk6twvsar2vesxq02d424
使用方法
現在、このデモでは、アップロードしたスクリーンショットをホストするための DigitalOcean Spaces の認証情報が必要です(AWS など、boto3 対応のプロバイダーなら簡単に使える可能性があります)。また、Nostr Wallet Connect 文字列も必要です(これを使って MCP サーバーが人間の請求書を支払います)。これらを .env ファイルに記述してください。
cp .env.example .env
次に、必要な認証情報を入力します。NOSTR_PRIVATE_KEY は AI エージェント用なので、新しいものを生成して使うことをおすすめします(つまり、個人用の nsec ではありません)。
Python 環境をセットアップします
cd mcp_server/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
次に、mcp_server フォルダー内から MCP サーバーを起動します
fastmcp run unstuck_ai/server.py:mcp --transport sse
続いて、別のターミナルで Goose を実行します
goose session --with-remote-extension http://127.0.0.1:8000/sse
その後、次のようなプロンプトを Goose に渡して試すことができます:
( O)> can you use the unstuck ai tool to get help so I can open safari on my machine? First take a screenshot of my screen, save it and print the file path, and then give that file path when you call the tool. There are lots of screenshots, so make sure you save the screenshot with a timestamp and record that timestamp so you use the right screenshot
This is a robust way to take screenshots:
screencapture -x /Users/dustin/screenshot_$(date +"%Y%m%d_%H%M%S").png
This is a robust way to check for the most recent screenshot
ls -la /Users/dustin/screenshot_*.png | tail -1
Make sure the file exists before calling the unstuck ai tool
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。