项目简介
本项目 '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 配置来注册工具。
- 灵活的运行时配置: 支持本地和远程运行时环境。
安装步骤
-
克隆仓库:
git clone https://github.com/fusedio/udf-test.git cd udf-test/ -
安装 '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"
- macOS/Linux:
-
测试客户端: 运行以下命令检查客户端是否正常工作:
uv run main.py -h -
配置和运行服务器: 根据您的需求配置服务器参数,并通过 '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 管理的,可以使用此方式注册。
基本使用方法
-
启动服务器: 在仓库根目录下,根据您的配置运行 'uv run main.py [参数]' 命令,例如:
uv run main.py --udf-names current_utc_time,list_public_udfs --port 8081 -
配置 MCP 客户端: 将上面提供的 JSON 配置信息填入您的 MCP 客户端配置中,确保 'command' 和 'args' 与您启动服务器的命令一致。
-
连接和使用: 启动 MCP 客户端,客户端将根据配置连接到 'Fused UDF MCP服务器'。您可以在客户端中调用已注册的工具 (例如 'current_utc_time', 'list_public_udfs'),扩展 LLM 的功能。
更详细的使用方法和示例,请参考仓库中的 'setting_up_udf_mcp.ipynb' Notebook。
信息
分类
AI与计算