关于 🧠 Vibe Check MCP
Vibe Check MCP 是一个 MCP 服务,为 AI Agent 提供类似导师的反馈,帮助其避免过度设计和推理锁定。项目已进入维护模式,仅发布安全与缺陷修复。
主要功能
- 01CPI 自适应中断提示,质疑既有假设
- 02支持多个 LLM 提供商与模型
- 03通过 sessionId 汇总先前建议
- 04可选的 vibe_learn 记录错误与修复
- 05按会话设置约束规则(constitution)
适用场景
- 01在不可逆操作前让 Agent 进行自我检查
- 02为编码 Agent 限制过度设计并保持最小可行方案
- 03在歧义或高风险任务中加入额外审阅
MCP 相关
Vibe Check 以 MCP 服务形式运行,向 MCP 客户端暴露用于元认知反馈和会话规则的工具,如 vibe_check 与 update_constitution。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Vibe Check MCP
此项目处于维护模式。 主动功能开发已结束;仅发布维护补丁(安全和错误修复)。v2.9.0 是最新维护版本。服务仍可正常运行。欢迎社区分支和贡献,遵循 MIT 许可证。
告别过度积极的 Agent。即插即用的 Agent 监督工具。
基于研究:
在我们的研究中,调用 Vibe Check 的 Agent 成功率提高了 +27%,有害操作减少了一半(-41%)
入选 PulseMCP“本周最受欢迎” • Smithery.ai 每月 5k+ 次调用 • 有研究支持的监督 • STDIO + 可流式传输的 HTTP 传输
即插即用的导师层,可阻止 Agent 过度设计,并引导其遵循最小可行路径——有研究支持的 MCP 服务,帮助大模型保持对齐、善于反思且安全。
快速开始(npx)
无需本地安装,即可直接从 npm 运行服务。需要 Node >=20。请选择一种传输方式:
选项 1 – 通过 STDIO 使用 MCP 客户端
npx -y @pv-bhat/vibe-check-mcp start --stdio
- 从支持 MCP 的客户端(Claude Desktop、Cursor、Windsurf 等)启动。
[MCP] stdio transport connected表示进程正在等待客户端。- 将此代码块添加到客户端配置中,以便启动该命令:
{
"mcpServers": {
"vibe-check-mcp": {
"command": "npx",
"args": ["-y", "@pv-bhat/vibe-check-mcp", "start", "--stdio"]
}
}
}
选项 2 – 手动检查 HTTP
npx -y @pv-bhat/vibe-check-mcp start --http --port 2091
- 使用
curl http://127.0.0.1:2091/healthz确认服务正在运行。 - 向
http://127.0.0.1:2091/mcp发送 JSON-RPC 请求。
两种选项都会按需通过 npx 下载软件包。有关详细的客户端设置以及 install 和 doctor 等其他命令,请参阅下方文档。
荣誉与认可
- 入选 PulseMCP“本周最受欢迎”首页(2025 年 10 月 13 日当周)🔗
- 收录于 Anthropic 官方 Model Context Protocol 仓库 🔗
- 可在官方 MCP Registry 中找到 🔗
- 入选 Sean Kochel 为氛围编码者推荐的 9 个顶级 MCP 服务 🔗
目录
- 快速入门(npx)
- 什么是 Vibe Check MCP?
- 概述
- 问题:模式惯性与推理锁定
- 主要功能
- 新增内容
- 开发环境设置
- 发布
- 使用示例
- 自适应元认知中断(CPI)
- Agent 提示词基础
- 何时使用各项工具
- 文档
- 研究与理念
- 安全
- 路线图
- 贡献者与社区
- 常见问题
- 收录平台
- 致谢与许可
什么是 Vibe Check MCP?
Vibe Check MCP 帮助 Agent 保持在最精简可行的路径上,只有在证据需要时才增加复杂度。Vibe Check MCP 是一个轻量级服务,实现了 Anthropic 的 Model Context Protocol。它充当 Agent 的 AI 元导师,通过 链式模式中断(CPI) 打断模式惯性,防止推理锁定(RLI)。可以把它看作大模型的橡皮鸭调试器——在 Agent 走错路之前,快速检查一下思路是否合理。
概述
Vibe Check MCP 将元认知信号层与 CPI 相结合,让 Agent 在风险飙升时能够暂停。Vibe Check 会呈现特征、不确定性和风险评分;CPI 则使用这些触发信号,在 Agent 恢复之前执行干预策略。有关接线细节,请参阅 CPI 集成指南和 CPI 仓库 https://github.com/PV-Bhat/cpi。
Vibe Check 会调用第二个大模型,为主 Agent 提供元认知反馈。在 Agent 系统提示词中集成 vibe_check 调用,并指示其在执行不可逆操作前调用工具,可以显著提升 Agent 的对齐程度和常识判断能力。高级组件图见 docs/architecture.md,CPI 交接示意图和示例适配层见 docs/integrations/cpi.md。
问题:模式惯性与推理锁定
大语言模型可能会自信地执行有缺陷的计划。若没有外部提醒,它们可能会陷入过度设计或偏离目标。Vibe Check 通过短暂的反思暂停提供这种提醒,从而提升可靠性和安全性。
核心功能
| 功能 | 描述 | 优势 |
|---|---|---|
| CPI 自适应中断 | 能够感知阶段、挑战假设的提示词 | 对齐、稳健性 |
| 多提供商大模型 | 支持 Gemini 3.6、Claude 5、GPT-5.6 和 OpenRouter | 灵活性 |
| 历史连续性 | 提供 sessionId 时,总结之前的建议 | 保留上下文 |
| 可选的 vibe_learn | 记录错误和修复方法,供日后反思 | 自我改进 |
v2.9.0 新内容(安全与模型更新)
维护通知: 本项目处于维护模式,不再积极开发新功能。项目仍可正常使用,并采用 MIT 许可证。欢迎社区分支。详情请参阅更新日志。
- 当前模型: Gemini 3.6 Flash、Claude Sonnet 5 / Opus 5 / Fable 5,以及 GPT-5.6 Sol / Terra / Luna 现为受支持的默认模型,统一定义在一个注册表中(
src/utils/models.ts) - 原生支持 Google AI Studio: 已从停止维护的
@google/generative-ai软件包迁移至统一的@google/genaiSDK - HTTP 加固: CORS 现在默认使用回环地址作为来源,而非
*;对Host标头进行验证以阻止 DNS 重绑定,并明确设置和验证 JSON 请求体大小上限 - 安全性:
npm audit检查无问题——已修复 axios、MCP SDK 的 Hono 技术栈、form-data、fast-uri、postcss 和测试工具链中的 10 项安全公告 - 依赖项: MCP SDK 1.29、axios 1.18、OpenAI SDK 6.x、vitest 4.x;已移除未使用的
body-parser直接依赖
会话章程(每个会话的规则)
使用轻量级“章程”,按 sessionId 强制执行 CPI 将遵守的规则。例如,章程规则:“不进行外部网络调用”“重构前优先编写单元测试”“绝不将密钥写入磁盘”。
API(工具):
update_constitution({ sessionId, rules })→ 合并或设置该会话的规则集reset_constitution({ sessionId })→ 清除会话规则check_constitution({ sessionId })→ 返回会话的有效规则
开发环境设置
# Clone and install
git clone https://github.com/PV-Bhat/vibe-check-mcp-server.git
cd vibe-check-mcp-server
npm ci
npm run build
npm test
所有工作流均使用 npm(npm ci、npm run build、npm test)。本项目面向 Node >=20。
创建 .env 文件,并填入计划使用的 API 密钥:
# Gemini (default)
GEMINI_API_KEY=your_gemini_api_key
# Optional providers / Anthropic-compatible endpoints
OPENAI_API_KEY=your_openai_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
ANTHROPIC_AUTH_TOKEN=your_proxy_bearer_token
ANTHROPIC_BASE_URL=https://api.anthropic.com
ANTHROPIC_VERSION=2023-06-01
# Optional overrides
# DEFAULT_LLM_PROVIDER accepts gemini | openai | openrouter | anthropic
DEFAULT_LLM_PROVIDER=gemini
# Leave DEFAULT_MODEL unset to use each provider's default (see table below)
# DEFAULT_MODEL=gemini-3.6-flash
提供商和模型
Gemini 通过统一的 @google/genai SDK 原生连接 Google AI Studio(Gemini Developer API)。提供商接受的任何模型 ID 均可使用——下表列出默认模型,以及在 vibe_check 工具架构中向 Agent 显示的建议模型。
| 提供商 | 默认模型 | 也支持 |
|---|---|---|
gemini | gemini-3.6-flash | gemini-3.5-flash、gemini-3.5-flash-lite、gemini-2.5-pro、gemini-2.5-flash |
anthropic | claude-sonnet-5 | claude-opus-5、claude-fable-5、claude-haiku-4-5-20251001 |
openai | gpt-5.6-terra | gpt-5.6-sol、gpt-5.6-luna |
openrouter | (无——必需) | 任意 OpenRouter 标识,例如 google/gemini-3.6-flash |
使用 DEFAULT_LLM_PROVIDER / DEFAULT_MODEL 设置全局默认值,或通过 modelOverride 为单次调用指定。DEFAULT_MODEL 指定的是 DEFAULT_LLM_PROVIDER 的模型;如果调用覆盖了提供商但未指定模型,则会使用该提供商的默认模型,而不会复用 DEFAULT_MODEL。
{ "goal": "...", "plan": "...", "modelOverride": { "provider": "anthropic", "model": "claude-opus-5" } }
如果 Gemini 调用失败,服务端会使用 gemini-3.5-flash-lite 重试一次,然后再回退到静态问题。
HTTP 传输加固
这些设置仅适用于 --http 模式;不影响 stdio。
| 变量 | 默认值 | 用途 |
|---|---|---|
CORS_ORIGIN | 仅限 loopback 源 | 以逗号分隔的浏览器源允许列表。* 可恢复 2.9 版之前的通配符设置。 |
MCP_ALLOWED_HOSTS | localhost、127.0.0.1、::1 | Host 标头允许列表(防止 DNS 重绑定)。* 可禁用检查。 |
MCP_MAX_BODY_SIZE | 100kb | JSON 请求体大小上限。无法解析的值会被忽略,而不会悄然禁用强制限制。 |
**通过 HTTP 升级到 v2.9.0:**如果你在非 loopback 主机名上提供 Vibe Check 服务(Docker、反向代理、托管部署),请将
MCP_ALLOWED_HOSTS设置为该主机名,或设置为*,否则请求将被拒绝并返回 HTTP 403。
配置
请参阅 docs/TESTING.md,了解如何运行测试。
Docker
仓库包含一个辅助脚本,可通过一条命令完成设置。
bash scripts/docker-setup.sh
详情请参阅 自动 Docker 设置。
服务提供商密钥
请参阅 API 密钥与密钥管理,了解支持的服务提供商、解析顺序、存储位置和安全指南。
传输方式选择
CLI 支持 stdio 和 HTTP 传输。传输方式按以下顺序确定:显式标志(--stdio/--http)→ MCP_TRANSPORT → 默认值 stdio。使用 HTTP 时,请指定 --port(或设置 MCP_HTTP_PORT);默认端口为 2091。生成的条目会相应添加 --stdio 或 --http --port <n>,支持 HTTP 的客户端还会收到一个 http://127.0.0.1:<port> 端点。
客户端安装程序
每个安装程序都是幂等的,并会为条目添加 "managedBy": "vibe-check-mcp-cli" 标签。应用更改前,每次运行都会写入一次备份;合并操作是原子的(*.bak 文件可轻松回滚)。有关各客户端的详细参考,请参阅 docs/clients.md。
Claude Desktop
- 配置路径:
claude_desktop_config.json(按平台自动发现)。 - 默认传输方式:stdio(
npx … start --stdio)。 - 安装后重启 Claude Desktop,以加载新的 MCP 服务。
- 如果已有未托管的
vibe-check-mcp条目,CLI 会保留该条目不变,并打印警告。
Cursor
- 配置路径:
~/.cursor/mcp.json(如果存储在其他位置,请提供--config)。 - 架构与 Claude 的
mcpServers布局一致。 - 如果文件不存在,CLI 会打印可直接粘贴到 Cursor 设置面板的 JSON 代码块,而不会报错退出。
Windsurf (Cascade)
- 配置路径:旧版为
~/.codeium/windsurf/mcp_config.json,新版使用~/.codeium/mcp_config.json。 - 传入
--http,即可生成包含serverUrl的条目,供 Windsurf 的 HTTP 客户端使用。 - 现有由标记管理的
serverUrl条目会保留并在原处更新。
Visual Studio Code
- 工作区配置位于
.vscode/mcp.json;配置文件也会将mcp.json存储在 VS Code 用户数据目录中。 - 提供
--config <path>以指定工作区文件。不提供--config时,CLI 会打印 JSON 代码片段和一个vscode:mcp/install?...链接,你可以直接在终端中打开该链接。 - VS Code 支持可选的开发字段;传入
--dev-watch和/或--dev-debug <value>,即可填充dev.watch/dev.debug。
卸载与回滚
- 恢复安装期间生成的备份(配置文件旁最新的
*.bak),即可立即还原。 - 若要手动移除服务,请删除
mcpServers(Claude/Windsurf/Cursor)或servers(VS Code)下的vibe-check-mcp条目,前提是该条目仍带有"managedBy": "vibe-check-mcp-cli"标签。
研究与理念
CPI(Chain-Pattern Interrupt,链式模式中断)是 Vibe Check 背后的研究支持型监督方法。它会在风险转折点适时插入简短的“暂停点”,让 Agent 重新对齐用户的真正优先事项,从而防止破坏性连锁反应和推理锁定(RLI)。在对 153 次运行进行的汇总评估中,CPI 使成功率接近翻倍(约从 27% 提高到 54%),并将有害操作大致减半(约从 83% 降至 42%)。最佳中断频率约为步骤数的 10–20%。Vibe Check MCP 在测试时将 CPI 实现为外部导师层。
链接:
- 📄 CPI 论文(ResearchGate) — http://dx.doi.org/10.13140/RG.2.2.18237.93922
- 📘 CPI 参考实现(GitHub):https://github.com/PV-Bhat/cpi
- 📚 MURST Zenodo DOI(RSRC 存档):https://doi.org/10.5281/zenodo.14851363
flowchart TD
A[Agent Phase] --> B{Monitor Progress}
B -- high risk --> C[CPI Interrupt]
C --> D[Reflect & Adjust]
B -- smooth --> E[Continue]
Agent 提示词要点
在 Agent 的系统提示词中,明确说明 vibe_check 是用于反思的必需工具。始终传入完整的用户请求和其他相关上下文。纠正错误后,你还可以选择使用 vibe_learn 记录错误,以便为后续分析建立历史记录。
示例片段:
As an autonomous agent you will:
1. Call vibe_check after planning and before major actions.
2. Provide the full user request and your current plan.
3. Optionally, record resolved issues with vibe_learn.
各工具的使用场景
| 工具 | 用途 |
|---|---|
| 🛑 vibe_check | 挑战假设,避免视野狭隘 |
| 🔄 vibe_learn | 记录错误、偏好和成功经验 |
| 🧰 update_constitution | 设置/合并 CPI 层将强制执行的会话规则 |
| 🧹 reset_constitution | 清除会话规则 |
| 🔎 check_constitution | 检查会话的有效规则 |
文档
安全
此代码库包含基于 CI 的安全扫描,会在每个拉取请求中运行。它会使用 npm audit 检查依赖项,并扫描源代码中的风险模式。详情及问题报告方式请参阅 SECURITY.md。
路线图
注意: 此项目处于维护模式(最新维护版本:v2.9.0)。以下路线图予以保留,供有意继续开发的社区分支参考。
- 为
vibe_check提供结构化输出: 返回类似{ advice, riskScore, traits }的 JSON 封装,以便下游 Agent 进行确定性推理。 - 提升 LLM 韧性: 为
generateResponse添加重试和指数退避机制。 - 输入清理: 验证并清理工具参数,以缓解提示词注入攻击。
- 提示词外置: 将硬编码提示词移至配置文件,以提高透明度和可审计性(参见 PR #71)。
贡献者与社区
欢迎贡献!请参阅 CONTRIBUTING.md。
链接
致谢与许可
Vibe Check MCP 根据 MIT 许可证 发布。为可靠、可用于企业环境的 AI Agent 而构建。
作者致谢与链接
Vibe Check MCP 由以下人员创建:Pruthvi Bhat,项目发起方 - https://murst.org/
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。