The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Vibe Check MCP Server listing page.
This project is in maintenance mode. Active feature development has ended; only maintenance patches (security and bug fixes) are published. v2.9.0 is the latest maintenance release. The server remains fully functional. Community forks and contributions are welcome under the MIT license.
KISS overzealous agents goodbye. Plug & play agent oversight tool.
Based on research:
In our study agents calling Vibe Check improved success +27% and halved harmful actions -41%
Featured on PulseMCP “Most Popular (This Week)” • 5k+ monthly calls on Smithery.ai • research-backed oversight • STDIO + streamable HTTP transport
Plug-and-play mentor layer that stops agents from over-engineering and keeps them on the minimal viable path — research-backed MCP server keeping LLMs aligned, reflective and safe.
Run the server directly from npm without a local installation. Requires Node >=20. Choose a transport:
[MCP] stdio transport connected indicates the process is waiting for the client.curl http://127.0.0.1:2091/healthz to confirm the service is live.http://127.0.0.1:2091/mcp.npx downloads the package on demand for both options. For detailed client setup and other commands like install and doctor, see the documentation below.
Vibe Check MCP keeps agents on the minimal viable path and escalates complexity only when evidence demands it. Vibe Check MCP is a lightweight server implementing Anthropic's Model Context Protocol. It acts as an AI meta-mentor for your agents, interrupting pattern inertia with Chain-Pattern Interrupts (CPI) to prevent Reasoning Lock-In (RLI). Think of it as a rubber-duck debugger for LLMs – a quick sanity check before your agent goes down the wrong path.
Vibe Check MCP pairs a metacognitive signal layer with CPI so agents can pause when risk spikes. Vibe Check surfaces traits, uncertainty, and risk scores; CPI consumes those triggers and enforces an intervention policy before the agent resumes. See the CPI integration guide and the CPI repo at https://github.com/PV-Bhat/cpi for wiring details.
Vibe Check invokes a second LLM to give meta-cognitive feedback to your main agent. Integrating vibe_check calls into agent system prompts and instructing tool calls before irreversible actions significantly improves agent alignment and common-sense. The high-level component map: docs/architecture.md, while the CPI handoff diagram and example shim are captured in docs/integrations/cpi.md.
Large language models can confidently follow flawed plans. Without an external nudge they may spiral into overengineering or misalignment. Vibe Check provides that nudge through short reflective pauses, improving reliability and safety.
| Feature | Description | Benefits |
|---|---|---|
| CPI Adaptive Interrupts | Phase-aware prompts that challenge assumptions | alignment, robustness |
| Multi-provider LLM | Gemini 3.6, Claude 5, GPT-5.6, and OpenRouter support | flexibility |
| History Continuity | Summarizes prior advice when sessionId is supplied | context retention |
| Optional vibe_learn | Log mistakes and fixes for future reflection | self-improvement |
Maintenance Notice: This project is in maintenance mode and is no longer under active feature development. It remains fully functional and available under the MIT license. Community forks are welcome. For details, see the Changelog.
src/utils/models.ts)@google/generative-ai package to the unified @google/genai SDK*, Host headers are validated to block DNS rebinding, and the JSON body cap is explicit and validatednpm audit is clean — 10 advisories resolved across axios, the MCP SDK's Hono stack, form-data, fast-uri, postcss and the test toolchainbody-parser direct dependency was droppedUse a lightweight “constitution” to enforce rules per sessionId that CPI will honor. Eg. constitution rules: “no external network calls,” “prefer unit tests before refactors,” “never write secrets to disk.”
API (tools):
update_constitution({ sessionId, rules }) → merges/sets rule set for the sessionreset_constitution({ sessionId }) → clears session rulescheck_constitution({ sessionId }) → returns effective rules for the sessionUse npm for all workflows (npm ci, npm run build, npm test). This project targets Node >=20.
Create a .env file with the API keys you plan to use:
Gemini runs natively against Google AI Studio (the Gemini Developer API) through the unified @google/genai SDK. Any model ID the provider accepts will work — the table lists the defaults and the suggestions surfaced to agents in the vibe_check tool schema.
| Provider | Default model | Also supported |
|---|---|---|
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 | (none — required) | any OpenRouter slug, e.g. google/gemini-3.6-flash |
Set the default globally with DEFAULT_LLM_PROVIDER / DEFAULT_MODEL, or per call with modelOverride. DEFAULT_MODEL names a model of DEFAULT_LLM_PROVIDER; a call that overrides the provider without naming a model falls through to that provider's default rather than reusing it.
If a Gemini call fails, the server retries once against gemini-3.5-flash-lite before falling back to static questions.
These apply only to --http mode; stdio is unaffected.
| Variable | Default | Purpose |
|---|---|---|
CORS_ORIGIN | loopback origins only | Comma-separated browser origin allowlist. * restores the pre-2.9 wildcard. |
MCP_ALLOWED_HOSTS | localhost, 127.0.0.1, ::1 | Host header allowlist (DNS-rebinding protection). * disables the check. |
MCP_MAX_BODY_SIZE | 100kb | JSON body cap. Unparseable values are ignored rather than silently disabling enforcement. |
Upgrading to v2.9.0 over HTTP: if you serve Vibe Check on a non-loopback hostname (Docker, a reverse proxy, a hosted deployment), set
MCP_ALLOWED_HOSTSto that hostname — or*— or requests will be rejected with HTTP 403.
See docs/TESTING.md for instructions on how to run tests.
The repository includes a helper script for one-command setup.
See Automatic Docker Setup for full details.
See API Keys & Secret Management for supported providers, resolution order, storage locations, and security guidance.
The CLI supports stdio and HTTP transports. Transport resolution follows this order: explicit flags (--stdio/--http) → MCP_TRANSPORT → default stdio. When using HTTP, specify --port (or set MCP_HTTP_PORT); the default port is 2091. The generated entries add --stdio or --http --port <n> accordingly, and HTTP-capable clients also receive a http://127.0.0.1:<port> endpoint.
Each installer is idempotent and tags entries with "managedBy": "vibe-check-mcp-cli". Backups are written once per run before changes are applied, and merges are atomic (*.bak files make rollback easy). See docs/clients.md for deeper client-specific references.
claude_desktop_config.json (auto-discovered per platform).npx … start --stdio).vibe-check-mcp, the CLI leaves it untouched and prints a warning.~/.cursor/mcp.json (provide --config if you store it elsewhere).mcpServers layout.~/.codeium/windsurf/mcp_config.json, new builds use ~/.codeium/mcp_config.json.--http to emit an entry with serverUrl for Windsurf’s HTTP client.serverUrl entries are preserved and updated in place..vscode/mcp.json; profiles also store mcp.json in your VS Code user data directory.--config <path> to target a workspace file. Without --config, the CLI prints a JSON snippet and a vscode:mcp/install?... link you can open directly from the terminal.--dev-watch and/or --dev-debug <value> to populate dev.watch/dev.debug.*.bak next to your config) to revert immediately.vibe-check-mcp entry under mcpServers (Claude/Windsurf/Cursor) or servers (VS Code) as long as it is still tagged with "managedBy": "vibe-check-mcp-cli".CPI (Chain-Pattern Interrupt) is the research-backed oversight method behind Vibe Check. It injects brief, well-timed “pause points” at risk inflection moments to re-align the agent to the user’s true priority, preventing destructive cascades and reasoning lock-in (RLI). In pooled evaluation across 153 runs, CPI nearly doubles success (~27%→54%) and roughly halves harmful actions (~83%→42%). Optimal interrupt dosage is ~10–20% of steps. Vibe Check MCP implements CPI as an external mentor layer at test time.
Links:
In your agent's system prompt, make it clear that vibe_check is a mandatory tool for reflection. Always pass the full user request and other relevant context. After correcting a mistake, you can optionally log it with vibe_learn to build a history for future analysis.
Example snippet:
| Tool | Purpose |
|---|---|
| 🛑 vibe_check | Challenge assumptions and prevent tunnel vision |
| 🔄 vibe_learn | Capture mistakes, preferences, and successes |
| 🧰 update_constitution | Set/merge session rules the CPI layer will enforce |
| 🧹 reset_constitution | Clear rules for a session |
| 🔎 check_constitution | Inspect effective rules for a session |
This repository includes a CI-based security scan that runs on every pull request. It checks dependencies with npm audit and scans the source for risky patterns. See SECURITY.md for details and how to report issues.
Note: This project is in maintenance mode (latest maintenance release: v2.9.0). The roadmap below is preserved for community forks that may wish to continue development.
vibe_check: Return a JSON envelope such as { advice, riskScore, traits } so downstream agents can reason deterministically.generateResponse with retries and exponential backoff.Contributions are welcome! See CONTRIBUTING.md.
Vibe Check MCP is released under the MIT License. Built for reliable, enterprise-ready AI agents.
Vibe Check MCP created by: Pruthvi Bhat, Initiative - https://murst.org/