☰
mcp2cli Bake模式深度解析:把任意API烘焙成@命名CLI,一条命令生成专属工具
2026/10/5 6:34:35 网站建设 项目流程

mcp2cli Bake模式深度解析:把任意API烘焙成@命名CLI,一条命令生成专属工具

【免费下载链接】mcp2cliTurn any MCP, OpenAPI, or GraphQL server into a CLI — at runtime, with zero codegen项目地址: https://gitcode.com/gh_mirrors/mc/mcp2cli

mcp2cli 是一个零代码生成的 CLI 转换工具,能把任意 MCP 服务器、OpenAPI 规范或 GraphQL 端点在运行时直接变成命令行工具,最高节省 96–99% 的工具 Schema Token 开销。其中Bake 模式(烘焙模式)是它最实用的特性之一:一次配置,永久复用,让重复的--spec、--mcp参数和认证信息彻底消失。

为什么需要 Bake 模式 🍰

想象一下:你每天要用 20 次同一个 OpenAPI 接口,每次都要敲这一串:

mcp2cli --spec https://api.example.com/spec.json \ --auth-header "Authorization:Bearer tok_xxx" \ --base-url https://api.example.com list-pets

重复输入、密钥暴露在进程列表里、团队里每个人都得记住同一套参数——这是没有 Bake 模式时的日常。

Bake 模式的核心思路:把这些"连接设置"一次性"烘焙"成一个命名配置,之后只需要一个@名字前缀就能直接调用。它是 mcp2cli 面向高频 API 调用场景的"配置书签",也是 LLM Agent 接入大规模 MCP 服务器时的关键一环。

核心收益:命令从 4 行缩到 1 行、密钥支持env:/file:引用避免泄露、过滤规则让大服务器只暴露你需要的工具。

一条命令烘焙你的专属 CLI

Bake 模式支持三种数据源:OpenAPI(--spec)、MCP HTTP/SSE(--mcp)、MCP stdio(--mcp-stdio),三者互斥。

# 从 OpenAPI 规范烘焙,只保留 GET/POST,排除 delete 和 update mcp2cli bake create petstore --spec https://api.example.com/spec.json \ --exclude "delete-*,update-*" --methods GET,POST --cache-ttl 7200 # 从 MCP stdio 服务器烘焙,白名单只保留搜索和列表 mcp2cli bake create mygit --mcp-stdio "npx @mcp/github" \ --include "search-*,list-*" --exclude "delete-*"

烘焙成功后,工具会注册到本地配置文件~/.config/mcp2cli/baked.json(可通过MCP2CLI_CONFIG_DIR环境变量覆盖目录),并直接给出确认:

Baked tool 'petstore' created.

命名的硬约束

Bake 工具名必须匹配正则[a-z][a-z0-9-]*——小写字母开头,只能包含小写字母、数字和连字符。这个限制保证了@name前缀在 shell 中的稳定性。相关源码见_BAKE_NAME_RE定义 与_bake_create参数校验。

用 @前缀一键调用,告别冗长参数

烘焙完成后,任何调用都只需@名字+ 子命令,连接参数、认证头、缓存策略全部自动注入:

mcp2cli @petstore --list # 列出可用命令 mcp2cli @petstore list-pets --limit 10 # 调用接口 mcp2cli @mygit search-repos --query "rust" # 调用 MCP 工具

它的魔法在于:@petstore在底层被展开成你当初bake create时的完整 argv(--spec、--auth-header、--cache-ttl、--transport等),再拼接你本次的子命令参数,最后交给核心执行引擎。展开逻辑在_baked_to_argv,调用入口在_run_baked。

💡 你完全不需要再记--spec指向哪个文件,也不用担心密钥被ps命令看到——它们都锁在本地配置里。

三大过滤维度:只暴露你需要的工具

大服务器动辄上百个工具,--list一次就吃掉几千 Token。Bake 模式提供三层过滤,按固定顺序生效:--methods→--include→--exclude,从源码filter_commands可以看到清晰的实现:

过滤维度作用适用场景示例
--methods按 HTTP 方法白名单只读场景禁写--methods GET,POST
--include通配符白名单只要某类操作--include "list-*"
--exclude通配符黑名单排除危险操作--exclude "delete-*"

三个过滤器都是逗号分隔的 glob 模式,匹配的是命令名。MCP 工具没有 HTTP 方法,会自动跳过--methods过滤,这是filter_commands的有意设计。

配合 mcp2cli 的使用感知排序,过滤后的烘焙工具还能进一步省 Token:

mcp2cli @myapi --list --top 10 --compact # 只显示最常用的10个工具名,约20 Token mcp2cli @myapi --list --sort recent # 按最近使用排序

完整管理生命周期:list / show / update / remove

烘焙工具是本地配置,有完整的 CRUD 生命周期,对应源码_handle_bake分发器:

mcp2cli bake list # 列表:名称 / 类型 / 来源,一屏看全 mcp2cli bake show petstore # 查看配置,密钥自动打码 mcp2cli bake update petstore --cache-ttl 3600 --methods GET mcp2cli bake remove petstore # 删除,并清理已安装的包装脚本

密钥安全是 Bake 模式的一等公民。bake show会对认证头做脱敏——明文只显示前 4 位加****,而env:/file:前缀的引用值原样展示(因为它们本身就不是明文)。脱敏逻辑见_bake_show。

安装为独立命令:让工具"脱钩"运行

bake install会在~/.local/bin/下生成一个极简的 shell 包装脚本,让烘焙工具变成一条独立系统命令,无需再带mcp2cli前缀:

mcp2cli bake install petstore # 生成的包装脚本内容(见 _bake_install): # #!/bin/sh # exec mcp2cli @petstore "$@" petstore --list # 直接当系统命令用 petstore list-pets

支持--dir自定义安装目录,比如装到./scripts/方便纳入项目版本管理。包装脚本的生成逻辑在_bake_install。

进阶:密钥、OAuth 与传输策略

Bake 模式完整继承了 mcp2cli 的所有高级能力,都能在bake create时一次性锁定:

  • 密钥引用:--auth-header "Authorization:env:MY_TOKEN"或file:/run/secrets/token,避免明文出现在命令行,由resolve_secret在运行时解析。
  • OAuth:--oauth启用授权码 + PKCE 流程,--oauth-client-id/--oauth-client-secret支持env:/file:前缀,Token 自动缓存与刷新。
  • 传输策略:--transport auto|sse|streamable锁定 MCP HTTP 传输方式,跳过自动协商的往返探测。
  • 缓存 TTL:--cache-ttl秒数,规范与工具列表缓存在~/.cache/mcp2cli/,默认 1 小时。

完整参数说明可直接运行mcp2cli bake create --help查看。

上手三步走 ⚡

  1. 烘焙:mcp2cli bake create myapi --spec ./openapi.json --methods GET --include "get-*"
  2. 调用:mcp2cli @myapi --list,之后任何调用都带@myapi前缀
  3. (可选)独立化:mcp2cli bake install myapi,之后直接用myapi命令

写在最后

mcp2cli 的 Bake 模式解决的是**"API 调用配置重复劳动"**这个真实痛点:一次烘焙,命令从多行缩到一行,密钥安全地锁进本地配置,过滤规则让大服务器只暴露你需要的工具。它不需要你写任何代码,也不需要预先生成客户端——所有命令都是从规范或 MCP 工具定义在运行时动态派生的。

如果你正在用 LLM Agent 接入一个拥有上百个工具的 MCP 服务器,Bake 模式 + 使用感知排序(--top+--compact)的组合,能把每一轮的工具清单开销压到最低,这正是 mcp2cli "节省 96–99% Token" 承诺的核心来源。

相关文档与源码入口:Bake 子命令分发与 CRUD · Bake 模式命令过滤 · Bake 模式测试用例

【免费下载链接】mcp2cliTurn any MCP, OpenAPI, or GraphQL server into a CLI — at runtime, with zero codegen项目地址: https://gitcode.com/gh_mirrors/mc/mcp2cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询