MCP协议客户端

EasyMCP是一个灵活且适合初学者的Model Context Protocol(MCP)客户端,支持连接多种MCP服务器(SSE、NPX、UV),集成OpenAI API增强聊天体验,并支持动态工具集成和配置管理。

  • by mshojaei77
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 mshojaei77/EasyMCP

使用说明

EasyMCP

EasyMCP是一个灵活的、对初学者友好的模型上下文协议(MCP)客户端。它允许您连接到不同类型的MCP服务器-SSE、NPX和UV,因此您可以与各种工具(例如文件操作)交互,并与OpenAI API集成,以增强聊天体验。

特性

  • 多服务器支持
    • SSE服务器: 使用服务器URL通过服务器发送的事件进行连接。
    • 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"
        }
      }
    }
    
  • npxservers.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:
    列出项目依赖关系。

贡献

欢迎投稿!请分叉存储库并提交拉取请求,并详细描述您的更改。

许可证

该项目是开源的,可在 MIT许可证.

联系

对于问题或功能请求,请随时在GitHub存储库中打开问题。

编码愉快!