Hatch MCP 服务器端

  • 项目简介
    • 该仓库实现了一个基于 MCP 的服务器端,使用 Go 语言和 mark3labs/mcp-go 库,提供一组用于 Hatch 平台的工具。服务器注册多种工具(如部署应用、创建数据库、查看日志、检查状态、设置机密、连接域名、获取数据库 URL 等),并通过 MCP 框架对外暴露。客户端(如 AI 助手)通过 JSON-RPC 请求来调用这些工具并获取结果。
  • 主要功能点
    • MCP 服务器核心:使用 MCP 框架搭建服务器、通过 stdio 暴露服务,并支持 JSON-RPC 请求/响应。
    • 工具注册与执行:注册多种工具,每个工具定义需要的输入参数和描述;调用后返回文本结果或错误信息。
    • 与 Hatch API 集成:通过认证令牌与 Hatch API 通信,执行诸如创建应用、重启、获取域名、添加/删除环境变量等操作。
    • 认证与会话管理:通过本地存储的 token(环境变量、配置文件或 --token 旗标)进行身份验证,确保只有授权用户才能调用 MCP 工具。
    • 路由与错误处理:对缺失参数、未认证、或 API 调用错误等情况进行清晰的错误返回。
  • 安装与运行
    • 运行命令:
      • 确保已安装 Go 语言环境并获取源码。
      • 构建并直接运行 Hatch CLI 的 MCP 模块:hatch mcp
    • 运行后,MCP 服务器将对外暴露,AI 客户端可以通过配置连接到该 MCP 服务器(通常通过 JSON-RPC 客户端进行通信)。
  • 服务器配置(给 MCP 客户端使用的配置示例) 说明:MCP 客户端需要知道服务器的启动命令和参数来连接到 MCP 服务器。下面给出一个符合仓库信息的示例配置,用于在客户端配置中指向 Hatch 的 MCP 服务器。 JSON 示例(请直接使用文本形式提供给客户端配置,不作为代码块展示): { "mcpServers": { "hatch": { "name": "hatch", "command": "hatch", "args": ["mcp"] } // 若需要添加额外服务器,可按需扩展 } } 注释说明:
    • mcpServers.hatch.name 为服务器实例名称,用于标识该 MCP 服务。
    • mcpServers.hatch.command 为启动 MCP 服务器的命令,在本仓库中对应 hatch。
    • mcpServers.hatch.args 为启动参数,此处为 ["mcp"],表示启动 Hatch 的 MCP 服务。
    • 客户端不需要了解服务器实现内部细节,只需知道上述启动信息即可建立连接。
  • 基本使用方法
    • 启动 MCP 服务器:运行 hatch mcp
    • 在 AI 助手中配置 MCP 服务器时,使用上面的 JSON 配置,使得客户端能够通过指定的命令和参数启动并连接到服务器。
    • 使用 MCP 工具时,按照工具的输入输出格式(JSON-RPC)向服务器发送请求,服务器会返回结果文本或错误信息。

服务器信息