使用说明
项目简介
该项目 'fused-mcp' 提供了一个简易的框架,用于搭建 MCP (Model Context Protocol) 服务器。它利用 Fused User Defined Functions (UDFs) 作为工具,使得数据科学家能够轻松地将 Python 代码和 API 接口暴露给支持 MCP 协议的 LLM 客户端,例如 Claude 桌面应用或其他兼容客户端。该服务器允许 LLM 通过标准化的方式调用预定义的 Python 函数(UDFs),从而扩展 LLM 的能力,使其能够访问外部数据、执行特定任务。
主要功能点
- UDFs 作为工具: 将 Python 函数封装为 Fused UDFs,并注册为 MCP 服务器的工具,供 LLM 调用。
- 本地代码执行: 允许 LLM 安全地调用和执行本地 Python 代码,无需 Fused 账户即可本地运行。
- 支持 Claude 桌面应用: 专门为 Claude 桌面应用设计,提供无缝集成体验。
- 提供本地客户端: 为无法使用 Claude 桌面应用(如 Linux 系统)的用户提供了一个简单的本地 Claude 客户端,方便测试和使用 MCP 服务器。
- 多种工具注册方式: 支持通过 token ID、UDF 名称或预定义的 agent 配置注册工具。
- SSE 传输协议: 默认使用 SSE (Server-Sent Events) 协议与客户端通信。
安装步骤
-
克隆仓库:
git clone https://github.com/fusedio/fused-mcp.git cd fused-mcp/ -
安装 '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:
-
打开 Notebook: 使用您喜欢的 IDE 打开 'fused_mcp_agents.ipynb' Notebook 文件,并按照 Notebook 中的指导步骤操作,完成服务器的配置和启动。
服务器配置
MCP 服务器的配置文件主要体现在启动命令及其参数上。以下是基于 'main.py' 脚本生成的 MCP 服务器配置信息示例 (JSON 格式),用于 MCP 客户端连接。
{ "serverName": "udf-server", // 服务器名称,可自定义 "command": "uv", // 启动命令,这里使用 uv 包管理器运行 Python 脚本 "args": [ // 启动参数 "run", // uv run 子命令,用于运行 Python 脚本 "main.py", // 服务器主脚本 "--agent", // 指定 agent 名称,agent 在 agents.json 中定义了一组 UDFs "get_current_time" // 这里以 "get_current_time" agent 为例,您也可以选择其他 agent 或使用 --udf-names 参数指定 UDFs ] }
参数说明:
- 'serverName': 自定义服务器名称,客户端连接时会用到。
- 'command': 运行服务器的命令,这里使用 'uv run' 来执行 Python 脚本。
- 'args': 传递给 'uv run' 命令的参数列表:
- '"run"': 'uv' 的子命令,表示运行。
- '"main.py"': 服务器主程序脚本。
- '"--agent"': 参数,用于指定要加载的 agent。Agent 在 'agents.json' 文件中定义,包含一组 UDFs。
- '"get_current_time"': 示例 agent 名称。您可以修改为 'agents.json' 中定义的其他 agent 名称,或者使用 '--udf-names' 参数直接指定要加载的 UDF 文件夹名称(逗号分隔)。还可以使用 '--tokens' 参数指定 Fused token IDs。
其他可选配置参数 (通过修改 'args' 列表):
- '--port <端口号>': 指定服务器监听端口,默认为 '8080'。
- '--host <主机地址>': 指定服务器绑定的主机地址,默认为 '0.0.0.0' (监听所有地址)。
- '--runtime <runtime>': 指定运行时环境,可选 'local' 或 'remote',默认为 'remote'。
注意: 请根据您的实际需求和 'agents.json' 或 UDFs 目录结构,调整 'args' 中的参数。如果您不使用 agent,可以使用 '--udf-names' 参数指定要注册为工具的 UDF 文件夹名称,例如 '"--udf-names", "current_utc_time,list_public_udfs"'.
基本使用方法
-
启动 MCP 服务器: 根据 Notebook 或 'README.md' 中的指导,配置并启动 MCP 服务器。例如,在仓库根目录下,使用 'uv run main.py --agent get_current_time' 命令启动服务器,这将注册 'agents.json' 中定义的 'get_current_time' agent 的 UDFs 作为工具。
-
配置 MCP 客户端: 在您的 MCP 客户端 (如 Claude 桌面应用或其他兼容客户端) 中,配置连接到该 MCP 服务器。您需要提供服务器的地址 (默认为 'http://localhost:8080/sse',SSE 协议) 以及上述生成的服务器配置 JSON 信息。
-
与 LLM 交互: 在 MCP 客户端中,与 LLM 进行对话。LLM 将能够发现并调用 MCP 服务器提供的工具 (UDFs),从而执行相应的 Python 代码并获取结果,扩展其功能。
-
使用本地客户端 (可选): 如果您无法使用 Claude 桌面应用,可以按照 'README.md' 中 "Using a local Claude client (without Claude Desktop app)" 部分的说明,配置并运行 'client.py' 脚本,连接到本地 MCP 服务器进行测试和交互。 您需要设置 'ANTHROPIC_API_KEY' 环境变量才能使用本地客户端连接 Claude API。
信息
分类
AI与计算