mcpField
E
EasyMCP

EasyMCP

github.com/mshojaei77框架与 SDK1783 周前更新

关于 EasyMCP

EasyMCP 是面向初学者的 MCP 客户端,可连接 SSE、NPX 和 UV 服务,并通过 OpenAI 与工具交互。它会获取已连接服务的工具,并提供聊天循环和配置管理。

主要功能

  1. 01连接 SSE、NPX 和 UV 服务
  2. 02自动获取服务提供的工具
  3. 03通过 OpenAI 处理查询和工具调用
  4. 04使用配置文件管理服务
  5. 05通过脚本添加服务配置

适用场景

  1. 01在聊天中调用 MCP 服务工具
  2. 02测试不同类型的 MCP 服务连接
  3. 03通过命令选择已配置服务
  4. 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 密钥(如需其他集成)

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/EasyMCP.git
    cd EasyMCP
    
  2. 创建虚拟环境并激活它:

    在 Windows 上:

    python -m venv .venv
    .venv\Scripts\activate
    

    在 macOS/Linux 上:

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. 安装必需的包:

    pip install -r requirements.txt
    
  4. 设置你的环境变量:
    将提供的 .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"
          ]
        }
      }
    }
    

使用方法

  1. 运行 MCP 客户端:

    python main.py
    
  2. 选择一个服务:
    客户端将从 sse_servers.json、npx_servers.json 和 uv_servers.json 加载可用的服务。在提示时,输入相应的数字来选择一个服务。

  3. 与客户端交互:
    连接后,输入你的查询。例如:

    • 要读取 PDF 文件:read Build a Large Language Model.pdf
    • 要使用文件工具:use read_file tool and read 2308.11432v5.pdf

    客户端将引导你基于 MCP 服务提供的允许目录构建正确的文件路径。

添加新服务

要添加新的 MCP 服务配置:

  1. 为新服务准备你的 JSON 配置。

  2. 运行 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。

祝你编码愉快!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。