/ Directory / Playground / vibe-check-mcp-server
● Community PV-Bhat ⚡ Instant

vibe-check-mcp-server

by PV-Bhat · PV-Bhat/vibe-check-mcp-server

A second LLM that challenges your agent's plan before execution — catches tunnel vision, over-engineering, reasoning lock-in.

vibe-check-mcp (PV-Bhat) provides metacognitive feedback to agents via Chain-Pattern Interrupts (CPI). Invokes a second model to push back on assumptions at key decision points. Project is in maintenance mode (v2.8.0 final) but still fully functional under MIT.

Why use it

Key features

Live Demo

What it looks like in practice

vibe-check.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "vibe-check": {
      "command": "npx",
      "args": [
        "-y",
        "vibe-check-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "vibe-check": {
      "command": "npx",
      "args": [
        "-y",
        "vibe-check-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "vibe-check": {
      "command": "npx",
      "args": [
        "-y",
        "vibe-check-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "vibe-check": {
      "command": "npx",
      "args": [
        "-y",
        "vibe-check-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "vibe-check",
      "command": "npx",
      "args": [
        "-y",
        "vibe-check-mcp-server"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "vibe-check": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "vibe-check-mcp-server"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add vibe-check -- npx -y vibe-check-mcp-server

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use vibe-check-mcp-server

Sanity-check a plan before a destructive action with vibe-check

👤 Anyone running agents with write access ⏱ ~10 min beginner

When to use: The agent is about to delete files, run a migration, or deploy — you want a second opinion.

Flow
  1. Invoke vibe_check on the plan
    Before running the migration, call vibe_check on this plan: [paste]. What could go wrong?✓ Copied
    → Pushback list: unchecked assumptions, missing rollback, scope creep
  2. Resolve or ignore each concern explicitly
    Address each concern — either mitigate or explicitly dismiss as out of scope.✓ Copied
    → Annotated plan ready to run

Outcome: Fewer 'oh no' moments after destructive actions.

Pitfalls
  • Agent dismisses all concerns rubber-stamp style — Require the agent to restate each concern and the specific mitigation

Enforce session rules with vibe-check's constitution

👤 Teams sharing agent workflows ⏱ ~10 min intermediate

When to use: You want certain rules (never push to main, always write tests first) enforced across a session.

Flow
  1. Set the constitution
    Use update_constitution to set these rules for this session: [list]. Enforce via CPI on every tool call that could violate them.✓ Copied
    → Rules acknowledged; subsequent violations get interrupted
  2. Inspect when in doubt
    Call check_constitution to see what's currently in effect.✓ Copied
    → Current rules list

Outcome: Consistent agent behavior within a session without repeating rules every message.

Capture lessons from agent mistakes with vibe_learn

👤 Agent developers iterating on prompts ⏱ ~5 min beginner

When to use: The agent made a classic mistake; you want it not to repeat.

Flow
  1. Log the lesson
    Call vibe_learn with: mistake='deleted prod table without snapshot', lesson='always take a snapshot before DDL on prod'.✓ Copied
    → Lesson stored for the session
  2. Rely on it later
    (later in same session) Attempt a DDL — vibe_check surfaces the stored lesson✓ Copied
    → Interrupt with the relevant past lesson

Outcome: In-session memory of 'don't do that again' without prompt engineering.

Combinations

Pair with other MCPs for X10 leverage

Plan + pushback loop

Plan with sequentialthinking_tools, then call vibe_check on the plan before executing step 1.✓ Copied
vibe-check + overture

Visual plan + vibe-check layer

After Overture produces the plan graph, run vibe_check on it and surface concerns as annotations.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
vibe_check plan: str, context?: str Before any non-trivial or irreversible action 1 LLM call via your configured provider
vibe_learn mistake: str, lesson: str Immediately after a mistake, while fresh 0
update_constitution rules: str[] Session start or policy change 0
check_constitution Debug unexpected interrupts 0
reset_constitution Start fresh 0

Cost & Limits

What this costs to run

API quota
Uses your chosen LLM's quota
Tokens per call
500-3000 for vibe_check
Monetary
LLM token cost only
Tip
Only vibe_check on substantive plans — skipping it on trivial edits saves tokens

Security

Permissions, secrets, blast radius

Credential storage: LLM API key in env (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.)
Data egress: Only to your configured LLM provider

Troubleshooting

Common errors and fixes

vibe_check returns empty concerns

Plan input was too vague — include concrete steps and side effects

Agent ignores vibe_check output

Make the system prompt require addressing each concern before proceeding

npx cannot find @pv-bhat/vibe-check-mcp

The published scope is @pv-bhat; pin latest explicitly: npx -y @pv-bhat/vibe-check-mcp@latest

Alternatives

vibe-check-mcp-server vs others

AlternativeWhen to use it insteadTradeoff
sequentialthinking-toolsYou want planning, not pushbackDifferent shape — no adversarial second model
overtureYou want visual gating instead of text pushbackHeavier setup

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills