项目简介

'Lucky'是一个自进化的智能代理工作流框架,专注于多代理系统的优化和协作模式发现。它通过将工作流定义为可演进的数据结构,并利用遗传编程等算法进行优化。该框架支持多种工具集成,其中包括与Model Context Protocol (MCP) 集成的外部工具。本说明将聚焦于'Lucky'仓库中提供的一个具体MCP服务器实现——Webshare代理MCP服务器,它演示了如何通过MCP协议为LLM客户端提供外部功能。

主要功能点

  • 标准化代理服务: 通过Model Context Protocol (MCP) 标准化地向LLM客户端提供Webshare代理。
  • JSON-RPC通信: 支持通过JSON-RPC协议与客户端进行通信,传输请求和响应。
  • Stdio传输协议: 默认使用标准输入/输出 (Stdio) 作为传输协议。
  • 获取随机代理: 提供一个名为'get-proxy'的工具,LLM客户端可以调用此工具来获取一个随机的Webshare代理URL。

安装步骤

本MCP服务器是'Lucky'monorepo中的一个子项目。要运行它,你需要首先安装'Lucky'仓库。

  1. 克隆仓库并安装依赖

    git clone https://github.com/eenlars/lucky.git
    cd lucky
    bun install # 这将安装所有依赖并构建必要的包
  2. 配置Webshare API Key 在'lucky'项目根目录创建或编辑'.env.local'文件,添加你的Webshare API Key:

    WEBSHARE_API_KEY=你的Webshare_API_密钥

    (Webshare API Key是访问Webshare代理服务的必要凭证。如果缺少此密钥,服务器将无法启动。)

  3. 启动MCP服务器 切换到'apps/mcp-servers-examples/webshare-proxy'目录,然后启动服务器:

    cd apps/mcp-servers-examples/webshare-proxy
    bun run start # 或者 bun run dev

    服务器启动后,会在标准错误输出(stderr)中打印'Webshare MCP Server running on stdio'信息。

服务器配置(供MCP客户端使用)

MCP客户端需要以下JSON格式的配置信息才能连接并使用此MCP服务器。请根据你的实际项目路径调整'options.cwd'。

{
  "name": "webshare-proxy",
  "command": "bun",
  "args": [
    "run",
    "start"
  ],
  "options": {
    "cwd": "/path/to/lucky/apps/mcp-servers-examples/webshare-proxy"
  },
  "tools": [
    {
      "name": "get-proxy",
      "description": "Fetch a single random proxy URL from Webshare."
    }
  ]
}

配置参数说明:

  • 'name': MCP服务器的唯一标识符,建议为'webshare-proxy'。
  • 'command': 启动MCP服务器的可执行命令。此处为'bun'。
  • 'args': 传递给'command'的参数数组。'"run", "start"'用于执行'webshare-proxy'子项目的启动脚本。
  • 'options.cwd': 必填。指定MCP服务器进程的工作目录。请替换'/path/to/lucky/apps/mcp-servers-examples/webshare-proxy'为你本地'lucky'仓库中'webshare-proxy'目录的实际绝对路径。
  • 'tools': 这是一个数组,列出了该MCP服务器提供的工具。
    • 'name': 工具的名称,LLM客户端将使用此名称来调用工具,此处为'get-proxy'。
    • 'description': 工具的简要描述,帮助LLM客户端理解其功能。

基本使用方法

一旦MCP客户端配置并成功连接到此Webshare代理MCP服务器,LLM即可通过调用'get-proxy'工具来获取一个随机的Webshare代理URL。 例如,一个LLM客户端可能会生成一个JSON-RPC请求,内容类似于:

{
  "jsonrpc": "2.0",
  "method": "tool_code/get-proxy",
  "params": {},
  "id": "123"
}

MCP服务器将执行'get-proxy'功能,返回一个包含随机代理URL的JSON-RPC响应:

{
  "jsonrpc": "2.0",
  "result": {
    "type": "tool_code/get-proxy_output",
    "output": {
      "content": [{ "type": "text", "text": "http://user:pass@ip:port" }]
    }
  },
  "id": "123"
}

LLM客户端可以解析此响应,并使用返回的代理URL进行后续操作。

信息

分类

AI与计算