Furikake (furi)
项目简介
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。
基本使用方法
-
启动 MCP 聚合器服务器:
furi meta start # 或指定端口 # furi meta start -p 9338这将启动 Furikake 的内置 MCP 聚合器作为后台进程运行。
-
添加一个 MCP 服务器 (例如一个 GitHub 仓库实现的 MCP):
furi add <github用户名>/<仓库名> # 示例: furi add smithery-ai/mcp-fetch这将下载并初始化指定的 MCP 服务器代码到本地。
-
启动已添加的 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 连接来获取其工具和功能。
-
使用 MCP 客户端连接到聚合器: 按照“服务器配置”章节的说明,配置您的 MCP 客户端连接到 'http://127.0.0.1:9338/sse'(或您指定的端口)。客户端连接成功后,将能发现并使用由所有已启动(通过 'furi start')的 MCP 服务器提供的工具。
-
通过命令行调用工具 (替代客户端): 如果您想直接通过命令行测试或使用工具,可以在 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"}'
- 先列出某个 MCP 的工具:
-
管理 MCP 服务器:
- 停止 MCP: 'furi stop <mcp名称>'
- 重启 MCP: 'furi restart <mcp名称>'
- 查看状态: 'furi status <mcp名称>' (或 'furi status' 查看所有)
- 移除 MCP: 'furi remove <mcp名称>'