关于 mcp-z-client
用于管理 MCP 服务配置、启动、连接、能力发现、调用和清理的 JavaScript 客户端库。它以带类型的数据处理工具、提示词和资源响应,并提供表示转换辅助方法。
主要功能
- 01管理 MCP 服务配置
- 02通过 HTTP 或 stdio 启动和连接
- 03发现并调用工具、提示词和资源
- 04转换响应表示形式
- 05关闭受管理的客户端和进程
适用场景
- 01连接多个 MCP 服务
- 02启动并使用本地服务
- 03检查和测试服务能力
MCP 相关
它管理 MCP 服务的配置与连接,并发现和调用工具、提示词及资源。也可关闭受管理的客户端和已启动进程。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mcp-z/ client --skill mcp-z-client安装后在 Claude Code 中输入/mcp-z-client确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/automated-testing.mdconnect-public-server.mddiscover-capabilities.mdembedded-cluster.mdmultiple-servers.mdspawn-local-server.md详细介绍
@mcp-z/client
@mcp-z/client 用于管理 MCP 服务配置、进程启动、连接、发现、调用和清理。工具、提示词和资源调用会返回常规响应,其中包含类型化的 MCP 数据和表示辅助方法。
安装
npm install @mcp-z/client
在自行编写配置之前,请先读取使用该客户端的项目现有 MCP 配置。标准 .mcp.json 会将条目存储在 mcpServers 下。
使用客户端
HTTP 条目包含 type: 'http'。Stdio 条目使用 command,并可选使用 args 和 env。
registry.close() 会关闭所有受管理的客户端和已启动的进程。请将其放在 finally 中;如果使用该客户端的运行时和项目惯例支持显式资源管理,也可以使用 await using registry = createServerRegistry(config)。
工具名称和架构由已连接的服务定义,而非本技能定义。调用不熟悉的工具前,请先调用 client.listTools(),并使用返回的输入架构。发现操作是只读的。工具调用可能会更改外部状态,因此调用必须限于用户要求的操作。
便捷方法接受简单参数:
client.callTool(name, args)client.getPrompt(name, args)client.readResource(uri)
工具响应会公开 content、structuredContent、isError 和 _meta;提示词响应会公开 description、messages 和 _meta;资源响应会公开 contents 和 _meta。json() 和 text() 辅助方法会保留其转换语义。对于工具,如果存在 structuredContent,json() 会返回该内容;否则会解析第一个文本块。使用 JSON.stringify(response) 可序列化完整的 MCP 结果,包括扩展内容。
等待 callTool() 的结果时,如果 MCP 结果的 isError 为真,则会抛出 ToolResponseError;其 response 会保留完整的 MCP 错误结果。协议和传输错误会继续向上传播。解析失败或内容不兼容错误会在调用 json() 或 text() 时发生。
示例
连接选项
createServerRegistry(config, { cwd, env, dialects }) 用于控制已启动的进程。提供 env 会替换基础环境,而不是与 process.env 合并。
默认的 dialects: ['servers'] 会启动使用 command 的 stdio 条目。带有 start 块的 HTTP 条目需要设置 dialects: ['start'];如果两种形式都应启动,则需要设置 ['servers', 'start']。
registry.connect(name, { versionNegotiation: { mode: 'auto' } }) 会探测当前协议修订版本,并在失败时回退到旧版序列。只有调用方要求使用特定协议时,才固定协议修订版本。