关于 unstuck-ai
unstuck-ai 是面向 AI Agent 的 MCP 服务,可通过 Nostr 市场付费请求真人处理验证码、网页导航和电脑操作等视觉障碍。配套网页应用让真人查看任务、竞价并完成工作后收款。
主要功能
- 01向 Nostr 发布视觉任务请求
- 02接收真人报价和付款发票
- 03支付选定发票并接收任务结果
- 04提供真人接单与完成任务的网页应用
适用场景
- 01遇到验证码时请求真人协助
- 02委托真人处理网页导航障碍
- 03请求真人帮助执行电脑视觉任务
MCP 相关
该 MCP 服务接收 AI Agent 的视觉交互求助请求,通过 Nostr 获取报价和发票,支付选定发票后将真人返回的结果交给 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
unstuck-ai
MCP 服务可让 AI Agent 通过 Nostr 市场,即时向人类支付 sats(比特币),以解决视觉障碍(验证码、网页导航、计算机操作)。其中包含 MCP 服务和 Web 应用,人类可以对任务出价、完成任务并获得报酬。
🎥 视频演示
- 项目介绍与问答 - 全面介绍 Unstuck AI、架构及现场问答环节
- Docker 沙盒中的 Goose Agent - Goose 在沙盒中运行并支付比特币账单以获取人类帮助的现场演示
- 最初的概念验证 - 展示核心概念的首个可运行版本
使用 Goose 快速入门
想将此项目与 Goose 搭配使用?请参阅 GOOSE_SETUP.md,了解完整的设置说明。
⚠️ 重要:Goose 版本区别
有两款不同的 AI 助手名为“Goose”:
- Block's Goose(https://github.com/block/goose)- 版本 1.0.x 及以上,支持通过
--with-remote-extension使用 MCP- goose-ai(PyPI 软件包)- 版本 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 前,检查发票是否已在支付模拟器中支付
- 让图片上传功能在 digital ocean 上正常运行
- 让 goose 或 claude 截取屏幕截图,并正确调用 MCP 工具
- 提供一个 Docker 容器,用于运行基于 MCP 的 Agent(例如此处的 claude computer use 演示 https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo)
- 你应该能够在自己的计算机上打开一个网页,与在 VM 中运行的 Goose 交互
- 它的运行效果应该与在本地运行相同
- 我们预计在此 VM 中更容易让自动化工具正常运行,因为你可以安全地授予 goose 完整权限
- 让 goose 执行人类给出的操作(来自 MCP 工具调用的结果)
- 将坐标转换为屏幕上的正确坐标
- 让自动化库正常工作,以执行单击、双击和拖动
- 将屏幕截图的托管位置从 digital ocean spaces 改为 blossom 服务
- 让 MCP 服务发布一个 kind 1 笔记,链接到任务,以便在社交媒体上宣传,并提高人类更快收到通知的可能性
-
Unstuck 前端(任务看板和工作区)
- 用户通过 Nostr 登录
- 从 Nostr 中继拉取任务报价
- 允许用户设置以 sats 计价的默认任务金额
- 显示任务报价
- 允许用户选择任务
- 为该金额生成 lightning 发票
- 广播包含发票和价格的 kind 7000 事件
- 发票支付后显示通知
- 一个建议是使用 bitconnect 代替 webln + 浏览器扩展(当前演示使用 alby 扩展)
- 显示类似页面的工作区,供用户完成工作
- 用户完成后发送最终任务结果事件
-
其他
- 编写一篇关于 kind 5109 的 wiki 页面,使其能在 https://stats.dvmdash.live/kind-stats 上正常显示
- 示例文章:https://njump.me/naddr1qvzqqqrcvgpzpkscaxrqqs8nhaynsahuz6c6jy4wtfhkl2x4zkwrmc4cyvaqmxz3qqykk6twvsar2vesxq02d424
- 只需包含以下部分:
- 介绍输入(文本 + 屏幕截图)和输出(鼠标移动命令)
- 输入事件示例
- 输出事件示例
- 只需包含以下部分:
- 编写这些 wiki 页面的说明见此处 https://habla.news/u/[email protected]/1743798227950
- 使用值为 'kind:5109' 的 'd' 标签,以便在 dvmdash 上显示
- 使用类似 'Nostr DVM Kind 5109/6109 - Visual Computer Task Help' 的 'title' 标签
- 示例文章:https://njump.me/naddr1qvzqqqrcvgpzpkscaxrqqs8nhaynsahuz6c6jy4wtfhkl2x4zkwrmc4cyvaqmxz3qqykk6twvsar2vesxq02d424
使用方法
目前,该演示需要 digital ocean spaces 凭据来托管上传的屏幕截图(任何 boto3 提供方都可能很容易适用,例如 AWS),还需要一个 Nostr Wallet Connect 字符串(MCP 服务通过它支付给人类的发票)。这些内容应写入 .env 文件。
cp .env.example .env
然后填写所需的凭据。NOSTR_PRIVATE_KEY 是 AI Agent 的私钥,建议生成一个新的密钥来使用(也就是说,不应使用你个人的 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。