关于 EasyMCP
EasyMCP 是面向初学者的 MCP 客户端,可连接 SSE、NPX 和 UV 服务,并通过 OpenAI 与工具交互。它会获取已连接服务的工具,并提供聊天循环和配置管理。
主要功能
- 01连接 SSE、NPX 和 UV 服务
- 02自动获取服务提供的工具
- 03通过 OpenAI 处理查询和工具调用
- 04使用配置文件管理服务
- 05通过脚本添加服务配置
适用场景
- 01在聊天中调用 MCP 服务工具
- 02测试不同类型的 MCP 服务连接
- 03通过命令选择已配置服务
- 04将新服务加入相应配置文件
MCP 相关
EasyMCP 是 MCP 客户端,可连接 SSE、NPX 和 UV 类型的 MCP 服务,读取可用工具并在聊天中调用。它通过配置文件管理服务连接。
详细介绍
EasyMCP
EasyMCP 是一个灵活易用的 Model Context Protocol(MCP)客户端。它允许你连接到不同类型的 MCP 服务——SSE、NPX 和 UV——这样你可以与各种工具(例如文件操作)交互,并与 OpenAI API 集成以获得增强的聊天体验。
功能特性
- 多服务支持
- SSE 服务: 使用服务器 URL 通过 Server-Sent Events 连接。
- NPX 服务: 使用 NPX 命令启动服务(兼容 Windows 和非 Windows 系统)。
- UV 服务: 运行使用 UV 命令配置的服务。
- 动态工具集成:
客户端自动从连接的服务检索可用工具,并使用它们处理用户查询。 - 交互式聊天循环:
输入查询,让客户端使用 OpenAI 和可用的 MCP 工具处理响应。 - 配置管理:
使用add_server.py轻松添加新的服务配置,它会更新相应的配置文件(例如sse_servers.json、npx_servers.json或uv_servers.json)。
前置条件
- Python 3.10+(为了与
asyncio和现代异步功能兼容) - 一个有效的 OpenAI API 密钥(在你的
.env文件中设置) - 其他 API 密钥(如需其他集成)
安装
-
克隆仓库:
git clone https://github.com/yourusername/EasyMCP.git cd EasyMCP -
创建虚拟环境并激活它:
在 Windows 上:
python -m venv .venv .venv\Scripts\activate在 macOS/Linux 上:
python3 -m venv .venv source .venv/bin/activate -
安装必需的包:
pip install -r requirements.txt -
设置你的环境变量:
将提供的.env.sample重命名为.env(或创建你自己的.env)并填入必要的 API 密钥和配置。
服务配置文件
EasyMCP 使用多个 JSON 配置文件来管理服务:
-
sse_servers.json: 包含基于 SSE 的服务的配置。
示例:{ "mcpServers": { "@modelcontextprotocol/time": { "url": "https://router.mcp.so/sse/pnabizm8lkazpr" } } } -
npx_servers.json: 包含 NPX 服务的配置。
示例:{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:\\Users\\lotus\\Documents\\llm_books_papers", "C:\\Users\\lotus\\Documents\\llm_books_papers" ] } } } -
uv_servers.json: 包含 UV 服务的配置。
示例:{ "mcpServers": { "sqlite": { "command": "uv", "args": [ "--directory", "parent_of_servers_repo/servers/src/sqlite", "run", "mcp-server-sqlite", "--db-path", "~/test.db" ] } } }
使用方法
-
运行 MCP 客户端:
python main.py -
选择一个服务:
客户端将从sse_servers.json、npx_servers.json和uv_servers.json加载可用的服务。在提示时,输入相应的数字来选择一个服务。 -
与客户端交互:
连接后,输入你的查询。例如:- 要读取 PDF 文件:
read Build a Large Language Model.pdf - 要使用文件工具:
use read_file tool and read 2308.11432v5.pdf
客户端将引导你基于 MCP 服务提供的允许目录构建正确的文件路径。
- 要读取 PDF 文件:
添加新服务
要添加新的 MCP 服务配置:
-
为新服务准备你的 JSON 配置。
-
运行
add_server.py:python add_server.py此脚本将:
- 检测服务类型(NPX、UV 或默认为 SSE)。
- 将新配置附加到相应的文件(例如
npx_servers.json、uv_servers.json或sse_servers.json)。
示例文件
-
main.py:
EasyMCP 客户端的主入口点。它处理服务连接、聊天循环和使用 OpenAI 集成处理查询。 -
add_server.py:
用于将新 MCP 服务配置添加到 JSON 文件的脚本。 -
.env:
包含环境变量,如 API 密钥和模型配置。 -
requirements.txt:
列出项目依赖。
贡献
欢迎贡献!请 fork 仓库并提交详细描述你的更改的 pull request。
许可证
此项目是开源的,采用 MIT License。
联系方式
如有问题或功能请求,欢迎在 GitHub 仓库中开启 issue。
祝你编码愉快!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。