巴布
Bab是一个基于Bun构建的TypeScript MCP服务器。它的灵感来自 PAL MCP服务器 并专注于委托CLI插件、精简的Vercel AI SDK提供者层和可重用的MCP工具。
为什么叫“巴布”?
Bab 来源于阿拉伯语单词 باب,这意味着 door 或 gateway.
这个名字很适合这个项目,因为Bab充当MCP客户端和它们背后的系统之间的网关:
- CLI代理工具
- 人工智能提供商
- 当地项目背景
- 未来插件集成
特性
- MCP服务器通过stdio使用
@modelcontextprotocol/sdk - 具有清单发现和可选功能的代理插件系统
adapter.ts - 内置代理角色:
default,planner,codereviewer,coding - 由Vercel AI SDK支持的提供商注册表,具有每个提供商的思维模式映射
- 用于统一模型路由的ModelGateway:通过ID/别名或插件模型
pluginId/modelName - 并行执行的多模型共识、每个模型的温度和思维模式
- 通过MCP提示协议执行Slash命令(
/bab:chat,/bab:review,/bab:think等等) - 具有连续支持和20圈限制的内存对话存储
- 完整的核心和专门的工作流工具套件
- 默认情况下延迟加载工具(启动时5个工具,启动时17个工具),按需自动加载
- CLI入口点
serve,add,remove,list,selfupdate,以及test-plugin命令 - 插件SDK导出界面通过
@babmcp/bab/sdk - 委托环境强化:API密钥和
BAB_*内部变量永远不会泄露给子进程 - 专用错误日志位于
~/.config/bab/logs/error.log用于快速调试
安装
自制(macOS/Linux)
brew install babmcp/tap/bab安装脚本(macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/babmcp/bab/main/install.sh | bash选项:
# custom install directory
curl -fsSL https://raw.githubusercontent.com/babmcp/bab/main/install.sh | bash -s -- --prefix /usr/local/bin
# skip checksum verification (not recommended)
curl -fsSL https://raw.githubusercontent.com/babmcp/bab/main/install.sh | bash -s -- --no-verify二进制下载
从获取适用于您平台的最新二进制文件 发布页面:
| 平台 | 架构 | 资产 |
|---|---|---|
| macOS | 苹果硅 | bab-darwin-arm64 |
| macOS | 英特尔 | bab-darwin-x64 |
| Linux | x64 | bab-linux-x64 |
| Linux | ARM64 | bab-linux-arm64 |
chmod +x bab-*
mv bab-* /usr/local/bin/bab来源
需要 包子 1.3.9或更新版本。
git clone https://github.com/babmcp/bab.git && cd bab
bun install
bun run build:binary # compiled binary at dist/bab自我更新
安装后,更新到最新版本:
bab selfupdate快速开始
启动MCP服务器:
bab serve安装第一方插件:
bab add git@github.com:babmcp/plugins.git运行测试套件:
bun test将Bab连接到MCP客户端
使用已安装的 bab 二进制文件作为本地stdio MCP服务器。替换 /absolute/path/to/bab 输出为:
which bab法典
将此添加到 ~/.codex/config.toml:
[mcp_servers.bab]
command = "/absolute/path/to/bab"
args = ["serve"]
startup_timeout_sec = 300.0
tool_timeout_sec = 1200.0然后重新启动Codex或重新加载MCP服务器。
克劳德代码
将Bab添加为用户范围的stdio MCP服务器:
claude mcp add-json --scope user bab \
'{"type":"stdio","command":"/absolute/path/to/bab","args":["serve"]}'通过以下方式进行验证:
claude mcp get babGitHub Copilot命令行界面
将此添加到 ~/.copilot/mcp-config.json:
{
"mcpServers": {
"bab": {
"type": "local",
"command": "/absolute/path/to/bab",
"args": ["serve"],
"tools": ["*"]
}
}
}您还可以通过Copilot CLI以交互方式添加它 /mcp add.
配置
Bab创造并使用 ~/.config/bab/ 首次运行时:
~/.config/bab/env
dotenv样式的环境文件
~/.config/bab/plugins/
委托插件,每个插件一个目录
- `~/.config/bab/plugins/
/env` 可选的每插件env覆盖合并到全局env文件上
~/.config/bab/prompts/
即时覆盖或额外的即时资产
注: MCP客户端配置中设置的环境变量优先于 这~/.config/bab/env文件。例如,如果您设置OPENAI_API_KEY两者都 MCP配置值获胜。 ``json { "mcpServers": { "bab": { "command": "/absolute/path/to/bab", "args": ["serve"], "env": { "OPENAI_API_KEY": "sk-mcp-value" } } } }``bash # ~/.config/bab/env OPENAI_API_KEY=sk-file-value # overridden by the MCP config above``
支持的提供程序环境变量:
GOOGLE_API_KEYOPENAI_API_KEYANTHROPIC_API_KEYOPENROUTER_API_KEYCUSTOM_API_KEYCUSTOM_API_URL
环境变量
全部 BAB_* 变量在启动时通过Zod模式进行验证。无效值会产生清晰的错误消息。
| 变量 | 类型 | 描述 |
|---|---|---|
BAB_DISABLED_TOOLS | 逗号分隔 | 要排除的工具名称 tools/list 不区分大小写 |
BAB_ENABLED_TOOLS | 逗号分隔 | 如果设置,则仅注册这些工具 |
BAB_EAGER_TOOLS | boolean | 设置为 1 在启动时注册所有工具,而不是延迟加载 |
BAB_PERSIST | boolean | 设置为 false 禁用报表持久性(默认值: true) |
BAB_PERSIST_TOOLS | 逗号分隔 | 仅保留这些工具的报告 |
BAB_DISABLED_PERSIST_TOOLS | 逗号分隔 | 禁用这些工具的持久性 |
BAB_CLI_TIMEOUT_MS | integer | 覆盖代理CLI超时(默认值:3小时) |
BAB_MAX_CONCURRENT_PROCESSES | integer | 最大并发委托进程数(默认值:5) |
BAB_LOG_LEVEL | string | 日志记录级别: debug, info, warn, error (默认值: info) |
例子:
# ~/.config/bab/env
BAB_DISABLED_TOOLS=delegate,tracer
BAB_LOG_LEVEL=debug或者通过您的MCP客户端配置:
{
"mcpServers": {
"bab": {
"command": "/absolute/path/to/bab",
"args": ["serve"],
"env": {
"BAB_DISABLED_TOOLS": "delegate,tracer"
}
}
}
}日志记录
日志文件存储在 ~/.config/bab/logs/:
| 文件 | 内容 |
|---|---|
mcp.log | 服务器生命周期、工具调用、协议事件(所有级别) |
error.log | 仅警告和错误——快速调试 |
| ` | |
.log 每个插件委派 I/O(例如 copilot.log, opencode.log`) |
集 BAB_LOG_LEVEL=debug 用于详细输出,包括错误响应中的堆栈跟踪。
安全
委托子流程将收到一个经过净化的环境:
- API密钥已剥离:
ANTHROPIC_API_KEY,OPENAI_API_KEY,GOOGLE_API_KEY,GEMINI_API_KEY,OPENROUTER_API_KEY,GITHUB_TOKEN,GH_TOKEN - 内部清漆已剥离:全部
BAB_*,CLAUDE_*,以及CLAUDECODE*前缀变量 - 运行时注入变量已剥离:
LD_PRELOAD,NODE_OPTIONS,DYLD_INSERT_LIBRARIES等等。 - 堆栈复写:从未包含在工具错误响应中(仅限调试模式)
- 工作目录:已验证位于项目根目录、主目录或tmp中
需要API密钥的插件必须在自己的密钥中声明 env 文件(~/.config/bab/plugins//env).
代理插件
每个插件都位于 ~/.config/bab/plugins/ / 并被发现 manifest.yaml.
巴布保持 opencode 捆绑为内置参考插件。安装外部第一方插件:
# Install all first-party plugins (claude, codex, copilot)
bab add babmcp/plugins
# List installed plugins
bab list
# Remove a specific plugin
bab remove
最小清单形状:
id: echo
name: Echo Plugin
version: 1.0.0
command: echo
roles:
- default
delegate_api_version: 1插件还可以通过以下方式为工作流工具提供自定义系统提示 tool_prompts:
tool_prompts:
codereview: prompts/codereview.txt
secaudit: prompts/secaudit.txt当工具通过插件模型路由时,bab使用插件的提示而不是内置的默认值。看 插件创作 了解详情。
可选的 adapter.ts 文件可以实现CLI解析、验证和取消的运行时行为。没有适配器的插件仍然可以被发现,但 delegate 该工具需要一个适配器来执行它们。
内置工具
delegate
通过配置的CLI插件运行提示
chat,thinkdeep,codereview,planner,consensus
核心工作流工具
debug,analyze,tracer,refactor,testgen,docgen,secaudit,precommit,challenge
专用工作流工具
listmodels
列出配置的提供程序中可用的模型
version
返回Bab和运行时版本详细信息
文档
完整文档可在 **** 或在 docs/:
项目布局
src/
config.ts # BAB_* env validation, config loading
server.ts # MCP server setup, tool registration
version.ts # Centralized version constant
bootstrap.ts # Core tool names, startup wiring
delegate/ # Plugin discovery, loading, caching, process runner
memory/ # Conversation store, report persistence
prompts/ # Built-in tool and role prompts
providers/ # Vercel AI SDK registry, model gateway
tools/ # 17 built-in tools (lazy-loaded by default)
sdk/ # Plugin author SDK (@babmcp/bab/sdk)
commands/ # CLI commands (serve, add, remove, list, selfupdate)
types/ # Shared type definitions
utils/ # Env sanitization, path containment, logging, tokens
plugins/ # Bundled plugins (opencode)
tests/ # bun:test test suite
docs/ # GitHub Pages documentation发展
有用的命令:
bun test
bun run build
bun run build:binary
bunx tsc -p tsconfig.json --noEmit
bun run src/cli.ts serve
bun run src/cli.ts add git@github.com:babmcp/plugins.git --yes
bun run src/cli.ts list
bun run src/cli.ts test-plugin ../bab-plugins/claude回购目前使用:
- Bun用于运行时和包管理
- 带有ES模块的TypeScript
- Zod v4用于验证
- 植绒和格式化的生物特征
免责声明
看 免责声明.md.
