Back to Directory/Developer Tools

io.github.berkayderin/nextscan

MCP server that scans Next.js projects and returns a compact summary

Developer ToolsTypeScriptv1.0.1

nextscan

MCP server that scans Next.js projects and returns a compact summary. One tool call → full project overview.

What it does

Without nextscanWith nextscan
Manual file-by-file explorationSingle scan call
Multiple tool calls to understand routesCompact route tree with flags
Missing security issuesHardcoded secrets + env leak detection
Unknown API coverageAuth + validation status per endpoint
Schema guessworkPrisma/Drizzle relation mapping

Quick Install

# Clone and build
cd nextscan
npm install
npm run build

# Add to Claude Code
claude mcp add nextscan -- node /path/to/nextscan/dist/index.js

Tool: scan

ParameterTypeRequiredDescription
pathstringYesAbsolute path to Next.js project root
focusenumNoroutes | api | schema | security

Example Output

nextscan — my-app
────────────────────────────────────────
Root: /Users/dev/my-app
   src/ : yes  app/ : yes  middleware: yes
   ORM  : prisma

Routes
   Pages: 12  Layouts: 3  API: 5
   Dynamic: 4  Static: 8
   Client: 3  Server: 9
   Groups: (marketing), (auth)
   Matchers: /dashboard/:path*, /api/:path*
   ┌─ Pages
   ├─ /
   ├─ /about
   ├─ /dashboard [client]
   ├─ /blog/[slug] [dyn,SSG]
   └─ /settings [client]

API Endpoints
   Total: 5  Unprotected: 1
   ├─ GET,POST /api/users [auth:next-auth | val:zod]
   ├─ GET /api/health [no-auth,no-rate-limit]
   └─ POST /api/webhook [no-auth,no-validation]

Schema
   Models: 5  Relations: 4
   Orphans: AuditLog
   User ─< Post (1:N)
   User ─ Profile (1:1)
   Post >─< Tag (N:N)

Security
   Score: 75/100  Headers: yes  Middleware: yes
   [high] API route /api/health has no auth: [GET]
   [medium] No rate limiting on /api/users

Example Prompts

  • "Scan my Next.js project at /Users/dev/my-app"
  • "Check the security of my Next.js app"
  • "Show me the route structure"
  • "Analyze the database schema"

Architecture

src/
├── index.ts              # MCP server entry point
├── tools/scan.ts         # Orchestrator
├── analyzers/
│   ├── routes.ts         # App router analysis
│   ├── api.ts            # API endpoint analysis
│   ├── schema.ts         # Schema orchestration
│   └── security.ts       # Security scanning
├── parsers/
│   ├── typescript.ts     # ts-morph utilities
│   ├── prisma.ts         # Regex-based Prisma parser
│   └── drizzle.ts        # AST-based Drizzle parser
├── formatters/
│   └── compact.ts        # Unicode tree formatter
└── utils/
    ├── fs.ts             # File system utilities
    └── detect.ts         # Project detection

Requirements

  • Node.js 18+
  • An MCP-compatible client (Claude Code, Claude Desktop, etc.)

Development

npm install
npm run build
npm test
npm run test:coverage

Author

Berkay Derin — github.com/berkayderin

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @berkayderin/nextscan

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-berkayderin-nextscan": {
      "command": "npx",
      "args": [
        "-y",
        "@berkayderin/nextscan"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@berkayderin/nextscannpm

Compatible MCP Clients

io.github.berkayderin/nextscan works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More