本项目是一个基于Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型(LLM)客户端提供通过去中心化Nostr网络获取人类视觉帮助的能力。
项目简介
该服务器充当LLM客户端和Nostr网络之间的桥梁。当LLM遇到需要人类视觉判断(例如,查看截图、完成验证码等)的任务时,可以通过MCP协议调用该服务器的工具。服务器会将请求发布到Nostr网络,等待人类工作者的响应、报价和最终结果,并将结果返回给LLM。
主要功能点
- 视觉帮助请求工具: 核心功能是暴露一个MCP工具,允许LLM客户端发起包含任务描述和截图的视觉帮助请求。
- Nostr集成: 与Nostr去中心化网络连接,用于发布请求(使用Kind 5109事件)和监听响应(如Kind 7000的报价和Kind 6xxx的结果事件)。
- 结果处理: 接收并处理来自Nostr网络的报价和任务结果,并将其格式化后返回给调用工具的LLM客户端。
- MCP协议支持: 实现标准的MCP服务器通信接口,兼容任何支持MCP协议的客户端。
安装步骤
- 克隆仓库:
git clone https://github.com/dtdannen/unstuck-ai.git cd unstuck-ai - 创建并激活Python虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows - 安装依赖:
pip install -r requirements.txt # 假设存在requirements.txt 或手动安装依赖 # 关键依赖包括: fastmcp, nostr-sdk, pydantic, python-dotenv, uvicorn, fastapi pip install fastmcp nostr-sdk pydantic python-dotenv uvicorn fastapi - 配置环境变量: 创建 '.env' 文件在项目根目录,并设置Nostr私钥和中继地址。
NOSTR_PRIVATE_KEY="你的Nostr私钥(hex格式)" RELAY_URLS="wss://relay.example.com,wss://another.relay.com" # 使用逗号分隔
服务器配置
MCP客户端需要通过JSON配置来启动和连接此服务器。以下是示例配置信息:
{ "server_name": "unstuck-ai", "command": "python", "args": ["-m", "mcp_server.unstuck_ai"] }
- 'server_name': 服务器在其能力声明中报告的名称,客户端用于识别。
- 'command': 启动服务器进程的命令。这里使用'python -m'方式运行包。
- 'args': 传递给'command'的参数,指定要运行的Python包入口。
基本使用方法
- 启动服务器: 在配置好环境变量后,在项目根目录运行:
服务器将启动并连接到配置的Nostr中继。python -m mcp_server.unstuck_ai - MCP客户端连接: 使用支持MCP协议的客户端,配置上述JSON信息,然后连接到'unstuck-ai'服务器。
- 调用工具: 客户端可以通过JSON-RPC调用服务器暴露的'request_visual_help'工具,并传递'description'、'screenshot_url'和可选的'max_price_sats'参数来发起视觉帮助请求。服务器将在Nostr网络上处理该请求并返回结果。
信息
分类
AI与计算