使用说明

项目简介

该项目 '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) 协议与客户端通信。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/fusedio/fused-mcp.git
    cd fused-mcp/
  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. 打开 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"'.

基本使用方法

  1. 启动 MCP 服务器: 根据 Notebook 或 'README.md' 中的指导,配置并启动 MCP 服务器。例如,在仓库根目录下,使用 'uv run main.py --agent get_current_time' 命令启动服务器,这将注册 'agents.json' 中定义的 'get_current_time' agent 的 UDFs 作为工具。

  2. 配置 MCP 客户端: 在您的 MCP 客户端 (如 Claude 桌面应用或其他兼容客户端) 中,配置连接到该 MCP 服务器。您需要提供服务器的地址 (默认为 'http://localhost:8080/sse',SSE 协议) 以及上述生成的服务器配置 JSON 信息。

  3. 与 LLM 交互: 在 MCP 客户端中,与 LLM 进行对话。LLM 将能够发现并调用 MCP 服务器提供的工具 (UDFs),从而执行相应的 Python 代码并获取结果,扩展其功能。

  4. 使用本地客户端 (可选): 如果您无法使用 Claude 桌面应用,可以按照 'README.md' 中 "Using a local Claude client (without Claude Desktop app)" 部分的说明,配置并运行 'client.py' 脚本,连接到本地 MCP 服务器进行测试和交互。 您需要设置 'ANTHROPIC_API_KEY' 环境变量才能使用本地客户端连接 Claude API。

信息

分类

AI与计算