本项目是一个基于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协议的客户端。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/dtdannen/unstuck-ai.git
    cd unstuck-ai
  2. 创建并激活Python虚拟环境 (推荐):
    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # 或 venv\Scripts\activate # Windows
  3. 安装依赖:
    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
  4. 配置环境变量: 创建 '.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包入口。

基本使用方法

  1. 启动服务器: 在配置好环境变量后,在项目根目录运行:
    python -m mcp_server.unstuck_ai
    服务器将启动并连接到配置的Nostr中继。
  2. MCP客户端连接: 使用支持MCP协议的客户端,配置上述JSON信息,然后连接到'unstuck-ai'服务器。
  3. 调用工具: 客户端可以通过JSON-RPC调用服务器暴露的'request_visual_help'工具,并传递'description'、'screenshot_url'和可选的'max_price_sats'参数来发起视觉帮助请求。服务器将在Nostr网络上处理该请求并返回结果。

信息

分类

AI与计算