项目简介

本项目 'Fused UDF MCP服务器' 是一个基于 Fused User Defined Functions (UDFs) 构建的 MCP (Model Context Protocol) 服务器。它旨在帮助数据科学家更便捷地为 LLM 应用搭建后端服务,特别是与 Claude 桌面应用集成。通过注册和管理用户自定义函数 (UDFs) 作为工具,该服务器能够扩展 LLM 的能力,使其可以访问外部数据和执行特定功能。

主要功能点

  • 工具注册与执行: 允许将 Python 函数 (UDFs) 注册为 MCP 工具,供 LLM 客户端调用执行。
  • 简化MCP服务器搭建: 基于 Fused 框架,简化了 MCP 服务器的配置和部署过程。
  • 支持多种工具来源: 可以通过指定 UDF 名称、token ID 或 Agent 配置来注册工具。
  • 灵活的运行时配置: 支持本地和远程运行时环境。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/fusedio/udf-test.git
    cd udf-test/
  2. 安装 'uv': 如果尚未安装 'uv',请根据您的操作系统执行以下命令安装:

    • macOS/Linux:
      curl -LsSf https://astral.sh/uv/install.sh | sh
    • Windows:
      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  3. 测试客户端: 运行以下命令检查客户端是否正常工作:

    uv run main.py -h
  4. 配置和运行服务器: 根据您的需求配置服务器参数,并通过 'uv run main.py' 命令启动。

服务器配置

MCP 客户端需要以下 JSON 格式的配置信息来连接 'Fused UDF MCP服务器':

{
  "serverName": "udf-server",  // 服务器名称,默认为 udf-server
  "command": "uv run main.py", // 启动服务器的命令
  "args": [                   // 启动命令的参数
    "--udf-names",           // (可选) 要注册为工具的 UDF (文件夹) 名称列表,逗号分隔。例如 "current_utc_time,list_public_udfs"
    "current_utc_time,list_public_udfs",
    "--port",                // (可选) 服务器监听端口,默认为 8080
    "8080"
    // "--agent",             // (可选) Agent 名称,用于注册 agents.json 中定义的 Agent 的 UDFs 作为工具。指定 agent 时,不能同时指定 --tokens 或 --udf-names
    // "agent_name",
    // "--tokens",            // (可选) 要注册为工具的 token ID 列表,逗号分隔
    // "token1,token2",
    // "--runtime",           // (可选) 运行时环境,默认为 remote,可选值为 local 或 remote
    // "local",
    // "--host",              // (可选) 服务器绑定的主机地址,默认为 0.0.0.0
    // "0.0.0.0"
  ]
}

参数说明:

  • 'serverName': MCP 服务器的名称,客户端可以用来标识不同的服务器。
  • 'command': 启动 MCP 服务器的可执行命令。这里使用 'uv run main.py' 来运行 Python 脚本。
  • 'args': 传递给 'main.py' 脚本的命令行参数,用于配置服务器的行为。
    • '--udf-names': 注册指定的 UDF 文件夹下的 UDF 作为工具。多个 UDF 文件夹名用逗号分隔。
    • '--port': 指定服务器监听的端口号。
    • '--agent': 指定 'agents.json' 文件中定义的 Agent 名称。服务器将注册该 Agent 配置的 UDFs 作为工具。注意: 使用 '--agent' 参数时,不能同时使用 '--tokens' 或 '--udf-names' 参数。
    • '--tokens': 注册指定的 token IDs 对应的 UDFs 作为工具。多个 token ID 用逗号分隔。
    • '--runtime': 指定 UDF 的运行时环境,'local' 表示本地运行,'remote' 表示远程运行 (由 Fused 平台管理)。
    • '--host': 指定服务器绑定的主机地址。'0.0.0.0' 表示监听所有网络接口。

选择工具注册方式:

您可以根据需要选择以下方式之一来注册工具:

  • '--udf-names': 直接指定 UDF 文件夹名称,方便快捷地注册本地 UDFs。
  • '--agent': 通过配置 'agents.json' 文件,可以更灵活地管理和注册工具,特别是当工具与特定的 Agent 关联时。
  • '--tokens': 如果 UDFs 是通过 token ID 管理的,可以使用此方式注册。

基本使用方法

  1. 启动服务器: 在仓库根目录下,根据您的配置运行 'uv run main.py [参数]' 命令,例如:

    uv run main.py --udf-names current_utc_time,list_public_udfs --port 8081
  2. 配置 MCP 客户端: 将上面提供的 JSON 配置信息填入您的 MCP 客户端配置中,确保 'command' 和 'args' 与您启动服务器的命令一致。

  3. 连接和使用: 启动 MCP 客户端,客户端将根据配置连接到 'Fused UDF MCP服务器'。您可以在客户端中调用已注册的工具 (例如 'current_utc_time', 'list_public_udfs'),扩展 LLM 的功能。

更详细的使用方法和示例,请参考仓库中的 'setting_up_udf_mcp.ipynb' Notebook。

信息

分类

AI与计算