VibeGuard MCP Server

VibeGuard MCP Server

Enables AI coding tools to scan projects for security vulnerabilities, hardcoded secrets, injection flaws, and privacy violations with 699 rules and 76 MCP tools, all running locally with zero telemetry.

Category
Visit Server

README

<div align="center">

<!-- Animated Logo Banner --> <img src="https://readme-typing-svg.herokuapp.com?font=Fira+Code&weight=700&size=32&duration=2000&pause=800&color=2E75B6&center=true&vCenter=true&random=false&width=500&lines=VibeGuard;693+Rules;75+MCP+Tools;13+Defense+Layers;$0+Cost" alt="VibeGuard" />

<br/>

<!-- Status Badges --> <img src="https://img.shields.io/badge/status-active-success?style=flat-square&color=22C55E" /> <img src="https://img.shields.io/badge/version-0.1.0-blue?style=flat-square" /> <img src="https://img.shields.io/badge/license-MIT-green?style=flat-square&color=22C55E" /> <img src="https://img.shields.io/badge/cost-$0-green?style=flat-square&color=22C55E" /> <img src="https://img.shields.io/badge/telemetry-none-green?style=flat-square&color=22C55E" /> <img src="https://img.shields.io/badge/privacy-100%25%20local-green?style=flat-square&color=22C55E" />

<br/> <br/>

<!-- Stats Cards --> <img src="https://img.shields.io/badge/rules-693-blue?style=for-the-badge&color=2E75B6" /> <img src="https://img.shields.io/badge/MCP_tools-75-purple?style=for-the-badge&color=8B5CF6" /> <img src="https://img.shields.io/badge/CLI_commands-58-blue?style=for-the-badge&color=3B82F6" /> <img src="https://img.shields.io/badge/auto_fixes-43-green?style=for-the-badge&color=22C55E" /> <img src="https://img.shields.io/badge/defense_layers-13-red?style=for-the-badge&color=EF4444" /> <img src="https://img.shields.io/badge/AI_clients-12-cyan?style=for-the-badge&color=06B6D4" /> <img src="https://img.shields.io/badge/languages-14-blue?style=for-the-badge&color=3B82F6" /> <img src="https://img.shields.io/badge/frameworks-20%2B-orange?style=for-the-badge&color=F59E0B" /> <img src="https://img.shields.io/badge/tests-279-brightgreen?style=for-the-badge&color=22C55E" /> <img src="https://img.shields.io/badge/errors-0-brightgreen?style=for-the-badge&color=22C55E" />

<br/> <br/>

<!-- Shield-style shields --> <a href="https://github.com/yagyeshVyas/VibeGuard/stargazers"><img src="https://img.shields.io/github/stars/yagyeshVyas/VibeGuard?style=social" alt="Stars"></a> <a href="https://github.com/yagyeshVyas/VibeGuard/network/members"><img src="https://img.shields.io/github/forks/yagyeshVyas/VibeGuard?style=social" alt="Forks"></a> <a href="https://www.npmjs.com/package/@yagyeshvyas/vibeguard"><img src="https://img.shields.io/badge/npm-@yagyeshvyas/vibeguard-red?style=social&logo=npm" alt="npm"></a> <a href="https://www.linkedin.com/in/yagyeshvyas/"><img src="https://img.shields.io/badge/LinkedIn-Yagyesh_Vyas-blue?style=social&logo=linkedin" alt="LinkedIn"></a>

<br/> <br/>

<!-- Tagline --> <h3>The Security & Privacy Platform Built for Vibe Coders</h3>

<p>AI coding tools (Claude Code, Cursor, Windsurf, Lovable, Bolt) ship fast โ€” and often ship hardcoded secrets, open databases, injection holes, and privacy violations. <b>VibeGuard catches all of it.</b></p>

<table> <tr> <td align="center"><h4>693</h4><sub>Rules</sub></td> <td align="center"><h4>75</h4><sub>MCP Tools</sub></td> <td align="center"><h4>58</h4><sub>CLI Commands</sub></td> <td align="center"><h4>13</h4><sub>Defense Layers</sub></td> <td align="center"><h4>43</h4><sub>Auto-Fixes</sub></td> <td align="center"><h4>$0</h4><sub>Cost</sub></td> </tr> </table>

</div>


<!-- Install -->

๐Ÿ“ฆ Install

Option 1: From npm (when published)

npx @yagyeshvyas/vibeguard install

Option 2: From GitHub (works now!)

git clone https://github.com/yagyeshVyas/VibeGuard.git
cd VibeGuard
npm install
npm link    # makes 'vibeguard' available globally

Then use it:

vibeguard scan          # scan your project
vibeguard dashboard     # beautiful terminal dashboard
vibeguard fix           # auto-fix 43 rule types
vibeguard pre-deploy    # 13-gate deployment check
vibeguard firewall "your prompt here"   # AI firewall

Wire into Claude Code (from GitHub clone)

# In your project directory:
echo '{ "mcpServers": { "vibeguard": { "command": "node", "args": ["/path/to/VibeGuard/bin/cli.js", "mcp"] } } }' > .mcp.json

Or use the global Claude Code command:

claude mcp add vibeguard -- node /path/to/VibeGuard/bin/cli.js mcp

Wire into Cursor / Windsurf / other MCP clients

Add to your MCP config file:

{
  "mcpServers": {
    "vibeguard": {
      "command": "node",
      "args": ["/path/to/VibeGuard/bin/cli.js", "mcp"]
    }
  }
}

Wire into Codex CLI

# Add to ~/.codex/config.toml:
[mcp_servers.vibeguard]
command = "node"
args = ["/path/to/VibeGuard/bin/cli.js", "mcp"]

<p>Auto-detects 12 AI coding clients: <b>Claude Code, Cursor, Windsurf, Codex CLI, Antigravity, Gemini CLI, Continue, Cline, Roo Code, OpenHands, Aider, VS Code</b></p>

<!-- AI Client Logos --> <table> <tr> <td align="center">๐Ÿ”ต</td> <td align="center">๐ŸŸฃ</td> <td align="center">๐ŸŸข</td> <td align="center">๐ŸŸก</td> <td align="center">๐Ÿ”ด</td> <td align="center">๐ŸŸ </td> <td align="center">โšซ</td> </tr> <tr> <td align="center"><sub>Claude Code</sub></td> <td align="center"><sub>Cursor</sub></td> <td align="center"><sub>Windsurf</sub></td> <td align="center"><sub>Codex CLI</sub></td> <td align="center"><sub>Antigravity</sub></td> <td align="center"><sub>Gemini CLI</sub></td> <td align="center"><sub>Continue</sub></td> </tr> <tr> <td align="center"><sub>Cline</sub></td> <td align="center"><sub>Roo Code</sub></td> <td align="center"><sub>OpenHands</sub></td> <td align="center"><sub>Aider</sub></td> <td align="center"><sub>VS Code</sub></td> <td align="center"><sub>+ more</sub></td> <td align="center"></td> </tr> </table>

<br/>

vibeguard scan          # scan your project
vibeguard dashboard     # beautiful terminal dashboard
vibeguard fix           # auto-fix 43 rule types
vibeguard pre-deploy    # 13-gate deployment check

</div>


<!-- Table of Contents --> <div align="center"> <h2>๐Ÿ“– What is VibeGuard?</h2> </div>

VibeGuard is a free, zero-dependency security and privacy scanner that runs entirely on your machine. It reads your code files locally, checks them against 693 security rules, and tells you exactly what's wrong and how to fix it โ€” all without sending a single byte to any server.

It's built specifically for the problems AI coding tools create:

  • Hardcoded API keys visible in browser dev tools
  • Supabase/Firebase databases open to the world (no RLS)
  • Admin endpoints with no authentication
  • SQL injection, command injection, XSS
  • Secrets committed to git history
  • Hallucinated npm packages that don't exist
  • User data sent to AI APIs without redaction
  • Analytics tracking without consent (GDPR violation)
  • WebRTC IP leaks, clipboard theft, geolocation without consent

<div align="center"> <h2>๐Ÿ›ก๏ธ 13-Layer Defense Architecture</h2> </div>

Even if an AI is fully jailbroken, it cannot leak data. Each layer runs automatically when the MCP server starts.

<table> <tr> <th>#</th> <th>Layer</th> <th>Module</th> <th>What It Catches</th> <th>When</th> </tr> <tr> <td align="center">1</td> <td><b>Static Scanner</b></td> <td><code>scanner.js</code></td> <td>693 security rules across 14 languages</td> <td>Before deploy</td> </tr> <tr> <td align="center">2</td> <td><b>AI Firewall</b></td> <td><code>firewall.js</code></td> <td>Prompt injection, jailbreaks, secret access</td> <td>Before LLM call</td> </tr> <tr> <td align="center">3</td> <td><b>Agent Guard</b></td> <td><code>firewall.js</code></td> <td>Dangerous file/command/network access</td> <td>Before agent action</td> </tr> <tr> <td align="center">4</td> <td><b>Runtime Interceptor</b></td> <td><code>interceptor.js</code></td> <td>Wraps fetch/http/exec/fs at runtime level</td> <td>During execution</td> </tr> <tr> <td align="center">5</td> <td><b>Output Guard</b></td> <td><code>interceptor.js</code></td> <td>Secrets/PII in AI responses โ†’ redacted</td> <td>After LLM response</td> </tr> <tr> <td align="center">6</td> <td><b>Exfil Firewall</b></td> <td><code>firewall.js</code></td> <td>PII/secrets in outbound data โ†’ blocked</td> <td>Before any request</td> </tr> <tr> <td align="center">7</td> <td><b>Env Lock</b></td> <td><code>interceptor.js</code></td> <td>Hides sensitive env vars from AI</td> <td>At process start</td> </tr> <tr> <td align="center">8</td> <td><b>Self-Protection</b></td> <td><code>interceptor.js</code></td> <td>Detects tampering with VibeGuard itself</td> <td>Continuous</td> </tr> <tr> <td align="center">9</td> <td><b>Zero-Trust Sandbox</b></td> <td><code>sandbox.js</code></td> <td>Locked VM: no fs, no exec, no network</td> <td>Code execution</td> </tr> <tr> <td align="center">10</td> <td><b>Behavioral Analysis</b></td> <td><code>behavior.js</code></td> <td>Trust building, data gathering, slow exfil</td> <td>Over session</td> </tr> <tr> <td align="center">11</td> <td><b>Supply Chain Firewall</b></td> <td><code>supply-firewall.js</code></td> <td>Malware, typosquats, dangerous scripts</td> <td>Before npm install</td> </tr> <tr> <td align="center">12</td> <td><b>Secret Vault</b></td> <td><code>vault.js</code></td> <td>AES-256-GCM encrypted in-memory storage</td> <td>Secret access</td> </tr> <tr> <td align="center">13</td> <td><b>Audit Trail</b></td> <td><code>audit-trail.js</code></td> <td>SHA-256 chained tamper-proof log</td> <td>All actions</td> </tr> </table>


<div align="center"> <h2>๐Ÿ”ฅ What VibeGuard Catches</h2> </div>

<details> <summary><b>๐Ÿ”“ The #1 r/vibecoding Issue: Open Databases</b></summary>

If you use Supabase, Firebase, or Convex, VibeGuard checks:

  • RLS missing โ€” table created but row-level security never enabled
  • RLS fake policy โ€” USING (true) โ€” looks enabled in dashboard, protects nothing
  • PERMISSIVE policy โ€” allows access unless another policy blocks it
  • Service role key in client โ€” bypasses RLS entirely
  • Firebase rules open โ€” .read: true or .write: true
  • Firebase rules any-auth โ€” auth != null means ANY logged-in user sees ALL data
  • Convex public query โ€” exported query with no auth check </details>

<details> <summary><b>๐Ÿ”‘ Secrets (50+ types)</b></summary>

OpenAI, Anthropic, Stripe (live + restricted), AWS, GitHub, Slack, GitLab, Twilio, SendGrid, Mailgun, Telegram, npm, Resend, GCP, Azure, Cloudflare, Datadog, Sentry, Algolia, Vercel, Netlify, Heroku, DigitalOcean, Notion, Linear, Contentful, PlanetScale, Vault, Doppler, Grafana, Jira, PagerDuty, New Relic, Splunk, Braintree, Square, Paddle, MUX, Mailchimp, Postmark, Sendinblue, Twitch, Patreon, Discord, Bitbucket, JFrog, LaunchDarkly, Rollbar, Mapbox, Twilio SID, and more.

Plus: connection strings with passwords, .env not in .gitignore, secrets in localStorage/sessionStorage, secrets in URL params, secrets in client-side config files. </details>

<details> <summary><b>๐Ÿ’‰ Injection (30+ rules)</b></summary>

  • SQL injection โ€” string concat, template literals, f-strings, format(), % formatting, raw queries across Prisma, Drizzle, Sequelize, TypeORM, Kysely, MikroORM, Turso, Hono, Go, Python, PHP, C#, Kotlin, Rust
  • Command injection โ€” exec/spawn with user input, template literals, backtick interpolation
  • Code injection โ€” eval, new Function, setTimeout/setInterval with strings, vm.runInContext
  • XSS โ€” dangerouslySetInnerHTML, v-html, innerHTML, outerHTML, document.write, insertAdjacentHTML, Angular DomSanitizer bypass, Rails html_safe, Laravel {!! !!}
  • SSTI โ€” template render with user input (EJS, Pug, Handlebars, Mustache)
  • LDAP, XPath, NoSQL $where, header injection, log injection, CSV formula injection, PDF injection
  • SSRF โ€” fetch to internal IPs, cloud metadata service (169.254.169.254), DNS rebinding </details>

<details> <summary><b>๐Ÿ” Auth (20+ rules)</b></summary>

  • JWT alg:none, weak JWT secret, JWT decoded without verify
  • Hardcoded admin credentials
  • Password compared with == (plaintext)
  • Session fixation (no regenerate after login)
  • No rate limiting on login/register
  • Password in query string
  • Missing MFA enforcement
  • OAuth state parameter empty/static
  • Token in URL
  • No logout endpoint </details>

<details> <summary><b>๐Ÿค– AI/LLM Security (35+ rules)</b></summary>

  • Prompt injection in tool descriptions
  • AI agent can execute code, deploy, install packages, access secrets, modify auth
  • LLM output used as SQL, shell, DOM, file path
  • Data exfiltration via agent
  • Memory poisoning
  • Training data leakage
  • Agent loop without iteration cap
  • Tool result injection
  • Missing max_tokens, temperature too high
  • Browser API key exposure
  • Secure prompt analysis โ€” analyzes your prompt BEFORE code generation </details>

<details> <summary><b>๐Ÿ“ฆ Supply Chain (15+ rules)</b></summary>

  • Slopsquat detection โ€” hallucinated npm packages that don't exist
  • Typosquat detection
  • Postinstall scripts with curl/wget/eval
  • Unpinned Docker images (:latest)
  • GPL/AGPL license risk
  • Missing integrity hashes
  • git+http dependencies
  • Crypto miners in dependencies
  • Missing .npmrc </details>

<details> <summary><b>๐Ÿ—๏ธ Infrastructure (40+ rules)</b></summary>

  • Terraform: S3 public, IAM wildcard, SG 0.0.0.0/0, RDS public, no encryption, no KMS rotation, hardcoded keys, no backup, no CloudTrail
  • Kubernetes: run-as-root, no readOnly FS, hostPath, hostPID/IPC, no NetworkPolicy, privileged, SYS_ADMIN, no seccomp, no probes, no security context
  • Docker: no USER directive, no HEALTHCHECK, privileged, no resource limits, secrets in env, :latest
  • Docker Compose: no resource limits, secrets in environment, privileged, host network, weak restart policy
  • GitHub Actions: script injection, write-all permissions, unpinned actions
  • CI/CD: GitLab secrets in YAML, Jenkins credentials, CircleCI context, AWS CDK secrets, CloudFormation, Helm, Ansible, Pulumi </details>

<details> <summary><b>๐Ÿ”’ Privacy Protection (50+ rules)</b></summary>

VibeGuard is the only scanner that protects user privacy, not just security:

  • WebRTC IP leak, clipboard reads, geolocation, camera/microphone
  • Canvas fingerprinting, device fingerprinting, Bluetooth scanning
  • Analytics without consent (Google Analytics, Mixpanel, Segment, PostHog, Amplitude, Facebook Pixel, Hotjar, FullStory)
  • Cookies without banner (ePrivacy/GDPR)
  • Sentry with PII, PII in logs, health data access, biometric data
  • Background location, contacts/photos/SMS/call log access
  • EXIF location leak, keystroke listeners, SRI missing </details>

<div align="center"> <h2>โšก Privacy Commands</h2> </div>

vibeguard privacy-audit    # inventory all PII collection, storage, transmission
vibeguard net-audit        # map every outbound HTTP call (where does data go?)
vibeguard ai-guard         # detect user data sent to AI APIs without redaction
vibeguard privacy-policy   # auto-generate a privacy policy from code analysis
vibeguard csp-generate     # auto-generate Content-Security-Policy from code
vibeguard firewall <prompt>    # AI firewall โ€” inspect prompt before sending to LLM
vibeguard agent-guard     # show blocked paths, commands, domains
vibeguard exfil-check <data>   # check data for PII/secrets before sending externally
vibeguard dep-firewall <pkg>    # check package name before npm install
vibeguard sandbox <code>        # execute code in zero-trust sandbox
vibeguard output-guard <text>   # sanitize AI response for secrets/PII
vibeguard env-lock        # lock environment variables โ€” hide secrets from AI
vibeguard self-check      # verify VibeGuard hasn't been tampered with
vibeguard pre-deploy      # run all 13 security gates before deployment

PII Detection & Redaction

const { detectPII, redactText } = require('vibeguard/pii');

const text = 'Contact john@example.com or 555-123-4567. Card: 4242424242424242';
const detected = detectPII(text);  // [{ type: 'email', ... }, { type: 'credit-card', ... }]
const safe = redactText(text);      // 'Contact [REDACTED_EMAIL] or [REDACTED_PHONE]. Card: ****4242'

Detected types: email, phone, SSN, credit card (Luhn-validated), AWS keys, JWTs, private keys, IP addresses, IBANs, MAC addresses.


<div align="center"> <h2>๐Ÿš€ Pre-Deploy Gate (13 Gates)</h2> </div>

Run all 13 security gates before deployment. If ANY gate fails, deployment is blocked.

vibeguard pre-deploy          # run all gates
vibeguard pre-deploy --strict  # fail on warnings too
vibeguard pre-deploy --json    # JSON output for CI/CD
# Gate What It Checks
1 Static Scan 693 rules โ€” any critical?
2 Secret Scan Secrets exposed in code?
3 Git History .env tracked in git?
4 Dependency Audit Slopsquat/typosquat?
5 Supply Chain Lockfile, scripts, licenses?
6 Privacy Audit PII collection/storage/transmission?
7 Network Audit Suspicious outbound domains?
8 AI Data Guard User data to AI APIs without redaction?
9 Compliance SOC2/PCI/HIPAA/GDPR?
10 Config Check .env in .gitignore? MCP installed?
11 Self-Check All VibeGuard modules intact?
12 Tamper Check No tampering with VibeGuard?
13 Behavioral Check No suspicious patterns?

<div align="center"> <h2>๐Ÿ”ฌ AST Taint Analysis & Confidence</h2> </div>

VibeGuard uses scope-aware AST dataflow analysis (not just regex) to track user input from source to sink:

const name = req.body.name;     // source โ€” tainted
const cmd  = `ls ${name}`;      // taint propagates through template literal
exec(cmd);                      // sink โ€” command injection confirmed

Confidence levels on every finding reduce alert fatigue:

Confidence Meaning How it's set
high Dataflow-confirmed โ€” input traced to sink AST taint, AST analysis
medium Multi-signal regex with filter() Rules with validation logic
low Bare regex match โ€” heuristic hint Single-pattern rules
vibeguard scan --min-confidence medium   # hide low-confidence hints
vibeguard scan --show-suppressed          # show inline-suppressed findings

Inline suppression with reasons:

const key = "sk_live_..."; // vibeguard-ignore[secret.stripe-live-key]: test fixture
// vibeguard-ignore-next[code.eval]: intentional eval in REPL
eval(userInput);

SARIF output maps confidence to result.properties.confidence for CI integrations.


<div align="center"> <h2>๐Ÿ“Š Numbers</h2> </div>

<!-- COUNTS:START --> <!-- Auto-generated by scripts/counts.js โ€” do not edit manually --> <!-- Rules: 693 | MCP Tools: 75 | Defense Layers: 13 --> <!-- COUNTS:END -->

<table> <tr><th>Metric</th><th>Value</th><th></th></tr> <tr><td>Rules</td><td><b>693</b></td><td>๐Ÿ”’</td></tr> <tr><td>MCP tools</td><td><b>75</b></td><td>๐Ÿค–</td></tr> <tr><td>CLI commands</td><td><b>58</b></td><td>๐Ÿ’ป</td></tr> <tr><td>Auto-fixable rules</td><td><b>43</b></td><td>๐Ÿ”ง</td></tr> <tr><td>Defense layers</td><td><b>13</b></td><td>๐Ÿ›ก๏ธ</td></tr> <tr><td>Pre-deploy gates</td><td><b>13</b></td><td>๐Ÿš€</td></tr> <tr><td>AI clients</td><td><b>12</b></td><td>๐Ÿง </td></tr> <tr><td>Languages</td><td><b>14</b></td><td>๐ŸŒ</td></tr> <tr><td>Frameworks</td><td><b>20+</b></td><td>โšก</td></tr> <tr><td>Presets</td><td><b>12</b></td><td>โš™๏ธ</td></tr> <tr><td>Privacy rules</td><td><b>50+</b></td><td>๐Ÿ”’</td></tr> <tr><td>Firewall rules</td><td><b>30+</b></td><td>๐Ÿ”ฅ</td></tr> <tr><td>AI Firewall threats</td><td><b>20+</b></td><td>๐Ÿงฑ</td></tr> <tr><td>PII types detected</td><td><b>10+</b></td><td>๐Ÿ‘๏ธ</td></tr> <tr><td>Source modules</td><td><b>43</b></td><td>๐Ÿ“ฆ</td></tr> <tr><td>Tests</td><td><b>279</b></td><td>โœ…</td></tr> <tr><td>Lint errors</td><td><b>0</b></td><td>โœจ</td></tr> <tr><td>Dependencies</td><td><b>1</b> (MCP SDK)</td><td>๐Ÿ“ฆ</td></tr> <tr><td>Cost</td><td><b>$0</b></td><td>๐Ÿ’š</td></tr> <tr><td>Telemetry</td><td><b>None</b></td><td>๐Ÿ”’</td></tr> <tr><td>Data sent to servers</td><td><b>None</b></td><td>๐Ÿ”’</td></tr> </table>


<div align="center"> <h2>๐Ÿ“ Benchmark (Precision / Recall / F1)</h2> </div>

We measure VibeGuard against a curated JS vuln corpus โ€” not a fake rule count.

<!-- BENCHMARK:START --> <!-- Auto-generated by npm run benchmark โ€” do not edit manually -->

Summary

Category TP FP FN Precision Recall F1
injection 21 5 7 80.8% 75.0% 77.8%
secrets 9 2 1 81.8% 90.0% 85.7%
xss 5 0 1 100.0% 83.3% 90.9%
path-traversal 5 2 0 71.4% 100.0% 83.3%
ai-safety 8 2 3 80.0% 72.7% 76.2%
OVERALL 48 11 12 81.4% 80.0% 80.7%

Per-Category Details

injection

File Rule ID Verdict
sql-concat.js code.sql-injection TP
sql-concat.js taint.sql-injection TP
sql-concat2.js code.sql-injection TP
sql-concat2.js taint.sql-injection TP
sql-concat3.js code.sql-injection TP
sql-template.js db.sql-template-literal TP
sql-template.js taint.sql-injection FN
sql-template2.js db.sql-template-literal FN
sql-template2.js taint.sql-injection TP
sql-fstring.py py.sql-injection TP
sql-sprintf.go go.sql-fmt-sprintf TP
sql-sprintf.go go.sql-injection FP
sql-raw-rb.js code.sql-injection TP
sql-kotlin.kt kotlin.sql-injection TP
sql-csharp.cs csharp.sql-injection FN
sql-csharp.cs code.sql-injection FP
cmd-concat.js taint.command-injection TP
cmd-concat.js ast.command-injection TP
cmd-template.js taint.command-injection TP
cmd-template.js ast.command-injection TP
cmd-py.py py.os-system TP
cmd-py2.py py.subprocess-shell-true TP
cmd-go.go go.command-injection TP
eval-input.js ast.eval-dynamic TP
eval-input.js code.eval FN
eval-template.js code.eval FN
eval-template.js ast.eval-dynamic TP
eval-template.js taint.code-injection FP
nosql.js injection.nosql FN
proto-poll.js injection.prototype-pollution FN
proto-poll.js ast.mass-assignment TP
sql-parameterized.js taint.sql-injection FP
cmd-array.js taint.command-injection FP

secrets

File Rule ID Verdict
openai-key.js secret.openai-key TP
github-token.js secret.github-token TP
stripe-key.js secret.stripe-live-key TP
stripe-key.js secret.generic-credential TP
stripe-key.js stripe.key-in-client FP
slack-token.js secret.slack-token TP
gitlab-token.js secret.gitlab-token TP
sendgrid-key.js secret.sendgrid-key TP
npm-token.js secret.npm-token TP
npm-token.js secret.high-entropy FP
gcp-key.js secret.gcp-api-key FN
private-key.js secret.private-key TP

xss

File Rule ID Verdict
reflected-xss.js xss.reflected-response TP
reflected-xss2.js xss.reflected-response TP
reflected-xss3.js xss.reflected-response TP
innerhtml.js injection.xss-angular-innerHTML TP
dangerously-html.jsx react.dangerous-html TP
vue-v-html.js injection.xss-vue-v-html FN

path-traversal

File Rule ID Verdict
read-concat.js taint.path-traversal TP
sendfile.js taint.path-traversal TP
read-template.js taint.path-traversal TP
read-template.js ai.tool-broad-file-access FP
write-concat.js taint.path-traversal TP
unlink-concat.js taint.path-traversal TP
allowlist.js taint.path-traversal FP

ai-safety

File Rule ID Verdict
user-in-system-prompt.js ai.user-input-in-system-prompt TP
llm-output-exec.js ai.llm-output-exec TP
llm-output-exec.js ai.llm-output-shell TP
llm-output-exec.js taint.command-injection FP
llm-output-exec.js ast.command-injection FP
agent-loop-no-cap.js ai.agent-loop-no-cap TP
model-id-user-input.js ai.model-id-injection TP
tool-result-injection.js ai.tool-result-injection FN
agent-memory-poison.js ai.memory-poisoning FN
tool-poisoning.js ai.tool-poisoning TP
tool-poisoning.js ai.mcp-description-injection-deep TP
prompt-extraction.js ai.prompt-extraction FN
llm-output-dom.js ai.llm-output-dom TP

Methodology

  • True Positive (TP): Expected rule fires on a vuln file.
  • False Positive (FP): Any finding on a clean file, or an unexpected rule on a vuln file.
  • False Negative (FN): Expected rule that did not fire on a vuln file.
  • Precision = TP / (TP + FP)
  • Recall = TP / (TP + FN)
  • F1 = 2 * (Precision * Recall) / (Precision + Recall)

Generated: 2026-07-11T23:53:17.994Z

<!-- BENCHMARK:END -->


<div align="center"> <h2>๐Ÿ”’ Privacy Guarantee</h2> </div>

VibeGuard never sends your code, secrets, API keys, or personal information anywhere.

What Network? When
vibeguard scan Never Local file read + regex match
vibeguard fix Never Local file edit
vibeguard install Never Local config write
vibeguard mcp Never stdio transport only
vibeguard cve Opt-in Package name โ†’ OSV.dev (free API)
vibeguard url Opt-in URL you type โ†’ fetch headers
--verify-keys Opt-in Key โ†’ provider that owns it

No telemetry. No analytics. No tracking. No data collection. No uploads.


<div align="center"> <h2>โš™๏ธ Presets</h2> </div>

vibeguard preset nextjs    # Next.js + React
vibeguard preset django    # Django + Python
vibeguard preset rails     # Ruby on Rails
vibeguard preset spring    # Spring Boot + Java
vibeguard preset aws       # AWS / Terraform
vibeguard preset gcp       # Google Cloud
vibeguard preset azure     # Azure
vibeguard preset api       # REST / GraphQL API
vibeguard preset mobile    # React Native / mobile
vibeguard preset fullstack # all rules (maximum coverage)

<div align="center"> <h2>๐Ÿ”ง CI/CD</h2> </div>

vibeguard init-ci          # GitHub Actions (SARIF + fail on CRITICAL)
vibeguard install-hook     # git pre-commit hook (blocks on critical)
vibeguard install-hook-post # PostToolUse hook (auto-scan after AI edits)
vibeguard pr-comment        # GitHub PR comment format (markdown)

Templates included for: GitLab CI, Jenkins, CircleCI, Azure Pipelines.


<div align="center"> <h2>๐Ÿ’ป Languages & Frameworks</h2> </div>

Languages (14): JavaScript, TypeScript, Python, Go, Java, Ruby, PHP, C#, Rust, Kotlin, Swift, Bash, SQL, YAML

Frameworks (20+): Next.js, React, Remix, Astro, SolidStart, SvelteKit, Nuxt, Django, Flask, Rails, Laravel, Spring Boot, NestJS, Fastify, Express, Hono, tRPC, Gin, Echo, Drizzle, Prisma, Sequelize, TypeORM, Kysely, MikroORM, Convex, Turso, Clerk, Auth.js, Supabase, Firebase, Stripe, Polar, LemonSqueezy, Resend, Upstash, Pinecone, PostHog, Uploadthing

Compliance: SOC 2, PCI-DSS, HIPAA, GDPR, ISO 27001, EU AI Act


<div align="center"> <h2>๐Ÿ› ๏ธ Development</h2> </div>

npm install
npm test          # 263 tests
npm run benchmark # precision/recall/F1 benchmark
npm run counts    # self-generating rule/tool counts
npm run lint      # 0 errors
npm run coverage  # coverage report

<div align="center"> <h2>๐Ÿ“– Honest Scope</h2> </div>

VibeGuard catches the mechanical security holes that AI tools leave behind. It does NOT:

  • Prove your app is safe or leak-proof
  • Track personal data end-to-end through your app automatically
  • Judge business logic flaws
  • Replace a real security review for anything touching money, auth, or personal data

It raises the floor fast โ€” catching the holes that AI tools create by default.


<div align="center"> <h2>๐Ÿ“„ License</h2>

MIT โ€” Free forever. No ads. No tracking. No data collection.

</div>


<div align="center">

<!-- Author Section with Animation --> <img src="https://readme-typing-svg.herokuapp.com?font=Fira+Code&weight=600&size=22&duration=2500&pause=500&color=2E75B6&center=true&vCenter=true&random=false&width=400&lines=Made+with+%E2%9D%A4%EF%B8%8F+by+Yagyesh+Vyas" alt="Made by Yagyesh Vyas" />

<br/>

<a href="https://www.linkedin.com/in/yagyeshvyas/"> <img src="https://img.shields.io/badge/LinkedIn-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn" /> </a> ย  <a href="https://github.com/yagyeshVyas"> <img src="https://img.shields.io/badge/GitHub-%23121011.svg?style=for-the-badge&logo=github&logoColor=white" alt="GitHub" /> </a> ย  <a href="https://www.npmjs.com/package/@yagyeshvyas/vibeguard"> <img src="https://img.shields.io/badge/npm-%23CB3837.svg?style=for-the-badge&logo=npm&logoColor=white" alt="npm" /> </a>

<br/> <br/>

<p><b>โญ If VibeGuard helped you, star the repo!</b></p>

<p>Found a bug? <a href="https://github.com/yagyeshVyas/VibeGuard/issues">Open an issue</a> ยท Want to contribute? <a href="https://github.com/yagyeshVyas/VibeGuard/pulls">Submit a PR</a></p>

<br/>

<p><sub>VibeGuard v0.1.0 ยท MIT License ยท 693 rules ยท 75 MCP tools ยท 13 defense layers ยท $0 cost ยท zero telemetry</sub></p>

</div>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured