项目简介
Zig MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务实现。它利用 Zig 语言的高性能和内存控制能力,提供一个高效稳定的平台,用于向大型语言模型 (LLM) 客户端提供上下文信息和执行外部功能(工具调用)。
主要功能点
- 工具托管与执行: 允许注册和运行自定义工具,扩展 LLM 的能力。项目内置了示例工具(如 'echo' 和 'reverse')。
- 多传输协议支持: 支持通过标准输入/输出 (stdio) 或 HTTP 协议进行通信,适应不同的部署环境。
- JSON-RPC 通信: 使用标准的 JSON-RPC 2.0 协议处理客户端请求和服务器响应。
- 内存高效: 利用 Zig 的内存管理特性(如 arena 分配器),优化内存使用。
- 并发处理: HTTP 传输支持线程池,实现高并发连接处理。
- MCP 兼容: 兼容 MCP 0.4.0 规范。
安装步骤
该服务器使用 Zig 语言构建,需要先安装 Zig 编译器。
- 安装 Zig: 根据你的操作系统,从 ziglang.org 下载并安装 Zig 0.14.0 或更高版本。
- 克隆仓库:
git clone https://github.com/jedisct1/zig-mcp-server.git cd zig-mcp-server - 构建项目:
这将在 'zig-out/bin/' 目录下生成可执行文件 'mcp_server'。你也可以使用 'zig build -Doptimize=ReleaseSmall' 进行优化构建。zig build
服务器配置
MCP 客户端需要配置连接到此服务器的信息。这些配置通常在客户端的设置文件中完成,以 JSON 格式表示。客户端需要知道如何启动服务器进程(对于 Stdio 传输)或如何连接到服务器的网络地址(对于 HTTP 传输)。
以下是客户端配置可能需要的信息:
- 服务器名称 (server name): 为这个服务器指定一个用户友好的名称,例如 "Zig MCP Server"。
- 传输协议 (transport): 指明使用的连接方式,可以是 "stdio" 或 "http"。
- 启动命令 (command) 和参数 (args): 仅当使用 Stdio 传输时需要。
- 'command': 服务器可执行文件的路径,例如 '"./zig-out/bin/mcp_server"'。
- 'args': 启动服务器所需的命令行参数列表,例如 '[]' (使用默认 stdio) 或 '["--transport", "stdio"]'。
- URL (url): 仅当使用 HTTP 传输时需要。
- 'url': 服务器的 HTTP 地址和 JSON-RPC 端点路径,例如 '"http://127.0.0.1:7777/jsonrpc"' (如果服务器运行在默认主机和端口)。注意,HTTP 服务器的可执行文件启动参数可能需要设置为 '["--transport", "http", "--port", "7777"]' 等以监听指定的地址。
客户端会根据这些信息来启动服务器进程(Stdio)或发起 HTTP 连接。
基本使用方法
- 启动服务器:
- 使用 Stdio 传输(默认):运行 './zig-out/bin/mcp_server'
- 使用 HTTP 传输:运行 './zig-out/bin/mcp_server --transport http --port 7777'
- 启动 MCP 客户端: 配置你的 MCP 客户端,使其使用上述相应的启动命令或 URL 连接到 Zig MCP 服务器。
- 客户端交互: 客户端通过 MCP 协议与服务器通信:
- 发送 'initialize' 请求进行协议握手。
- 发送 'mcp/tools/list' 请求发现服务器提供的工具(如 'echo', 'reverse')。
- 发送 'mcp/tools/invoke' 请求调用特定的工具并传递参数。
- 发送 'shutdown' 请求关闭连接。
信息
分类
AI与计算