执行shell命令并使用智能输出过滤来减少AI代理上下文消耗的MCP服务器。
当AI编码助手执行shell命令(尤其是测试和构建)时,它们会收到数千行冗长的输出,这会导致:
示例:运行包含50个通过测试和2个失败测试的测试会产生2000多行输出,但代理只需要显示失败和总结的大约20行。
quiet-shell执行命令并通过可配置模板智能过滤输出:
npm install -g @codemcp/quiet-shell-mcp
或使用pnpm:
pnpm add -g @codemcp/quiet-shell-mcp
添加到~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"quiet-shell": {
"command": "quiet-shell-mcp"
}
}
}
使用命令:quiet-shell-mcp
该服务器通过stdio通信,遵循模型上下文协议规范。
execute_command执行shell命令,可选地进行输出过滤。
参数:
command(必需):要执行的shell命令template(可选):过滤模板名称(使用list_templates查看可用模板)suppress_output_on_success(可选,默认值:true):命令成功时(退出码0)抑制输出。设置为false以在成功时也显示输出响应:
{
"result": "success",
"exit_code": 0,
"output": "过滤后的输出在这里",
"template_used": "vitest"
}
示例:
// 运行带有过滤的测试
execute_command("npm test", "vitest");
// 返回:仅失败测试 + 总结(约20行而不是2000+)
// 如果测试通过:抑制输出(默认行为)
// TypeScript编译
execute_command("tsc --noEmit", "tsc");
// 返回:仅类型错误 + 总结
// 如果编译成功:抑制输出(默认行为)
// 成功时也总是显示输出
execute_command("npm test", null, false); // suppress_output_on_success = false
// 返回:无论退出码如何都返回完整输出
// 默认抑制的原始输出
execute_command("echo hello");
// 如果成功:"命令完成成功(输出被抑制 - 退出码0)"
list_templates列出所有可用的过滤模板及其描述。
响应:
{
"templates": [
{
"name": "vitest",
"description": "运行Vitest测试时使用 - 返回失败测试和测试总结",
"include_regex": "(FAIL|ERROR|✖|❯.*failed)",
"tail_paragraphs": 2
},
...
],
"count": 4
}
在你的仓库中创建.quiet-shell/config.yaml:
templates:
jest:
description: "运行Jest测试时使用 - 返回失败测试和测试总结"
include_regex: "(FAIL|●|✕)"
tail_paragraphs: 2
eslint:
description: "运行ESLint时使用 - 返回linting错误和总结"
include_regex: "(error|warning|✖)"
tail_paragraphs: 1
# 始终显示成功输出的模板
build-with-stats:
description: "即使成功也显示统计信息的构建命令"
include_regex: "(error|warning|built|compiled)"
tail_paragraphs: 2
suppress_output_on_success: false # 覆盖默认抑制
功能:
每个模板定义:
include_regex:匹配重要行(错误、失败)的模式tail_paragraphs:从结尾包含的段落数量(总结)description:何时使用此模板(供代理发现)include_regex的行输入(2000行):
✓ 测试1通过
✓ 测试2通过
... (还有48个通过的测试)
✖ 测试51失败
预期:true
接收:false
✖ 测试52失败
错误:超时
测试:50个通过,2个失败,总共52个
时间:5.2秒
使用vitest模板的输出(约10行):
✖ 测试51失败
预期:true
接收:false
✖ 测试52失败
错误:超时
测试:50个通过,2个失败,总共52个
时间:5.2秒
packages/
core/ # @codemcp/quiet-shell-core
# 可重复使用的过滤逻辑
mcp-server/ # @codemcp/quiet-shell-mcp
# MCP协议实现
pnpm install
pnpm build
pnpm test
npx @modelcontextprotocol/inspector quiet-shell-mcp
MIT
欢迎贡献!该项目使用:
使用模型上下文协议SDK构建。