SageMaker MCP 服务端(直接工具示例)

使用说明

  • 项目简介

    • 这是仓库中一个简明的 MCP 服务器实现示例,演示如何在服务端注册一个工具(Tool),使 LLM 客户端能够通过 MCP 协议调用外部功能(本例为对 SageMaker 端点的推理调用)。核心是一个以 FastMCP 为基础的服务端,启动后监听标准输入输出传输。
    • 该实现专注于“工具注册与暴露”这一 MCP 服务器端的关键能力,适合作为在真实环境中搭建 MCP 服务端的起点。
  • 主要功能点

    • 注册工具(Tool):将一个自定义函数包装为 MCP 工具,供客户端调用。工具内部会将输入数据转发给 SageMaker 推理端获取结果。
    • 启动服务器:通过标准输入输出传输(stdio)启动 MCP 服务器,支持与 MCP 客户端进行 JSON-RPC 风格的通信。
    • 简单的后端集成:示例中的工具通过 AWS SDK 与 SageMaker Runtime 交互,返回推理结果。
  • 安装步骤

    • 安装基础依赖:Python 3.x 环境,安装 mcp 包及对 SageMaker 的依赖(如 boto3)。
    • 获取代码:将 server.py 放在本地目录中,确保路径与启动命令一致。
    • 安装依赖(示例性步骤):pip install mcp boto3
  • 服务器配置(MCP 客户端连接所需的 JSON 配置,属于 MCP 客户端侧信息,不需要服务器端代码)

    • 服务器配置示例(JSON,可直接用于 MCP 客户端进行连接): { "server_name": "SageMakerDirectToolServer", "command": "python3 /absolute/path/to/5_agents/ml-models-as-agent-tools/1-direct/server.py", "args": [] }
    • 说明:
      • server_name: 服务器唯一标识名称,用于客户端显示与管理。
      • command: 启动服务器的完整命令,需指向 server.py 的实际路径(请替换为实际绝对路径)。
      • args: 启动服务器时需要的参数,这个示例没有额外参数(可根据实际环境扩展)。
    • 备注:MCP 客户端在连接时通常只需要知道 server_name、启动命令及必要参数;服务器端代码无需暴露给客户端配置。
  • 基本使用方法

    • 启动服务器:在服务器所在目录运行前述启动命令,服务器将通过 stdio Transport 启动并等待 MCP 客户端请求。
    • 客户端使用(简述,非服务端代码):MCP 客户端通过 MCP 协议向该服务器发送工具调用请求(如对 SageMaker 的推理请求),服务器接收请求、调用相应工具并返回结果给客户端。
    • 监控与调试:检查服务器输出与 SageMaker 调用结果,确保工具注册成功且推理端点可访问。

服务器信息