Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
The static analyzer your AI agent reads — fix-ready, machine-readable scan reports over MCP.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"codemore": {
"command": "npx",
"args": [
"-y",
"codemore",
"serve-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add codemore -- npx -y codemore serve-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"codemore": {
"command": "npx",
"args": [
"-y",
"codemore",
"serve-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"codemore": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"codemore",
"serve-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub abhinavteja123 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.8) เข้า registry 4 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, HotCodePush
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
AI agents ship code fast — and ship bugs fast. CodeMore scans the code, then hands the agent that wrote it a machine-readable report with the exact fix and the criteria to verify it. The agent closes its own findings.
Website · Docs · Rule Catalog · Report Schema · Changelog
npx codemore@latest scan .
64 native rules · 8 external adapters · CLI · MCP server · VS Code extension · GitHub Action — one report, byte-identical on every surface.
AI-assisted coding ships vulnerabilities at a measured, growing rate:
| Finding | Source |
|---|---|
| 45% of AI-generated code carries an OWASP Top-10 vulnerability | Veracode 2025/26 |
| 98% of 1,072 scanned vibe-coded sites had ≥ 1 security flaw | Symbiotic |
| 70% of audited Lovable apps shipped with Supabase RLS disabled | DEV |
| 2× baseline secret-leak rate on AI-tool-assisted commits | GitGuardian SOSS 2026 |
| 35 CVEs/month attributed to AI-generated code (was 6/month in January) | March 2026 |
Existing scanners (SonarQube, DeepSource, Snyk) target human reviewers sitting at dashboards. But this code wasn't written by a human — and the LLM that wrote it is fully capable of fixing its own bug, *if the report is shaped for a machine reader*.
That's the wedge. CodeMore is not another SAST dashboard. It's the report contract between a scanner and a coding agent: every finding carries a suggestedFix with a patch template and explicit verificationCriteria — not just "here's a problem," but "here's exactly how to know you fixed it."
The agent that wrote the bug can also write the fix — if it can read the report.
npx codemore@latest scan .
Prints a summary to the terminal. Add --json for the full report on stdout, or --out codemore-report.json to write it to disk: every finding pinned to file:line:column with rule citation, fix template, and verification criteria. Pipe it to your agent and watch findings close.
npm install -g codemore # once — or prefix each command below with `npx codemore@latest`
codemore update # global install pinned an old version? this pulls latest codemore scan . --fail-on BLOCKER # CI gate: non-zero exit on any BLOCKER codemore scan . --external-tools ruff,biome # opt in to external tools codemore scan . --external-tools all # ruff · golangci-lint · clippy · biome · bandit · gitleaks · npm-audit · pip-audit codemore scan . --format sarif --out codemore.sarif # GitHub code scanning (upload-sarif) codemore fix . --rule --write # agentic fix loop from the CLI (needs an LLM API key) codemore baseline create # adopt on an existing repo without drowning in legacy findings
npx codemore mcp # print config snippet + every client's config path
npx codemore mcp install --client cursor # merge into existing config (backs up first, --dry-run supported)
Manual config snippet
{
"mcpServers": { "codemore": { "command": "npx", "args": ["-y", "codemore@latest", "serve-mcp"] } } }
Six tools exposed: scan_project · scan_file · explain_issue · suggest_fix · apply_fix · validate_fix.
Per-client setup, exact config paths, and verified handshake evidence (Claude Code, Cursor, Claude Desktop, Codex CLI): docs/ide-matrix.md.
Install CodeMore from the VS Code Marketplace (Extensions → search "CodeMore" → Install), or build the VSIX yourself:
npm run vsce:package # builds codemore-<version>.vsix
code --install-extension codemore- .vsix
Inline diagnostics; code-action quick-fix invokes the agentic loop (plan → generate → validate → retry, max 3 attempts).
# .github/workflows/codemore.yml
on: pull_request: branches: [main] jobs: scan: runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps:
PR-comment bot; only fails the build on findings new since the committed .codemore-baseline.json. A full copy-paste security gate chaining CodeMore + Ruff + Biome + Bandit + Gitleaks + npm-audit + pip-audit + Checkov lives at templates/.github/workflows/codemore-security-gate.yml (walkthrough).
Sign in at codemore.tech, paste a public GitHub URL or upload a ZIP — same report, same fingerprint, zero install.
64 native rules across 6 packs, every rule mapped to a *cited real-world incident class* — not a hypothetical:
| Pack | Rules | Highlights |
|---|---|---|
core-security | 22 | SQL injection (concat), path traversal, weak crypto, insecure deserialization, eval, shell injection, TLS-off, hardcoded secret patterns, hardcoded passwords (B105-class), SSRF, secret-in-log, LLM-output → eval/exec/SQL sinks, prompt-injection sinks, DB write-without-WHERE, hallucinated imports |
core-quality | 21 | Unused vars/imports/exports, cyclomatic complexity, dead conditionals, leftover console/prints, async-without-await, unreachable code, loose equality, as any, non-null-assertion abuse |
vibe-frontend | 9 | XSS (dangerouslySetInnerHTML), CORS-with-credentials, missing rate limit, missing cookie flags, file-upload validation, missing input validation — CORS, cookie flags and input validation each in TS + Python (Flask/FastAPI) form |
vibe-secrets | 4 | Public env leaks (NEXT_PUBLIC_* / VITE_* / REACT_APP_*), hardcoded JWTs, MCP config secrets, CI/CD YAML secrets |
vibe-auth | 5 | BOLA (TS + Python), missing session/auth checks (TS + Python), inverted auth |
vibe-supabase | 3 | RLS-off, RLS-permissive (USING (true)), anon-key bundled to client |
8 external adapters (off by default, opt in via --external-tools): ruff · golangci-lint · clippy · biome · bandit · gitleaks · npm-audit · pip-audit. Findings are namespaced ext: : — no collision with native rules; a missing binary skips silently instead of crashing.
The walker catches what `.gitignore` hides. When a developer "hides" a leaked secret file by gitignoring it, most scanners stop seeing it — but it's still on disk, in tarballs, in Docker images. CodeMore always scans secret-shaped filenames (.env*, *.pem, *.key, firebase-adminsdk*.json, credentials.json, .npmrc, .pypirc, …) even when gitignored. This is exactly how the audits found real production OpenAI keys, Google API keys, and Firebase admin SDK creds that other tools silently missed. Opt out with --respect-gitignore-fully.
Per-rule documentation: docs/rules — 64 pages, one per rule.
Every surface emits the same schema-stable codemore-report.json — verified byte-identical (modulo timestamps and instance IDs) on every release by test/parity.test.ts:
CLI : issues=224 BLOCKER=5 fingerprint=sha256:7f95f2c62e0d3ecea6f23…
MCP : issues=224 BLOCKER=5 fingerprint=sha256:7f95f2c62e0d3ecea6f23… Daemon : issues=224 BLOCKER=5 fingerprint=sha256:7f95f2c62e0d3ecea6f23…
One brain, four skins. The schema is the API; surfaces are interchangeable.
Full report example — codemore-report.json v1.0.0
{
"schemaVersion": "1.0.0", "tool": { "name": "codemore", "version": "0.3.0" }, "project": { "root": ".", "framework": "next.js", "language": "typescript", "fingerprint": "sha256:7f95f2c62e0d3ecea6f23…" }, "summary": { "issuesTotal": 42, "bySeverity": { "BLOCKER": 2, "CRITICAL": 5, "MAJOR": 15, "MINOR": 18, "INFO": 2 }, "byCategory": { "security": 12, "bug": 7, "…": "…" }, "filesAnalyzed": 87, "linesOfCode": 12450, "technicalDebtMinutes": 1840 }, "issues": [ { "id": "vibe-supabase-rls-disabled", "ruleVersion": "1.2.0", "instanceId": "01HZ…", "severity": "BLOCKER", "confidence": 0.95, "category": "security", "title": "Supabase table has no RLS policy", "evidence": { "file": "supabase/migrations/001_init.sql", "line": 14, "column": 1, "endLine": 14, "endColumn": 60, "snippet": "create table profiles (id uuid primary key, …);", "matchedPattern": "create-table-without-rls" }, "whyItMatters": "Public Supabase client can read/write all rows. 70 % of Lovable apps leak data through this.", "citation": "https://codemore.tech/rules/vibe-supabase-rls-disabled", "suggestedFix": { "type": "code-patch", "instructions": "Add ALTER TABLE profiles ENABLE ROW LEVEL SECURITY; plus at least one policy scoped to authenticated users.", "patchTemplate": "…", "verificationCriteria": [ "Migration contains ALTER TABLE … ENABLE ROW LEVEL SECURITY", "At least one CREATE POLICY exists for the table", "Re-scan no longer reports vibe-supabase-rls-disabled for this file" ] }, "suppression": { "available": true, "directive": "// codemore-ignore: vibe-supabase-rls-disabled", "scope": "same-line | next-line | file" } } ], "agentInstructions": { "preamble": "You are fixing issues found by CodeMore. Apply patches one issue at a time. After each, request re-scan via validate_fix.", "orderingHint": "blockers → criticals → majors", "doNotTouch": ["node_modules/**", "*.lock", ".env*"], "stopOn": "first-validator-failure" }, "meta": { "rulesEnabled": 64, "packsLoaded":
ตัดมาแค่ช่วงต้น อ่านต่อใน repo