{
  "markdown": "# nextscan\n\nMCP server that scans Next.js projects and returns a compact summary. One tool call → full project overview.\n\n## What it does\n\n| Without nextscan | With nextscan |\n|---|---|\n| Manual file-by-file exploration | Single `scan` call |\n| Multiple tool calls to understand routes | Compact route tree with flags |\n| Missing security issues | Hardcoded secrets + env leak detection |\n| Unknown API coverage | Auth + validation status per endpoint |\n| Schema guesswork | Prisma/Drizzle relation mapping |\n\n## Quick Install\n\n```bash\n# Clone and build\ncd nextscan\nnpm install\nnpm run build\n\n# Add to Claude Code\nclaude mcp add nextscan -- node /path/to/nextscan/dist/index.js\n```\n\n## Tool: `scan`\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `path` | string | Yes | Absolute path to Next.js project root |\n| `focus` | enum | No | `routes` \\| `api` \\| `schema` \\| `security` |\n\n## Example Output\n\n```\nnextscan — my-app\n────────────────────────────────────────\nRoot: /Users/dev/my-app\n   src/ : yes  app/ : yes  middleware: yes\n   ORM  : prisma\n\nRoutes\n   Pages: 12  Layouts: 3  API: 5\n   Dynamic: 4  Static: 8\n   Client: 3  Server: 9\n   Groups: (marketing), (auth)\n   Matchers: /dashboard/:path*, /api/:path*\n   ┌─ Pages\n   ├─ /\n   ├─ /about\n   ├─ /dashboard [client]\n   ├─ /blog/[slug] [dyn,SSG]\n   └─ /settings [client]\n\nAPI Endpoints\n   Total: 5  Unprotected: 1\n   ├─ GET,POST /api/users [auth:next-auth | val:zod]\n   ├─ GET /api/health [no-auth,no-rate-limit]\n   └─ POST /api/webhook [no-auth,no-validation]\n\nSchema\n   Models: 5  Relations: 4\n   Orphans: AuditLog\n   User ─< Post (1:N)\n   User ─ Profile (1:1)\n   Post >─< Tag (N:N)\n\nSecurity\n   Score: 75/100  Headers: yes  Middleware: yes\n   [high] API route /api/health has no auth: [GET]\n   [medium] No rate limiting on /api/users\n```\n\n## Example Prompts\n\n- \"Scan my Next.js project at /Users/dev/my-app\"\n- \"Check the security of my Next.js app\"\n- \"Show me the route structure\"\n- \"Analyze the database schema\"\n\n## Architecture\n\n```\nsrc/\n├── index.ts              # MCP server entry point\n├── tools/scan.ts         # Orchestrator\n├── analyzers/\n│   ├── routes.ts         # App router analysis\n│   ├── api.ts            # API endpoint analysis\n│   ├── schema.ts         # Schema orchestration\n│   └── security.ts       # Security scanning\n├── parsers/\n│   ├── typescript.ts     # ts-morph utilities\n│   ├── prisma.ts         # Regex-based Prisma parser\n│   └── drizzle.ts        # AST-based Drizzle parser\n├── formatters/\n│   └── compact.ts        # Unicode tree formatter\n└── utils/\n    ├── fs.ts             # File system utilities\n    └── detect.ts         # Project detection\n```\n\n## Requirements\n\n- Node.js 18+\n- An MCP-compatible client (Claude Code, Claude Desktop, etc.)\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm run test:coverage\n```\n\n## Author\n\n**Berkay Derin** — [github.com/berkayderin](https://github.com/berkayderin)\n\n## License\n\nMIT\n",
  "bytes": 2948,
  "sha": "f9637ba90d0e49d5dcbfe00ab3f63a41367f877a0602e676a1e3925cdc06bb22",
  "repo_slug": "berkayderin/nextscan",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_berkayderin_nextscan_8da594bb/readme"
}