使用说明
项目简介
easy-mcp 提供了一个简化的框架,用于构建基于 Model Context Protocol (MCP) 的服务器。这些服务器可以作为大型语言模型 (LLM) 的扩展,提供诸如网页搜索、文件系统访问等外部能力。本项目旨在帮助开发者快速搭建自定义的 MCP 服务器,并通过 'agent.py' 脚本进行集成和测试。
主要功能点
- 模块化服务器设计: 允许开发者在 'mcp-servers' 目录下创建独立的工具服务器,例如 'lynx.py' 提供了网页搜索功能。
- 灵活的服务器配置: 通过 'servers.yaml' 文件集中管理和配置所有服务器,包括服务器名称、描述、启动命令和环境变量。
- 便捷的客户端代理: 'agent.py' 作为一个简单的 MCP 客户端,可以根据配置启动和管理多个 MCP 服务器,并接收用户输入的自然语言指令,交给集成的 LLM (虽然代码中没有明确的LLM调用,但设计上是为LLM应用服务的)。
- 调试模式: 提供 '--debug' 模式,仅启动服务器而不执行代理逻辑,方便开发者测试服务器配置和运行状态。
安装步骤
-
克隆仓库
git clone https://github.com/WillChangeThisLater/easy-mcp.git cd easy-mcp -
设置虚拟环境并安装依赖
./setup.sh这个脚本会自动创建 Python 虚拟环境并安装 'requirements.txt' 中列出的依赖包。
-
安装外部工具 根据你配置的服务器,可能需要安装额外的外部工具:
- 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: 服务器进程需要的环境变量,以键值对形式配置。
基本使用方法
-
运行 'agent.py'
-
运行所有配置的服务器: 默认情况下,'agent.py' 会启动 'servers.yaml' 中配置的所有服务器。
python agent.py -
选择性运行服务器: 使用 '--servers' 参数指定要启动的服务器名称。例如,只启动 'fs' 和 'lynx' 服务器:
python agent.py --servers fs lynx -
调试模式: 使用 '--debug' 参数启动调试模式,这将只启动服务器,而不会执行后续的 agent 逻辑。用于测试服务器是否配置正确并能成功启动。
python agent.py --debug
-
-
通过管道传递指令
你可以通过管道将自然语言指令传递给 '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' 或其他客户端代码中实现。
信息
分类
开发者工具