Agentic-Ray MCP 服务端实现

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个用于管理和暴露 MCP 服务器的后端框架,核心通过 Ray Serve 部署 MCP 服务、注册与发现 MCP 服务器,以及提供简易的 MCP 请求转发机制。客户端可以通过统一的接口向服务器发起资源读取、工具调用等请求。
  • 主要功能点

    • MCP 服务器注册与管理:通过命令行/API 将 MCP 服务器注册到运行时,支持按名称、资源配额等进行管理。
    • 打包与部署支持:能够从本地项目结构生成打包包,包含 MCP 服务器及其依赖信息,以便在云端部署与分发。
    • HTTP 接口与转发:为 MCP 服务器提供 HTTP 端点,通过一个标准化的/tools/call 接口处理工具调用请求,返回执行结果。
    • 侧车代理与安全策略:提供基于 Unix 套接字的侧车代理,做请求转发前的权限校验与审计日志,确保仅访问允许的 MCP 目标。
    • CLI 集成测试与示例:内置多项 CLI 测试用例,方便验证 MCP 相关的创建、注册和启动流程。
  • 安装步骤(简要)

    • 安装依赖:确保 Python 3.11+/3.12+、Ray、FastAPI、Ray Serve 等运行环境已就绪。
    • 安装和运行:在具备 Ray 集群的环境中,按仓库提供的脚手架指引创建 MCP 服务器、注册并启动服务。
    • 部署与运行:使用仓库提供的命令(如 create-mcp、mcp up、serve_mcp 等)将 MCP 服务器部署到 Ray Serve,并通过端口对外暴露。
  • 服务器配置(MCP 客户端连接所需的配置信息) 说明:MCP 客户端需要提供用于启动并连接 MCP 服务器的配置信息,以下为示例字段,按实际运行环境替换具体数值。为方便理解,以下为描述性 JSON 字段注释(非代码片段):

    • server_name: 服务器名称,例如 weather
    • command: 启动 MCP 服务器的命令名称,例如 start_mcp_server
    • args: 启动命令的参数对象,例如 { "datasets_directory": "/path/to/project/mcp_servers/weather/datasets", "port": 8265 }
    • 说明:以上字段用于 MCP 客户端在本地或云端启动并连接对应的 MCP 服务器。实际使用时请参考具体运行环境的启动脚本与部署方式。
    • 备注:MCP 客户端在库中主要负责触发与使用 MCP 服务器的接口调用,客户端配置本身并不需要被实际执行在此处的示例代码中。
  • 基本使用方法(易懂步骤)

    1. 通过命令创建 MCP 服务器目录与模板:在项目中执行创建指令生成 weather 等 MCP 服务器模板。
    2. 编辑服务器实现:修改 weather/server.py 等文件以实现具体的工具、资源与接口。
    3. 启动 MCP 服务:在支持 Ray Serve 的环境中执行相应命令启动 MCP 服务(例如 mcp up 或等效部署命令)。
    4. 使用侧车代理(若启用):确保 MCP 侧车代理已正确启动并指向允许的 MCP 服务器 URL,进行请求转发。
    5. 客户端交互:通过 MCP 客户端向服务器发送 MCP 请求,读取资源、调用工具并获取处理结果。

服务器信息