项目简介

ToolHive是一个强大的平台,旨在简化Model Context Protocol (MCP)服务器的发现、部署、运行和管理。它允许用户安全地在隔离的容器中启动任何MCP服务器,无需手动配置和处理运行时问题。此外,ToolHive自身还包含一个实验性的MCP管理服务器,允许外部MCP客户端通过标准协议控制ToolHive的内部功能,例如搜索注册表、启动和停止其他MCP服务器。

主要功能点

  • MCP服务器部署与管理: 轻松启动、停止、重启和移除各类MCP服务器,无论是本地容器镜像还是通过协议方案(如'npx://'、'uvx://'、'go://')构建的服务器。
  • 安全隔离: 所有MCP服务器都在隔离的容器中运行,支持精细的权限控制、网络隔离和凭证安全管理。
  • 多传输协议支持: 支持SSE (Server-Sent Events) 和 Streamable HTTP (流式HTTP) 协议进行客户端通信。
  • 远程MCP服务器代理: 能够将远程MCP服务器作为本地工作负载进行管理,支持OAuth/OIDC认证、工具过滤等。
  • 内置MCP管理服务器 (实验性): ToolHive自身可作为一个MCP服务器启动,提供管理其他MCP工作负载(如列出、运行、停止MCP服务器)的工具。
  • 配置导出与导入: 可以将MCP服务器的运行配置导出为文件,并从文件导入配置以复用。
  • 日志管理: 查看MCP服务器和代理的日志,并清理废弃的日志文件。
  • OIDC/OAuth认证与授权: 支持为MCP服务器配置OIDC/OAuth认证,并集成Cedar策略进行细粒度授权。
  • 可观测性: 支持OpenTelemetry进行遥测,并可暴露Prometheus指标端点。
  • 客户端集成: 自动配置GitHub Copilot、Cursor等流行客户端。

安装步骤

ToolHive主要作为命令行工具'thv'运行,通常需要Docker或Podman等容器运行时环境。

  1. 安装Docker或Podman: 确保您的系统已安装并运行Docker或Podman。
  2. 下载ToolHive二进制文件: 从ToolHive的GitHub发布页面下载适用于您操作系统的最新'thv'二进制文件,或者通过源代码构建。
  3. 将'thv'添加到PATH: 将'thv'二进制文件放置在系统的'PATH'环境变量中,以便可以直接从命令行调用。

验证安装: 运行 'thv --version' 命令,如果显示版本信息,则表示安装成功。

服务器配置 (MCP管理服务器)

ToolHive自身可以作为一个MCP管理服务器运行,允许外部MCP客户端通过标准协议与其交互,以管理ToolHive内部的工作负载。

启动ToolHive的MCP管理服务器:

thv mcp serve --port 8080 --host localhost
  • '--port': 指定MCP管理服务器监听的端口,默认为'8080'。也可以通过环境变量'MCP_PORT'设置。
  • '--host': 指定MCP管理服务器监听的IP地址或主机名,默认为'localhost'。

MCP客户端连接此服务器时,需要配置以下信息(请注意,这是MCP客户端需要配置的信息,不是要在ToolHive中执行的代码):

{
  "mcpServers": {
    "toolhive-manager": {
      "url": "http://localhost:8080",      // 根据实际启动时的端口和主机调整
      "type": "streamable-http"            // 或者 "sse",取决于 ToolHive MCP 管理服务器的配置
    }
  }
}

请注意:ToolHive的MCP管理服务器是实验性功能('EXPERIMENTAL'),可能在未来版本中有所变化。

基本使用方法 (MCP管理服务器作为MCP客户端)

一旦ToolHive的MCP管理服务器启动,其他MCP客户端(如ToolHive CLI的'mcp'子命令)就可以连接并使用其提供的工具:

  1. 连接到MCP管理服务器并列出可用工具: 在一个新的终端中,启动ToolHive CLI的'mcp list tools'命令,指定MCP管理服务器的URL。

    thv mcp list tools --server http://localhost:8080 --transport streamable-http

    这应该会显示ToolHive管理服务器提供的工具列表,例如用于启动、停止或列出其他MCP服务器的工具。

  2. 通过MCP管理服务器启动一个新的MCP服务器 (例如OSV): 使用'thv mcp list tools'命令中获取到的工具,可以调用'run_mcp_server'工具来启动一个新的MCP服务器。假设'run_mcp_server'工具接受'name'和'image'参数。

    # 这只是一个概念性示例,实际调用会更复杂,并使用JSON-RPC客户端进行。
    # 实际MCP客户端会发送一个JSON-RPC请求,例如:
    # {"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "run_mcp_server", "arguments": {"name": "my-osv-server", "image": "osv", "transport": "sse"}}}

    客户端发送这样的请求后,ToolHive管理服务器将启动'osv' MCP服务器,并返回其状态。

启动其他类型的MCP服务器 (非MCP管理服务器)

ToolHive的主要用途是管理其他MCP服务器。例如,要启动一个OSV漏洞查询MCP服务器:

thv run osv --name my-osv-scanner --transport sse --proxy-port 8081

这将在'8081'端口启动一个名为'my-osv-scanner'的OSV MCP服务器。

然后可以使用'thv mcp list tools --server http://localhost:8081/sse#my-osv-scanner'来列出OSV服务器的工具,如'query_vulnerability'。

信息

分类

AI与计算