项目简介

ToolHive (thv) 是一个轻量级命令行工具,旨在简化 MCP 服务器的部署、管理和安全。它使用 Docker 容器技术,在隔离且受控的环境中运行 MCP 服务器,降低了部署复杂性和安全风险,并提升了易用性和一致性。ToolHive 提供了一个精选的 MCP 服务器注册中心,用户可以轻松发现和部署各种 MCP 服务器。

主要功能点

  • 简化部署: 一键部署 MCP 服务器,无需手动安装和管理各种依赖,例如 Python 或 Node.js 环境。
  • 增强安全性: 通过容器隔离和安全的密钥管理,默认提供高安全性的 MCP 服务器运行环境,避免明文泄露敏感信息。
  • 标准化封装: 利用 OCI 容器标准,提供可重复、标准化的 MCP 服务器打包方式,确保兼容性和可靠性。
  • MCP 服务器注册中心: 内置精选的 MCP 服务器注册中心,方便用户发现和部署经过验证的 MCP 服务器。
  • 企业级授权: 提供强大的企业级授权控制,安全管理工具访问,并能与 Kubernetes 等现有基础设施无缝集成。
  • 客户端集成: 自动配置 GitHub Copilot、Cursor 等常用开发工具,简化客户端配置流程。

安装步骤

ToolHive 提供了多种安装方式,推荐使用 Homebrew (macOS) 或直接下载二进制文件。

方法一:使用 Homebrew (macOS)

brew tap stacklok/tap
brew install thv

方法二:下载二进制文件

访问 toolhive/releases 下载适用于您操作系统的最新版本二进制文件。下载后,将其添加到您的 PATH 环境变量中。

方法三:从源代码构建

确保您已安装 Go 语言环境。

git clone https://github.com/StacklokLabs/toolhive
cd toolhive
go build ./cmd/thv
go install ./cmd/thv

服务器配置

ToolHive 本身是一个 MCP 服务器管理器,它通过容器运行和代理实际的 MCP 服务器。对于 MCP 客户端,您需要配置连接到 ToolHive 提供的代理服务器地址。

以下是一个 MCP 客户端配置示例 (JSON 格式),展示了如何配置连接到由 ToolHive 管理的名为 "fetch" 的 MCP 服务器:

{
  "mcpServers": {
    "fetch": {
      "url": "http://localhost:8080/sse#fetch"
      // "url" 字段指定了 MCP 服务器的地址。
      //  - "http://localhost:8080":ToolHive 代理服务器的地址 (主机名和端口)。
      //  - "/sse":SSE 协议的端点。
      //  - "#fetch":MCP 服务器的名称,用于 ToolHive 内部路由。
    }
  }
}

注意:

  • 上述配置中的 'url' 字段是关键配置信息,需要根据 'thv run' 命令启动的 MCP 服务器实际地址进行配置。
  • ToolHive 默认使用 'stdio' 传输协议,并提供 SSE 传输协议选项 ('thv run --transport sse ...')。客户端通常通过 SSE 协议与 ToolHive 代理服务器通信。
  • 端口 '8080' 是示例端口,实际端口可能由 'thv run --port' 参数指定,或者由 ToolHive 自动分配。
  • 服务器名称 '"fetch"' 需要与 'thv run <server-name>' 命令中使用的服务器名称一致。

基本使用方法

  1. 启动 MCP 服务器:

    使用 'thv run <server-name>' 命令启动预定义的 MCP 服务器,例如启动 'fetch' 服务器:

    thv run fetch

    您可以使用 'thv registry list' 命令查看可用的 MCP 服务器列表。

  2. 列出运行中的 MCP 服务器:

    使用 'thv list' 命令查看当前 ToolHive 管理的运行中的 MCP 服务器及其状态和 URL:

    thv list

    输出结果会包含每个 MCP 服务器的 URL,您需要将此 URL 配置到您的 MCP 客户端中。

  3. 停止和移除 MCP 服务器:

    使用 'thv stop <server-name>' 命令停止指定的 MCP 服务器:

    thv stop fetch

    使用 'thv rm <server-name>' 命令移除已停止的 MCP 服务器:

    thv rm fetch
  4. 管理密钥:

    ToolHive 提供了 'thv secret' 命令来安全地管理 MCP 服务器所需的 API 密钥等敏感信息。

    thv secret set github
    # 输入您的 GitHub Personal Access Token
    
    thv run --secret github,target=GITHUB_PERSONAL_ACCESS_TOKEN github

    上述命令设置名为 'github' 的密钥,并在运行 'github' MCP 服务器时,将其作为环境变量 'GITHUB_PERSONAL_ACCESS_TOKEN' 传递给容器。

请参考 ToolHive 的官方文档和 'thv --help' 命令获取更详细的使用说明和高级配置选项。

信息

分类

开发者工具