使用说明

项目简介

easy-mcp 提供了一个简化的框架,用于构建基于 Model Context Protocol (MCP) 的服务器。这些服务器可以作为大型语言模型 (LLM) 的扩展,提供诸如网页搜索、文件系统访问等外部能力。本项目旨在帮助开发者快速搭建自定义的 MCP 服务器,并通过 'agent.py' 脚本进行集成和测试。

主要功能点

  • 模块化服务器设计: 允许开发者在 'mcp-servers' 目录下创建独立的工具服务器,例如 'lynx.py' 提供了网页搜索功能。
  • 灵活的服务器配置: 通过 'servers.yaml' 文件集中管理和配置所有服务器,包括服务器名称、描述、启动命令和环境变量。
  • 便捷的客户端代理: 'agent.py' 作为一个简单的 MCP 客户端,可以根据配置启动和管理多个 MCP 服务器,并接收用户输入的自然语言指令,交给集成的 LLM (虽然代码中没有明确的LLM调用,但设计上是为LLM应用服务的)。
  • 调试模式: 提供 '--debug' 模式,仅启动服务器而不执行代理逻辑,方便开发者测试服务器配置和运行状态。

安装步骤

  1. 克隆仓库

    git clone https://github.com/WillChangeThisLater/easy-mcp.git
    cd easy-mcp
  2. 设置虚拟环境并安装依赖

    ./setup.sh

    这个脚本会自动创建 Python 虚拟环境并安装 'requirements.txt' 中列出的依赖包。

  3. 安装外部工具 根据你配置的服务器,可能需要安装额外的外部工具:

    • Lynx: 'lynx' 服务器依赖 Lynx 命令行浏览器,用于网页搜索。请确保你的系统已安装 Lynx。
    • Docker: 'puppeteer' 和 'github' 服务器(如果配置)可能需要 Docker 环境。
    • Node.js: 'fs' 服务器(如果配置)可能需要 Node.js 环境。

服务器配置

服务器配置信息存储在根目录下的 'servers.yaml' 文件中。你需要根据实际使用的服务器修改此文件。

以下是一个 'servers.yaml' 示例配置,包含了 'lynx' 服务器的配置:

servers:
  - name: lynx  # 服务器名称,客户端通过此名称引用
    description: 使用 Lynx 进行网页搜索的服务器 # 服务器描述
    command: python  # 启动服务器的命令
    args: ["mcp-servers/lynx.py"]  # 启动服务器的命令参数
    env: {} # 环境变量 (本例中为空)
  • servers: 配置服务器列表。
    • name: 服务器的唯一标识符,在客户端 (如 'agent.py') 中通过此名称引用服务器。
    • description: 服务器的功能描述,用于帮助理解服务器的作用。
    • command: 启动服务器进程的命令,例如 'python' 或 'node'。
    • args: 启动服务器进程的命令行参数,以列表形式提供。例如 '["mcp-servers/lynx.py"]' 表示执行 'python mcp-servers/lynx.py'。
    • env: 服务器进程需要的环境变量,以键值对形式配置。

基本使用方法

  1. 运行 'agent.py'

    • 运行所有配置的服务器: 默认情况下,'agent.py' 会启动 'servers.yaml' 中配置的所有服务器。

      python agent.py
    • 选择性运行服务器: 使用 '--servers' 参数指定要启动的服务器名称。例如,只启动 'fs' 和 'lynx' 服务器:

      python agent.py --servers fs lynx
    • 调试模式: 使用 '--debug' 参数启动调试模式,这将只启动服务器,而不会执行后续的 agent 逻辑。用于测试服务器是否配置正确并能成功启动。

      python agent.py --debug
  2. 通过管道传递指令

    你可以通过管道将自然语言指令传递给 'agent.py',以利用配置的 MCP 服务器来处理这些指令。例如,使用 'lynx' 服务器搜索 "QEMU setup on ubuntu" 的相关链接:

    echo "find links relevant to QEMU setup on ubuntu" | python agent.py --servers lynx

注意: 本项目主要提供 MCP 服务器框架和示例,实际与 LLM 的集成和指令处理逻辑需要在 'agent.py' 或其他客户端代码中实现。

信息

分类

开发者工具