项目简介

Furikake (或简称 furi) 是一个方便易用的本地工具,旨在简化 Model Context Protocol (MCP) 服务器的管理和使用。它提供了一套命令行接口 (CLI) 和可选的 HTTP API,用户可以通过它轻松地添加、移除、启动、停止、重启和查看 MCP 服务器的状态。Furikake 的一个核心功能是 MCP 聚合器,它能够自动发现所有正在运行的 MCP 服务器提供的工具,并将它们整合成一个统一的接口暴露给 LLM 客户端。这意味着 LLM 客户端只需连接到 Furikake 的聚合器服务,即可访问由多个底层 MCP 服务器提供的所有工具能力。

主要功能点

  • MCP 服务器管理: 轻松从 GitHub 添加 MCP 服务器,并进行安装、移除、启动、停止、重启等操作。
  • 状态监控: 查看已安装 MCP 服务器的运行状态、资源占用和日志。
  • 工具浏览: 列出特定 MCP 服务器或所有正在运行的 MCP 服务器提供的工具及其描述和参数信息。
  • 工具调用: 通过命令行直接调用特定 MCP 服务器上的工具。
  • MCP 聚合器: 运行一个独立的 MCP 服务器进程,该进程会自动收集所有由 Furikake 管理并处于“在线”状态的 MCP 服务器的工具,并将它们聚合在一个统一的接口下。
  • HTTP API: 提供一个可选的 HTTP API,通过 RESTful 接口暴露部分管理和工具调用功能。

安装步骤

Furikake 使用 Bun 作为运行时环境。安装脚本会自动检测并安装 Bun(如果尚未安装)。

在 macOS 或 Linux 系统上,可以通过以下命令安装 Furikake:

curl -fsSL https://furikake.app/install | bash

安装完成后,可以通过运行以下命令验证是否安装成功:

furi

服务器配置(用于 MCP 客户端连接)

Furikake 本身作为 MCP 管理工具运行,但其内置的 MCP 聚合器 功能是提供给外部 LLM 客户端连接的 MCP 服务器实现。

要使用 MCP 客户端连接到由 Furikake 提供的聚合器 MCP 服务器,您首先需要启动该聚合器:

furi meta start -p <port>

其中 '<port>' 是您希望聚合器监听的端口,默认为 '9338'。

启动后,聚合器将作为一个独立的 MCP 服务器进程在后台运行(通过 PM2 管理)。您的 MCP 客户端需要配置连接到这个正在运行的进程网络端点,而不是通过启动命令连接(因为聚合器进程由 Furikake 管理)。

以下是 MCP 客户端连接到 Furikake 聚合器服务器所需的配置示例(通常为 JSON 格式,具体取决于您的客户端实现):

{
  "serverName": "furi-aggregator",
  "connection": {
    "host": "127.0.0.1",         // Furikake 聚合器通常运行在本地
    "port": 9338,               // 启动 furi meta start 时指定的端口 (默认为 9338)
    "transport": "sse",         // 聚合器默认通过 SSE 协议暴露接口
    "endpoint": "/sse"          // 聚合器的 SSE 端点路径
  },
  "capabilities": {
     "resources": ["file:///logs/{name}.log"], // 聚合器暴露的资源模板 (目前包含日志资源)
     "tools": true,             // 聚合器会暴露其从其他 MCP 收集的工具
     "prompts": false           // 目前聚合器不提供Prompts能力
  },
  "metadata": {
    "description": "Furikake MCP Aggregator Server providing tools from managed MCPs"
  }
}

重要提示:

  • 上述配置信息是提供给 MCP 客户端 使用的,用于连接到 Furikake 聚合器 这个 MCP 服务器。
  • 您不需要手动编辑或运行 'bun dist/app/aggregator/server/main.ts' 等聚合器内部文件。启动和管理由 'furi meta start/stop/restart' 命令完成。
  • 'port' 值需要与您运行 'furi meta start -p <port>' 时使用的端口一致。
  • 'transport' 指定了连接协议,Furikake 聚合器默认使用 SSE over HTTP。

基本使用方法

  1. 启动 MCP 聚合器服务器:

    furi meta start
    # 或指定端口
    # furi meta start -p 9338

    这将启动 Furikake 的内置 MCP 聚合器作为后台进程运行。

  2. 添加一个 MCP 服务器 (例如一个 GitHub 仓库实现的 MCP):

    furi add <github用户名>/<仓库名>
    # 示例: furi add smithery-ai/mcp-fetch

    这将下载并初始化指定的 MCP 服务器代码到本地。

  3. 启动已添加的 MCP 服务器:

    furi start <mcp名称>
    # mcp名称通常是 github用户名/仓库名 或您在安装时指定的别名
    # 例如: furi start smithery-ai/mcp-fetch
    # 如果 MCP 需要环境变量,可以使用 -e 参数:
    # furi start <mcp名称> -e '{"API_KEY":"your_key"}'

    这将启动指定的 MCP 服务器作为一个后台进程运行。注意:由 'furi start' 启动的 MCP 服务器会配置为仅使用 Stdio 协议,并由 Furikake 聚合器通过 Stdio 连接来获取其工具和功能。

  4. 使用 MCP 客户端连接到聚合器: 按照“服务器配置”章节的说明,配置您的 MCP 客户端连接到 'http://127.0.0.1:9338/sse'(或您指定的端口)。客户端连接成功后,将能发现并使用由所有已启动(通过 'furi start')的 MCP 服务器提供的工具。

  5. 通过命令行调用工具 (替代客户端): 如果您想直接通过命令行测试或使用工具,可以在 MCP 服务器(通过 'furi start' 启动)在线后,使用 'furi call' 命令。

    • 先列出某个 MCP 的工具:
      furi tools <mcp名称>
    • 然后调用工具:
      furi call <mcp名称> <工具名称> '{"参数名1":"值1", "参数名2":"值2"}'
      # 参数必须是有效的 JSON 字符串,使用单引号包围
      # 例如: furi call smithery-ai/mcp-fetch fetchUrl '{"url":"https://example.com"}'
  6. 管理 MCP 服务器:

    • 停止 MCP: 'furi stop <mcp名称>'
    • 重启 MCP: 'furi restart <mcp名称>'
    • 查看状态: 'furi status <mcp名称>' (或 'furi status' 查看所有)
    • 移除 MCP: 'furi remove <mcp名称>'

信息

分类

开发者工具