
Vibe Gate Mcp
io.github.mustafacagriv0.1.12更新于 Oct 7, 2026
Adversarial Quality Gate MCP for vibe-coding: IDE AI vs Critic AI, human decides on deadlock
概览
让 IDE 智能体提交的代码改动由第二个 LLM 进行对抗式评审,仅在僵局时由人工裁决。
- 功能
- Vibe-Gate 是面向 AI 辅助编码的对抗式质量门禁。IDE 智能体提交阶段报告和改动的源码路径,由 Critic LLM 评审代码并返回结论与关注点。只有双方陷入僵局时才需要人工介入。评审可设为只读,从而不改动工作区和评审状态。
- 适用场景
- 当你希望在采纳 AI 编码智能体的产出之前,由另一个独立模型提出质疑时使用。适合已在 AI IDE 中工作、希望在评审环节加入人工仲裁而非只信任单一智能体的团队。
- 运行要求
- 通过 npx 以 stdio 在本地运行(需要 Node.js)。需要 Critic 提供方:直接使用 API 密钥,如 OPENAI_API_KEY、ANTHROPIC_API_KEY、GOOGLE_GENERATIVE_AI_API_KEY、MINIMAX_API_KEY 或 OPENCODE_API_KEY;或使用已安装并登录的本地 CLI,如 Codex、Claude Code、Cursor Agent 或 OpenCode CLI。VIBE_WORKSPACE_ROOT 指向项目根目录。
安装
在 SourceWeft 中
- 打开 控制台中的 Vibe Gate Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Vibe-Gate (MCP)
An Adversarial Quality Gate for AI-assisted IDEs: the IDE agent and a Critic LLM debate code; the human decides only on deadlock.
Quick start (npm / npx)
1. Choose a Critic provider
Use a direct API provider with its key, or use a local CLI that is already installed and signed in. Local CLI providers do not need a separate provider API key. If CRITIC_PROVIDER is omitted, Vibe-Gate selects the first installed local CLI in this order: Codex, Claude Code, Cursor Agent, then OpenCode CLI. OpenCode CLI moves to the front when CRITIC_MODEL is in provider/model form. The first review response includes a notice naming the selected CLI. If none is found, OpenAI remains the default and requires OPENAI_API_KEY. Set CRITIC_PROVIDER to choose explicitly.
Copy from the package’s .env.example:
For Cursor Agent, Vibe-Gate runs agent first and falls back to the legacy cursor-agent executable if the primary command is unavailable.
opencode is still the separate Zen/Go HTTP provider and needs OPENCODE_API_KEY. opencode-cli runs the local CLI and requires a provider/model value in CRITIC_MODEL; see the CLI guide for details.
CRITIC_MODEL is passed to the selected provider or CLI without a Vibe-Gate model allowlist; the provider must support that model ID. The OpenAI API provider uses the Responses API. See provider configuration.
See CLI provider setup and alternatives for CLI installation, login, configuration, OpenCode session details, and other candidates we evaluated. Full variable list: docs/project/VARIABLES.md.
2. Configure Cursor MCP (any consumer repo)
Project or user .cursor/mcp.json for Codex CLI (or use the API-key example):
For direct providers, prefer keys in a local .env next to the package or in the consumer project under VIBE_WORKSPACE_ROOT (never commit secrets). MCP env overrides .env. For a CLI provider, install and sign in to that CLI as the same OS user running the MCP server.
3. Call the tool (agents)
Pass changed source paths in files[]. MCP reads the complete files from disk and serializes FILE/CONTENT internally for the Critic. The agent supplies paths and a completion report; it does not need to paste file bodies or generate a corpus. The example uses readOnly: true to keep review state untouched. See docs/SEMANTIC_DIFF_PAYLOAD.md.
Local development (this repo)
User MCP while developing: examples/cursor-mcp.user-local-dev.json (node dist/index.mjs + VIBE_WORKSPACE_ROOT=${workspaceFolder}).
After npm run build, restart the vibe-gate MCP server in the IDE.
Publish
Releases are automatic. Every push to main runs .github/workflows/publish.yml: it runs yarn quality, lets
semantic-release choose the version from the conventional commits (fix: is a patch, feat: a minor), publishes
vibe-gate-mcp to npm with provenance, and lists that version in the
MCP Registry as io.github.mustafacagri/vibe-gate-mcp. No token is
stored: npm and the registry both trust the workflow through GitHub OIDC. server.json is the registry entry and
is kept at the release version by scripts/sync-server-json.mjs.
Consumers then use npx -y vibe-gate-mcp as above.
Payload sources — prefer files[]
Use readOnly: true for probes. updateStatus: false and mcp-smoke- / vibe-gate-probe- phase prefixes only skip phase status writes.
Documentation
Read-only review and full source slot limit
Set readOnly: true on submit_phase_review for a check that must leave the workspace untouched. It overrides updateStatus: true and prevents session clearing/saving, status updates, debt appends, conflict counter updates and deadlock case writes. Verdicts and concern verification still follow the ordinary review rules; deadlock case data is returned without saving it. Existing matching sessions can be read on later rounds, but read-only calls do not save a new round. logToDebt still expresses acceptance of debt when required, without writing the log. The default is false. updateStatus: false alone only disables phase status updates.
Every carrier (files[], inline semanticDiff, raw/JSON semanticDiffPath) is limited to ten actual FILE/CONTENT source blocks, including additional REQUEST: context on later rounds. Duplicate blocks and both rename endpoints count separately, even if their paths or bytes match. An oversized corpus fails before the enlarged Critic request; it is never reduced to the first ten blocks. Requested line ranges are read as complete files, subject to the existing file and aggregate size limits. Markdown, JSON and other document/data endpoints are rejected as source context. Callers positively classify their selected source endpoints; files[] lets MCP supply the full source bodies. For deleted files and old rename endpoints, an orchestrator such as Vibe-Pilot materializes pinned Git base blobs at real snapshot paths before passing those paths to files[]. MCP reads those files from disk; it does not read Git history itself.
来源:README.md,提交 f1972cb
工具
0版本历史
1- v0.1.12最新Oct 7, 2026


