使用说明

项目简介

ezmcp 是一个轻量级的 Python 框架,旨在简化 Model Context Protocol (MCP) 服务器的创建过程,尤其专注于使用 SSE(Server-Sent Events)协议进行通信。它借鉴了 FastAPI 的设计理念,提供了简洁的装饰器 API,用于定义可以被 MCP 客户端调用的工具,帮助开发者快速构建 LLM 应用的后端服务。

主要功能点

  • 工具 (Tools) 定义: 使用 Python 装饰器轻松定义 MCP 工具,类似于 FastAPI 的 API 定义方式。
  • 自动参数验证: 自动处理工具函数的参数验证和类型转换。
  • 工具 Schema 生成: 根据工具函数的签名自动生成 JSON Schema,用于 MCP 客户端理解工具接口。
  • SSE 传输支持: 内置支持 SSE 协议,用于与 MCP 客户端进行实时通信。
  • 中间件支持: 提供类似 FastAPI 的中间件机制,方便添加全局请求处理逻辑。
  • 交互式文档: 自动生成交互式文档页面,方便开发者探索和测试已定义的工具。

安装步骤

  1. 确保你的 Python 环境已安装,推荐使用 Python 3.8 或更高版本。
  2. 使用 pip 安装 ezmcp 库:
    pip install ezmcp

服务器配置

MCP 客户端需要配置以下信息以连接到 ezmcp 服务器。以下是一个 JSON 格式的配置示例,你需要根据你的实际情况进行调整:

{
  "serverName": "my-ezmcp-server",  // MCP 服务器的名称,可以自定义
  "command": "python3",             // 启动服务器的命令,这里假设使用 python3 运行
  "args": [                         // 启动命令的参数
    "examples/simple_server.py",   // 你的 ezmcp 服务器 Python 脚本路径,这里以 examples/simple_server.py 为例
    "--host", "0.0.0.0",          // (可选) 服务器绑定的 host,默认为 0.0.0.0
    "--port", "8000"             // (可选) 服务器监听的端口,默认为 8000
  ],
  "transport": "sse",               // 使用 SSE 传输协议
  "endpoint": "http://localhost:8000/sse" // SSE 端点 URL,根据实际服务器地址和端口修改
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,客户端用以识别连接的服务。
  • 'command': 启动 MCP 服务器进程的命令,通常是 Python 解释器路径 ('python' 或 'python3')。
  • 'args': 传递给启动命令的参数列表。
    • 第一个参数通常是你的 ezmcp 服务器脚本的路径 (例如 'examples/simple_server.py')。
    • '--host': (可选) 指定服务器绑定的网络地址,'0.0.0.0' 表示监听所有可用的网络接口。
    • '--port': (可选) 指定服务器监听的端口号,默认端口为 '8000'。
  • 'transport': 指定 MCP 客户端与服务器通信的传输协议,这里设置为 'sse' (Server-Sent Events)。
  • 'endpoint': SSE 协议的端点 URL,MCP 客户端通过此 URL 建立 SSE 连接。请根据你的服务器实际运行地址和端口进行调整。

注意:

  • 请根据你的实际 ezmcp 服务器脚本路径、运行环境和网络配置,修改 'command' 和 'args' 中的参数。
  • 如果你希望服务器监听特定的 IP 地址或使用不同的端口,请相应地修改 'args' 中的 '--host' 和 '--port' 参数。
  • 'examples' 目录下提供了 'simple_server.py' 和 'memory_server.py' 等示例脚本,你可以参考或直接使用这些示例进行测试。

基本使用方法

  1. 创建 ezmcp 应用: 在 Python 脚本中,首先创建一个 'ezmcp' 应用实例:

    from ezmcp import ezmcp, TextContent
    
    app = ezmcp("my-app") # "my-app" 是你的应用名称
  2. 定义工具 (Tools): 使用 '@app.tool' 装饰器定义工具函数。工具函数需要返回 'ezmcp.Response' 类型的结果,例如 '[TextContent(...)]'。

    @app.tool(description="Echo a message back to the user")
    async def echo(message: str):
        """工具的详细描述,会显示在文档中。"""
        return [TextContent(type="text", text=f"Echo: {message}")]
  3. 运行服务器: 在脚本的 'if name == "main":' 块中调用 'app.run()' 方法启动服务器。

    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=8000) # 启动服务器,默认 host 和 port
  4. 访问文档: 服务器启动后,你可以通过浏览器访问 'http://localhost:8000/docs' (默认地址) 查看自动生成的交互式文档,并测试已定义的工具。

  5. 连接 SSE 端点: MCP 客户端需要连接到 'http://localhost:8000/sse' (默认地址) SSE 端点,与服务器进行通信。

通过以上步骤,你就可以使用 ezmcp 框架快速搭建一个功能完善的 MCP 服务器,为你的 LLM 应用提供强大的上下文服务能力。

信息

分类

开发者工具