项目简介

'zig-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门为大型语言模型(LLM)客户端提供 Zig 编程语言的最新文档。它能够托管和管理 Zig 语言的内置函数和标准库资源,并提供查询工具,使 LLM 能够高效地获取和利用这些文档信息。无论是从本地 Zig 编译器还是 'ziglang.org' 下载,它都能确保文档的实时性和准确性。

主要功能点

  • 内置函数列表与查询: LLM 可以列出所有可用的 Zig 内置函数,或按名称搜索并获取其详细文档、签名和用法信息。
  • 标准库搜索: 在 Zig 标准库中按名称搜索声明(如函数、类型、命名空间),并获取匹配项的列表及其完全限定名。
  • 标准库项详情: 获取标准库中特定项的详细文档,包括函数签名、参数、错误、示例及可选的源文件代码。
  • 灵活的文档来源: 支持从本地安装的 Zig 编译器获取文档(确保版本匹配,无需网络),或从 'ziglang.org' 下载指定版本的文档并缓存。
  • 自动化更新: 支持手动、每日或启动时自动更新远程文档,确保信息始终是最新的。

安装步骤

'zig-mcp' 作为一个 Node.js 包发布,可以通过 'npx' 或 'bunx' 轻松安装和运行。您需要先确保系统已安装 Node.js 和 npm (或 Bun)。

  1. 确保 Zig 编译器安装: 如果您选择使用本地文档源(推荐),请确保您的系统已安装 Zig 编译器。
  2. 使用 'npx' (Node.js) 安装并启动:
    npx -y zig-mcp@latest
    此命令会下载并运行最新版本的 'zig-mcp',默认使用您本地安装的 Zig 编译器的文档。
  3. 使用 'bunx' (Bun) 安装并启动:
    bunx zig-mcp@latest
    此命令会下载并运行最新版本的 'zig-mcp',默认使用您本地安装的 Zig 编译器的文档。

服务器配置

MCP 客户端需要配置服务器的启动命令和参数才能与之通信。以下是适用于各种 MCP 客户端的 JSON 配置模板,您只需将其添加到您的 MCP 客户端配置中。

  • 默认配置 (使用本地 Zig 文档源):

    {
      "mcpServers": {
        "zig-docs": {
          "command": "npx",
          "args": ["-y", "zig-mcp@latest"],
          "description": "为LLM提供Zig编程语言标准库和内置函数的最新文档。默认使用本地Zig编译器的文档。"
        }
      }
    }

    参数说明:

    • 'command': 启动 MCP 服务器的执行器,这里是 'npx'。
    • 'args': 传递给 'command' 的参数列表。'zig-mcp@latest' 表示运行最新版本的 'zig-mcp'。
  • 指定远程文档源和 Zig 版本 (例如,Zig 0.14.1 版):

    {
      "mcpServers": {
        "zig-docs": {
          "command": "npx",
          "args": ["-y", "zig-mcp@latest", "--doc-source", "remote", "--version", "0.14.1"],
          "description": "为LLM提供Zig编程语言标准库和内置函数的最新文档。从ziglang.org下载指定0.14.1版本的文档。"
        }
      }
    }

    参数说明:

    • '--doc-source remote': 指定文档来源为远程 ('ziglang.org')。
    • '--version 0.14.1': 指定下载 Zig 0.14.1 版本的文档。您可以替换为 'master' 获取最新开发版或其他特定版本号。
    • '--update-policy daily' (可选): 可以在 'args' 中添加此参数,让服务器每天检查并更新文档。其他选项包括 'manual' (默认,不自动更新) 和 'startup' (每次启动时更新)。

基本使用方法

一旦 'zig-mcp' 服务器在您的 MCP 客户端中配置并成功运行,您的 LLM 客户端将能够自动发现并调用其提供的工具。

例如,当您在与 LLM 交互时提及 Zig 编程相关的查询,LLM 可能会:

  • 列出内置函数: 如果您询问 "Zig 有哪些内置函数?",LLM 可能会调用 'list_builtin_functions' 工具来获取列表。
  • 查询特定函数文档: 当您问 "给我 '@addWithOverflow' 函数的文档" 时,LLM 可能会调用 'get_builtin_function' 工具。
  • 搜索标准库: 当您需要查找 "Zig 中的 'ArrayList' 实现" 时,LLM 可能会使用 'search_std_lib' 工具。
  • 获取详细项信息: 如果您询问 "'std.debug.print' 的详细用法",LLM 可能会调用 'get_std_lib_item' 工具。

您也可以在 Prompt 中明确指示 LLM 使用这些工具,例如添加 'use zigdocs'。

信息

分类

开发者工具