什么是mcp-cli
做AI开发的同学应该都知道MCP(Model Context Protocol),它让AI能够连接GitHub、文件系统、数据库、各种外部API。但问题来了——怎么在命令行里直接跟MCP服务器交互?mcp-cli就是干这个的。一条命令,发现、探索、调用,全流程搞定。
核心功能
mcp-cli的命令设计非常克制,四步走完整个工作流:
- 发现服务器:直接跑
mcp-cli,列出所有可用服务器和工具名称,一目了然。 - 探索工具:
mcp-cli <server>查看某个服务器下的所有工具及参数,加-d还能看详细描述。 - 检查Schema:
mcp-cli <server>/<tool>拿到完整的JSON输入Schema,调用前心里有底。 - 执行调用:
mcp-cli <server>/<tool> '<json>'直接传参运行,支持heredoc和stdin管道,处理复杂JSON毫无压力。
还有一个mcp-cli grep "<glob>",按名称搜索工具,服务器一多的时候这个功能救命😭。
适用平台
mcp-cli作为命令行层的MCP交互工具,天然适配所有主流AI编程助手的工作流。无论你用的是Cursor、GitHub Copilot、Claude Code,还是OpenAI Codex、Gemini Code Assist,甚至国内的文心快码、腾讯云CodeBuddy、华为云CodeArts,都可以把mcp-cli集成进去。它相当于给这些AI助手装了一个”外部工具调度器”,让AI在生成代码的同时能直接读文件、查数据库、调API,上下文理解能力直接拉满。
实操代码示例
几个最常用的场景,直接抄就能用:
# 列出所有服务器和工具
mcp-cli
# 查看filesystem服务器的工具(含描述)
mcp-cli filesystem -d
# 读取一个文件
mcp-cli filesystem/read_file '{"path": "./README.md"}'
# JSON输出,方便管道处理
mcp-cli filesystem/read_file '{"path": "./README.md"}' --json
# 搜索所有带file关键词的工具
mcp-cli grep "*file*"
# 复杂JSON用heredoc,避免引号转义地狱
mcp-cli server/tool <<EOF
{"content": "Text with 'quotes' inside"}
EOF
# 组合命令:找到所有TS文件并读取第一个
mcp-cli filesystem/search_files '{"path": "src/", "pattern": "*.ts"}' --json | jq -r '.content[0].text' | head -1 | xargs -I {} sh -c 'mcp-cli filesystem/read_file "{\"path\": \"{}\"}"'
优势分析
市面上操作MCP的方式不少,但mcp-cli的优势在于极简的CLI设计。它没有GUI,没有配置文件要填,就是纯命令行,这意味着它能无缝嵌入任何自动化脚本、CI/CD流水线、或者AI Agent的工具调用链里。
- 支持
--json输出,结果直接给jq处理,脚本化零障碍。 - 支持
--raw拿原始文本,不想处理JSON结构的时候很方便。 - 退出码设计清晰:0成功、1客户端错误、2服务端错误、3网络错误,脚本里做错误处理非常友好。
- heredoc和stdin管道支持,彻底解决复杂JSON里引号转义的噩梦。
应用场景
几个真实会用到的场景:
- AI Agent工具调用:让Claude或GPT通过mcp-cli调用本地文件系统工具,实现真正的”读文件→分析→写回”闭环。
- CI/CD流水线集成:在GitHub Actions或Jenkins里用mcp-cli调用数据库MCP服务器,自动跑数据校验或生成报告。
- 本地开发调试:快速验证某个MCP服务器的工具是否正常工作,比写测试脚本快多了。
- 多服务器管理:项目里接了一堆MCP服务器(GitHub、Slack、数据库),用
mcp-cli grep快速定位需要的工具,不用翻文档。 - 数据管道:配合
jq、xargs等Unix工具,把MCP工具的输出串联成复杂的数据处理流水线。
最佳实践
用mcp-cli有几个点值得注意。先Inspect再Execute,调用前一定先跑mcp-cli <server>/<tool>看清楚JSON Schema,避免参数传错浪费时间。复杂参数用heredoc或文件,遇到带嵌套引号的JSON,别硬转义,直接用heredoc或者把参数写进args.json再pipe进去,省心。脚本里加退出码判断,mcp-cli的三种错误退出码(1/2/3)语义清晰,写自动化脚本时针对不同错误类型做不同处理,健壮性会好很多。善用-d标志,探索陌生服务器时加上描述,能快速理解每个工具的用途,不用反复查文档。
如果你的项目里MCP服务器越来越多,管理这些Skill本身也会变成一件麻烦事。Skill优仓提供了一个统一的Skill资源库,团队成员可以在Skill优仓上共享、复用各类Agent Skill配置,免费上传下载,省去重复造轮子的时间。








暂无评论内容