Pare
  ](https://www.npmjs.com/package/@paretools/git) ](https://www.npmjs.com/package/@paretools/git)   ](https://nodejs.org)  
为AI代理提供可靠、结构化的CLI输出——不再解析脆弱的终端文本。
Pare提供 主控程序 这些服务器封装了常见的开发工具(git、npm、docker、测试运行器等),并返回干净、经过模式验证的JSON,而不是原始终端文本。代理获得可以直接操作的类型化数据,而无需进行脆弱的字符串解析。
问题
解析CLI输出很脆弱。原始终端文本包括ANSI转义码、装饰性标题、进度条、特定于区域设置的格式以及以微妙的方式破坏代理工作流的平台差异。一个与…合作良好的代理人 git status 在macOS上可能会在Windows上失败,因为输出格式发生了变化。测试运行器的摘要行可能会在不同版本之间移动,从而悄无声息地破坏正则表达式。
Pare通过返回具有一致字段名的模式验证JSON来消除这类错误,而不管平台、工具版本或区域设置如何。额外的好处是,结构化输出要小得多——代理每次工具调用使用的令牌更少:
| 工具命令 | 原始令牌 | Pare令牌 | 缩减 |
|---|---|---|---|
docker build (多阶段,11个步骤) | 373 | 20 | 95% |
git log --stat (5次提交,冗长) | 4992 | 382 | 92% |
npm install (487个包裹,警告) | 241 | 41 | 83% |
vitest run (28项测试,全部通过) | 196 | 39 | 80% |
cargo build (2个错误,帮助文本) | 436 | 138 | 68% |
pip install (9个包,进度条) | 288 | 101 | 65% |
cargo test (12次测试,2次失败) | 351 | 190 | 46% |
npm audit (4个漏洞) | 287 | 185 | 36% |
令牌估计使用~4个字符/令牌。最大的节省出现在冗长的命令(构建、安装、测试)上。对于更简单的工具,如eslint或tsc,主要优点是可靠的结构化数据——代理可以直接使用类型化的JSON,而不是解析字符串。
运作原理
每个Pare工具返回两个输出:
content--人类可读的文本,供显示它的MCP客户端使用structuredContent--类型化、模式验证的JSON,可供代理处理
这使用MCP structuredContent 和 outputSchema 提供类型安全、经过验证的数据的功能,代理可以依赖这些数据而无需自定义解析。
例子: git status
原始git输出(~118个令牌):
On branch main
Your branch is ahead of 'origin/main' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git restore --staged ..." to unstage)
modified: src/index.ts
new file: src/utils.ts
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add ..." to include in what will be committed)
temp.logPare结构化输出(~59个标记):
{
"branch": "main",
"upstream": "origin/main",
"ahead": 2,
"staged": [
{ "file": "src/index.ts", "status": "modified" },
{ "file": "src/utils.ts", "status": "added" }
],
"modified": ["README.md"],
"deleted": [],
"untracked": ["temp.log"],
"conflicts": [],
"clean": false
}代币减少50%。零信息丢失。完全打字。节省随着输出的冗长而扩大——测试运行程序和构建日志减少了80-92%。
可用服务器(28个软件包,240个工具)
只安装与您的堆栈相关的服务器——大多数项目只需要2-4台。完整的目录涵盖了广泛的生态系统,因此Pare无论在哪里都能工作。
| 类别 | 服务器 | 工具 | 包装 |
|---|---|---|---|
| 版本控制 | 版本控制系统, | 55加元 |
工具架构 --每个工具的详细响应示例和字段描述。 另请参见 工具响应示例 用于快速JSON示例。
快速设置
# 1. Configure MCP servers (non-interactive)
npx @paretools/init --client claude-code --preset web
# 2. Add agent rules to your project
# (append to existing CLAUDE.md, or copy if new)
cat node_modules/@paretools/init/rules/CLAUDE.md >> CLAUDE.md
# 3. Restart your client session
# 4. Validate
npx @paretools/init doctor可用预设: web, python, rust, go, jvm, dotnet, ruby, swift, mobile, devops, full
客户设置指南
完整快速入门指南 --预设、生态系统映射、验证 手动配置 --为所有客户端配置路径和格式 代理集成指南 --规则文件、钩子、CLI到MCP的映射
配置
工具选择
默认情况下,每个Pare服务器都会注册其所有工具。如果服务器公开了您不需要的工具,或者您想限制代理可用的工具,您可以使用环境变量对其进行过滤。
每台服务器筛选器 --限制单个服务器的工具:
# Only register status and log in the git server
PARE_GIT_TOOLS=status,log npx @paretools/git通用过滤器 --限制所有服务器上的工具:
# Only register these specific tools across any server
PARE_TOOLS=git:status,git:log,npm:install npx @paretools/git禁用所有工具 --将env-var设置为空字符串:
PARE_GIT_TOOLS= npx @paretools/git # no tools registered| 环境变量 | 范围 | 格式 | 示例 |
|---|---|---|---|
PARE_TOOLS | 所有服务器 | server:tool,... | git:status,npm:install |
PARE_{SERVER}_TOOLS | 一台服务器 | tool,... | status,log,diff |
规则:
- 无环境变量=启用所有工具(默认)
PARE_TOOLS(通用)优先于每服务器变量- 服务器名称使用大写字母,连字符替换为下划线(例如。,
PARE_MY_SERVER_TOOLS) - 逗号周围的空格被忽略
常见模式:
# Read-only git (no push, commit, add, checkout)
PARE_GIT_TOOLS=status,log,diff,branch,show
# Minimal npm
PARE_NPM_TOOLS=install,test,run
# Only specific tools across all servers
PARE_TOOLS=git:status,git:diff,npm:install,test:run在JSON MCP配置中,通过 env 按键:
{
"mcpServers": {
"pare-git": {
"command": "npx",
"args": ["-y", "@paretools/git"],
"env": {
"PARE_GIT_TOOLS": "status,log,diff,show"
}
}
}
}故障排除
| 问题 | 解决方案 |
|---|---|
npx 在Windows上找不到/ENOENT | 使用 cmd /c npx 包装(见您的 客户设置指南) |
| 首次启动缓慢 | 运行 npx -y @paretools/git 一次缓存或全局安装: npm i -g @paretools/git |
| Node.js版本错误 | Pare要求Node.js>=20 |
| NVM/fnm路径问题 | 使用绝对路径 npx例如。, ~/.nvm/versions/node/v22/bin/npx |
| MCP连接超时 | 设置 MCP_TIMEOUT=30000 对于克劳德代码,或增加 initTimeout 在客户端配置中 |
| 填充上下文的工具太多 | 使用 工具选择 env-vars用于限制工具,或仅安装所需的服务器 |
贡献
每个服务器都是一个自包含的包。看 贡献.md 完整的指南。
