关于 Baton
Baton 是面向 API 工作区的本地 MCP 服务,工作区中的请求、集合和环境以 YAML 文件存储。它有文件与桌面应用两种模式,可将编辑作为草稿交由确认,并对发送和删除设置保护。
主要功能
- 01读写请求、集合和环境
- 02编辑请求与共享脚本
- 03运行单个请求或整个集合
- 04从已保存响应启动模拟服务
- 05应用模式下以草稿和确认保护操作
适用场景
- 01在 Git 工作区维护 API 请求
- 02让 AI 起草请求并在应用中审核
- 03按需执行请求或集合
- 04基于保存的响应测试模拟服务
MCP 相关
这是通过 stdio 本地运行的 MCP 服务,向客户端提供 Baton 工作区、请求、环境、脚本和模拟服务工具。文件模式可写入 YAML;应用模式将编辑设为草稿,并让发送或删除等待确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Baton — MCP 配置
让你的 AI 助手在 Baton 工作区中工作。 Baton 是一款 Git 原生 API 客户端(Postman 的替代品):请求、集合 和环境都是你所拥有的仓库中的纯 YAML 文件。MCP 服务在本地运行, 使用一份配置,并在启动时选择以下两种模式之一:
-
文件模式 — Baton 应用未打开该工作区:编辑会写入 YAML 文件,所写入的字节与应用写入的相同,并像其他任何更改一样经过 Git 审核。
-
应用模式 — 桌面应用已打开该工作区:编辑会作为草稿显示在请求的标签页中,供你接受或丢弃;发送操作会通过应用执行,并使用应用的密钥;向生产环境发送请求或删除操作都需要等待你确认;助手还能看到你打开的请求和环境。
-
服务:
baton -
传输方式: stdio(本地进程)
-
软件包:
@dudko.dev/baton-mcp— Node.js 24+ -
身份验证: 无 — 服务在本地以你的用户权限运行;密钥不会经过此服务。
你可以做什么
在文件模式下,助手可以读取和写入工作区,但不能发送请求,除非你添加
--allow-run。在应用模式下,每次发送操作都会通过应用执行,并显示在你的屏幕上。
| 工具 | 功能 |
|---|---|
workspace_info | 集合、环境、计划任务、加载问题,以及应用是否已连接。 |
list_requests | 列出请求及其方法、URL 和标签 — 可选地限定在某个集合下。 |
get_request | 获取解析后的请求、原始 YAML,以及其身份验证的来源 — 密钥只会以引用形式显示。 |
upsert_request | 将请求写入为确定性 YAML(文件模式),或在应用中将其作为草稿提出。 |
move_request | 移动或重命名请求,同时保留其 ID 和脚本。 |
delete_request | 删除请求;在应用模式下,需先经你确认。 |
upsert_collection | 创建或替换集合或文件夹:变量、身份验证和顺序。 |
list_environments | 列出变量和密钥的名称,以及每个密钥的来源。 |
upsert_environment | 写入环境(仅包含密钥名称;密钥可以映射到 Vault)。 |
get_script / upsert_script | 读取和写入请求前置脚本、测试脚本和共享库脚本。 |
run_request / run_collection | 执行一个请求,或集合下的所有请求 — 文件模式需要 --allow-run;应用模式下通过应用发送。 |
list_examples / save_example | 列出请求已保存的响应,并将最近一次响应保存为示例。 |
list_mocks / start_mock / stop_mock | 根据 mocks/<name>.yaml 启动一个模拟服务,在 127.0.0.1 上提供响应,响应内容取自示例。 |
app_state / select_request | 仅限应用模式:查看应用中打开的内容,并在应用中打开一个请求。 |
在应用模式下,资源 baton://app/state 和 baton://app/selection
支持订阅,因此助手可以实时获知点击、接受草稿或完成发送等事件。
在 Claude Code 中安装(插件)
/plugin marketplace add dudko-dev/baton-mcp-setup
/plugin install baton@baton
/reload-plugins
插件会在当前项目目录中启动服务,因此请在 Baton 工作区(包含 baton.yaml 的文件夹)中打开 Claude
Code。要使用应用模式,请在同一工作区中打开 Baton 应用。若要将服务指向其他位置,或允许
助手在文件模式下执行请求,请改为手动添加(见下文),并使用 --workspace <dir>
和/或 --allow-run。在应用中,Settings → Agents 会在工作区中为你写入 .mcp.json。
不想使用插件市场?直接添加服务:
claude mcp add baton -- npx -y @dudko.dev/baton-mcp --workspace /path/to/workspace
从其他客户端连接
Claude Desktop
claude_desktop_config.json(Settings → Developer → Edit Config):
{
"mcpServers": {
"baton": {
"command": "npx",
"args": [
"-y",
"@dudko.dev/baton-mcp"
]
}
}
}
Cursor
~/.cursor/mcp.json 或 .cursor/mcp.json:
{
"mcpServers": {
"baton": {
"command": "npx",
"args": [
"-y",
"@dudko.dev/baton-mcp"
]
}
}
}
VS Code(GitHub Copilot / MCP)及其他客户端
{
"servers": {
"baton": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dudko.dev/baton-mcp"
]
}
}
}
安全
- 文件模式下,默认不运行请求。 只有在希望助手发送请求时,才在参数中添加
--allow-run——编辑文件绝不应在毫无提示的情况下发送流量。 - 应用模式下,由你全程把关。 编辑会作为草稿提供,由你接受或丢弃;向生产环境发送请求以及任何删除操作,都必须在应用中经你确认。
- 机密不会进入工作区。 服务仅读取和写入机密名称和
{{secret:name}}引用;实际值存储在操作系统安全存储或 Vault 中,凡是应使用引用的位置出现明文值,都会被拒绝。响应会按值进行遮蔽,正文会截断,Authorization、Cookie、Set-Cookie和X-API-Key会替换为名称。 - 服务绝不会操作 git。 提交由你掌控。
| 标志 | 含义 |
|---|---|
--workspace <dir> | 工作区根目录——存放 baton.yaml 的文件夹(默认:当前目录)。 |
--allow-run | 允许 Agent 在文件模式下执行请求。默认关闭;应用模式下的发送操作通过应用进行。 |
--agent <name> | 应用在横幅和确认提示中显示的 Agent 名称。 |
故障排除
- “not a Baton workspace” / 客户端提示 “Connection closed” — 文件夹中没有
baton.yaml时,服务会在启动时退出。在工作区中打开 Claude Code,或使用--workspace /path/to/workspace手动添加服务。 run_request拒绝执行 — 服务处于文件模式:添加--allow-run,或在该工作区中打开 Baton 应用并重启服务,以切换到应用模式。- 应用已打开,但编辑直接写入文件 — 模式在服务启动时确定。在该工作区中打开应用后,重启客户端中的 MCP 服务。
npm warn EBADENGINE … required: { node: '>=24' },随后没有任何动静 — 服务需要 Node.js 24+;请在客户端启动的 shell 中运行node --version。
支持
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。