MCP Runs inside Claude Code, Codex and Cursor

A second opinion on everything your agent ships.

149+ automated checks across your repo and your deployed site. Secrets, phantom imports, open auth routes, dead performance. One ranked report in under 2 minutes.

No account to start·Read only access·Public or private repos
vibedoctor.io / scans / you-your-app Scan complete
Overall score
61 /100
Needs attention
Security48
Code quality63
Performance71
356 issues found
critical Stripe secret key committed to source lib/payments.ts:14
critical No rate limiting on /api/login app/api/login/route.ts
high Import of a package that does not exist utils/slugify.ts:2
high CORS allows every origin middleware.ts:31
medium Same fetch logic duplicated in 6 files components/*
medium 2.4 MB of unoptimised images on first load public/hero.png
low Missing page metadata app/layout.tsx
V In your agent

Fixed the Stripe key leak and added a rate limit to /api/login. Rescanning now.

Connects to Claude CodeCodexCursorWindsurfCline
What it checks

Six things agents get wrong on almost every project.

01 21 checks

Secrets and credentials

API keys, tokens and service credentials committed into source, env files or client bundles.

02 22 checks

Auth and access

Unprotected routes, no rate limit on login or sign up, permissive CORS, sessions that never expire.

03 8 checks

Dependencies

Hallucinated imports, unpinned versions, known CVEs and packages nobody ever installed.

04 29 checks

Vibe coding health

Duplicated logic, dead files, half finished refactors and TODOs the agent promised to come back to.

05 16 checks

Performance

Payload size, render blocking assets, unoptimised images and the requests that make first load crawl.

06 34 checks

SEO and best practices

Metadata, crawlability, accessibility basics and whether an AI search engine can read your pages.

See all 149+ checks across 21 diagnostic areas.

How it works

Paste, scan, fix.

01

Paste one line into your agent

It installs the MCP server itself. Nothing to configure, no dashboard to learn, no keys to paste.

02

Ask it to scan

149+ checks run across your source and your deployed URL in under 2 minutes, public repo or private.

03

Fix it in the same chat

Findings come back ranked with file paths, so the agent that wrote the code can go straight to fixing it.

4%

imported at least one package that does not exist

35%

had API keys or secrets committed to the repo

6%

had no rate limiting on auth endpoints

Measured across
1,099

repos scanned to July 2026

Live scan results

Apps getting checked right now.

Showing the latest 20 of 4,442 scans

Country Language Findings When
🌐Python495 files3 high1418 mediumAI Search ReadyCompliant11m ago
🌐Python120 files32 critical16 high226 mediumNot AI Search ReadyCompliant9h ago
🌐JavaScript1 files1 critical2 high16 mediumNot AI Search ReadyCompliant12h ago
🌐JavaScript1 files2 high16 medium12h ago
INTypeScript107 files2 high74 medium18h ago
🌐TypeScript456 files5 critical85 high221 medium1d ago
🌐TypeScript2171 files32 critical54 high585 mediumAI Search ReadyCompliant1d ago
🌐TypeScript539 files3 critical1 high4 mediumNot AI Search ReadyCompliant1d ago
USPython478 files6 high2240 medium1d ago
USWebsite2 critical6 mediumNot AI Search ReadyCompliant1d ago
USWebsite4 critical5 mediumNot AI Search ReadyNot Compliant2d ago
🌐TypeScript41 files1 critical2 high17 medium2d ago
AEWebsite4 critical1 high4 mediumAI Search ReadyNot Compliant2d ago
CAWebsite7 critical17 high2 mediumNot AI Search ReadyCompliant3d ago
NPTypeScript14 files1 high12 medium3d ago
NPWebsite3 critical1 high6 mediumNot AI Search ReadyCompliant3d ago
🌐Website3 critical6 mediumNot AI Search ReadyCompliant3d ago
PKWebsite3 critical6 mediumNot AI Search ReadyCompliant3d ago
USWebsite6 mediumAI Search ReadyCompliant3d ago
🌐Website3 highAI Search ReadyCompliant3d ago
🌐Website3 critical5 mediumNot AI Search ReadyCompliant3d ago
USWebsite3 critical5 mediumNot AI Search ReadyCompliant3d ago
🌐Website1 mediumAI Search ReadyCompliant4d ago
EEWebsite1 mediumAI Search ReadyCompliant4d ago
PHJavaScript18 files2 critical1 high16 medium4d ago
MMWebsite2 critical1 mediumNot AI Search ReadyCompliant4d ago
EEWebsite2 critical4 high6 mediumNot AI Search ReadyCompliant4d ago
EEWebsite6 critical11 high5 mediumNot AI Search ReadyCompliant5d ago
INWebsite3 critical1 high8 mediumNot AI Search ReadyCompliant5d ago
🌐Python1135 files3 medium5d ago
NOWebsite3 criticalNot AI Search ReadyCompliant5d ago
SGWebsite9 critical17 high2 mediumNot AI Search ReadyNot Compliant5d ago
🌐Website17 mediumAI Search ReadyCompliant5d ago
🌐Python92 files1 high107 medium5d ago
🌐C102 files1 critical3 high16 medium7d ago
INTypeScript57 files6 critical59 high49 medium8d ago
DEJavaScript147 files17 critical68 high176 medium8d ago
FRTypeScript34 files6 critical30 high33 medium8d ago
GBPython3 files116 medium8d ago
FRVue123 files3 critical13 high34 medium8d ago
Vibe X-Ray

See what your agent actually built.

Every scan rebuilds a map of your codebase: modules, the sub-modules inside them, and the files where the findings actually sit. Follow the red down three levels and you land on the file to fix. Paste that one file into your agent instead of the whole repo.

All modules Api api/auth X-Ray ready
316 features detected 16 findings main 4f2c1ab 29 connections Sample project
31 18 204 96 47 Api 41 feat / 88 nodes 9 findings / health 38 App 118 feat / 214 nodes 4 findings / health 66 Components 96 feat / 181 nodes 3 findings / health 74 Lib 27 feat / 63 nodes health 91 api/auth 8 feat / 19 nodes 5 findings / health 24 api/stripe 6 feat / 14 nodes 4 findings / health 41 app/(dashboard) 34 feat / 61 nodes 4 findings / health 66 components/forms 22 feat / 38 nodes 3 findings / health 74 lib/db 11 feat / 24 nodes health 91 app/api/login/route.ts critical No rate limiting lib/session.ts high Session never expires app/api/webhook/route.ts critical Signature not verified lib/payments.ts critical Stripe key in source app/(dashboard)/page.tsx medium Missing page metadata components/UploadForm.tsx high No file type check lib/db/client.ts clean no findings
Unhealthy (<60) Fair (60-80) Healthy (>80)

Drill to the function

Module, then sub-module, then the file and the functions inside it. Findings are pinned to the symbol they came from.

Dead code and coverage

Two more tabs on the same map: what nothing calls any more, and which parts of the code no test touches.

Fewer tokens per prompt

Send the files a change actually touches instead of the repo. How Vibe X-Ray works.

On every plan, rebuilt on every scan. From $0, Watch from $15/mo. See pricing.

Questions.

Is AI-generated code safe to ship?

It usually runs, and it usually ships with the same handful of holes: keys committed to source, auth routes with no guard, missing rate limits, imports of packages that do not exist. This is a scan for people shipping apps their agent mostly wrote, and it finds those before your users do.

Does VibeDoctor modify or write to my code?

No writes. The scan reads your repo and your live site and returns findings. Any fixing happens in your editor, by you or your agent.

Can VibeDoctor scan a private GitHub repository?

Yes. Connect the GitHub App and access is scoped to read-only. Source is analysed only for the length of the scan, then dropped.

What languages and frameworks does VibeDoctor scan?

JavaScript and TypeScript, Python, Go, Ruby, Java, PHP and Rust, with framework-aware checks for React, Next.js, Express, Fastify, Django, Flask, FastAPI, Rails and Spring. Anything the site-side checks can reach over HTTP is covered as well.

How do I connect VibeDoctor to Claude Code, Cursor or Codex?

Paste one line into the agent: connect to vibedoctor using https://vibedoctor.io/mcp/start. It fetches the instructions, installs the MCP server itself, and reports back in the chat you already have open. No keys to copy, no config file to edit.

How do I find hallucinated npm packages in AI-generated code?

Every scan verifies each dependency against the registry, so an import of a package that does not exist is flagged with its file and line. It is one of the most common AI-generated defects: 4% of the repositories scanned in production had at least one.

How is VibeDoctor different from SonarQube, Snyk or CodeRabbit?

There is real overlap. VibeDoctor runs the same classes of engine they do: a SAST pass, secret detection, dependency CVE scanning, and each language's own linter and type checker (opengrep, gitleaks, trivy, ruff, biome, pyright, tsc, clippy, rubocop, phpstan). What it adds is your deployed site scanned alongside the repo (Lighthouse, security headers, SSL, SEO, exposed files, console errors), checks aimed at AI-generated code such as imports of packages that do not exist, and a graph of your codebase. It also runs from inside your agent over MCP, so findings arrive in the chat where the code was written.

What is Vibe X-Ray?

A four-level visual explorer for your codebase: modules, files, symbols and the dependencies between them. It shows what your agent actually built - which functions call what, where complexity hides, and what breaks if you touch something. It updates with every scan.

Is VibeDoctor free?

Yes. The free plan covers one project, one scan a day, and the full report, with no card required. Paid plans add more projects, a scan on every push, and PR review.

Scan it before your users do.

connect to vibedoctor using https://vibedoctor.io/mcp/start

Or paste a repo URL and skip the setup entirely.

Someone in India scanned their app
76 issues found · scored 88/100