Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Audit HTTP cookie security against your local policy. Returns findings without cookie values.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"cookieguard": {
"command": "npx",
"args": [
"-y",
"@aiscihub/cookieguard-mcp",
"--config",
"ใส่ค่าของคุณ"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add cookieguard -- npx -y @aiscihub/cookieguard-mcp --config 'ใส่ค่าของคุณ'ตัวนี้ต้องใส่ค่าในคำสั่งเปิดเอง ให้คัดลอกค่าตั้งแล้วเติมค่า
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"cookieguard": {
"command": "npx",
"args": [
"-y",
"@aiscihub/cookieguard-mcp",
"--config",
"ใส่ค่าของคุณ"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้ต้องใส่ค่าในคำสั่งเปิดเอง ให้คัดลอกค่าตั้งแล้วเติมค่า
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"cookieguard": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@aiscihub/cookieguard-mcp",
"--config",
"ใส่ค่าของคุณ"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub aiscihub ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry วันนี้
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Detailing Manager
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.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Let an MCP client check HTTP cookie configuration against your local policy. CookieGuard returns PASS / FAIL / INCOMPLETE, rule IDs, explanations, and fixes. Cookie values never appear in tool results.
Version 0.2.0 on npm, listed in the official MCP Registry as io.github.aiscihub/cookieguard. Requires Node.js 24+. Version 0.2.0 adds cookieguard_capabilities, cookieguard_audit (including sanitized evidence files), and cookieguard_explain. See Tools and results.
flowchart LR
Client[AI client] --> MCP[Local MCP adapter] Config[Your origins and policy] --> MCP MCP --> HTTP[Bounded HTTP header scan] HTTP --> Engine[CookieGuard policy engine] Engine --> Result[PASS / FAIL / INCOMPLETE] Result --> Client
The client launches a local program and communicates over stdio. No cloud hosting, API key, Python, or browser installation is needed. The adapter uses the existing cookieguard-ci scanner and @aiscihub/cookieguard-core policy engine.
From a clone of this repository:
npm ci
npm run demo:mcp
The demo starts a local fixture and connects a real MCP SDK client to the server. It reads the capabilities, audits three endpoints, explains the failure, audits a report written by a separate CLI run, checks every outcome, and exits:
MCP tools: cookieguard_audit, cookieguard_capabilities, cookieguard_explain, cookieguard_policy, cookieguard_scan
Capabilities: 9 checks; allowed origins: 1; evidence files: enabled secure: PASSED (exitCode 0) missing-httponly: FAILED (exitCode 1) — CG001 Missing HttpOnly preference: INCOMPLETE (exitCode 2) — expected-auth-cookie-not-observed Explain CG001: Set HttpOnly on the authentication cookie at the server. Evidence login-report.json: FAILED (exitCode 1); observed by server: no MCP demo passed; cookie-value canary absent from results and diagnostics.
The preference endpoint is incomplete because the configured session_id was not observed. The demo itself exits 0 when every expected outcome is verified.
Example /absolute/path/cookieguard.json:
{
"allowedOrigins": ["http://127.0.0.1:3000"], "policy": { "authCookies": ["session_id"], "failOn": "high", "allowedSameSite": ["lax", "strict"], "requireExplicitSameSite": true, "requireHostOnly": true, "maxLifetimeDays": 30 }, "timeoutMs": 10000, "evidenceDir": "/absolute/path/cookieguard-evidence" }
evidenceDir is optional and only used by cookieguard_audit (0.2.0+). Use your actual application origin and authentication-cookie names. An origin contains scheme, host, and optional port, with no URL path, credentials, query, or fragment. localhost and 127.0.0.1 are distinct origins. The allowlist is required even for loopback; there is no default authorization for other local services. At most 20 origins are accepted. Public remote origins must also be explicitly configured; the scanner blocks private non-loopback addresses and remote IPv6.
For clients that use an mcpServers JSON object:
{
"mcpServers": { "cookieguard": { "command": "npx", "args": [ "--yes", "@aiscihub/cookieguard-mcp@0.2.0", "--config", "/absolute/path/cookieguard.json" ] } } }
Replace the configuration path. The pinned version keeps the server from changing until you update it. Use an absolute path to npx if your client cannot find it on PATH. To run from a checkout instead, run npm ci in the repository root, set command to node, and make /absolute/path/cookieguard-ai/packages/mcp/bin/cookieguard-mcp.js the first argument before --config. Client-specific configuration locations and wrapper keys vary; the command and argument array above are the stdio launch settings. This release was tested with the official MCP SDK client on Linux (Node.js 24) and macOS (Node.js 26); desktop MCP clients have not been tested yet.
Ask your client: “Read CookieGuard's policy, then scan http://127.0.0.1:3000/secure and explain any confirmed failures.” In a clone of this repository, run npm run demo in another terminal to provide that fixture endpoint.
Restart the MCP server after changing configuration. The server loads a snapshot at startup; neither a tool call nor an edit to the file changes a running policy. An agent with shell access could still edit the configuration and restart the process, so filesystem permissions and client permissions remain your boundary.
| Tool | Arguments | Result | Available in |
|---|---|---|---|
cookieguard_policy | {} | Allowed origins, resolved policy defaults, timeout, and scope | 0.1.0 |
cookieguard_scan | {"url":"http://127.0.0.1:3000/secure"} | Status, exit code, counts, findings, limitations, and any scan error | 0.1.0 |
cookieguard_capabilities | {} | Checks, this server's configuration, result semantics, integrations, privacy, and limits | 0.2.0 |
cookieguard_audit | {"url":"…"} or {"evidenceFile":"login.json"} | Same result as cookieguard_scan, plus provenance | 0.2.0 |
cookieguard_explain | {"id":"CG001"} | Meaning, confirmed versus review conditions, and fix for a rule, issue, error, or status | 0.2.0 |
Since 0.2.0, every finding also carries evidenceSource (header for a server Set-Cookie declaration, browser for cookie-store metadata) and identityBasis (developer configuration versus uncalibrated heuristics). Output schemas are published in schemas/.
The server never attaches to a browser or reads another process's cookies. To audit a login that only a browser can perform, run it in your own test code with the Browser Use integration (result.write_json(path)), the Playwright adapter (write formatJson(await audit.evaluate())), or the CLI (--output). Write the sanitized report into the configured evidenceDir, then call cookieguard_audit {"evidenceFile": "login.json"}. The server reads only plain .json names inside that directory (no paths or symlinks, at most 1 MiB), rebuilds the value-free observations field by field, and evaluates them under its own startup policy. Evidence for origins outside allowedOrigins is rejected, provisional or incomplete collections stay incomplete, and results carry provenance.observedByServer: false, because the server cannot verify who wrote the file. integrations/browser-use/scripts/agent_discovery_e2e.py runs this path end to end with a real Browser Use agent and the Python MCP SDK.
Only url is accepted by the scan tool. Policy, headers, credentials, and origin overrides are rejected. timeoutMs is a startup setting from 100 to 10000 milliseconds, defaulting to 10000. Only one scan runs at a time; an overlapping call returns BUSY rather than queuing more network work.
The scan response includes identical JSON in structuredContent and its text content block. Its exitCode is a result field, not the MCP server process's exit status:
status | exitCode | Meaning |
|---|---|---|
passed | 0 | Completed; no confirmed violations at or above failOn |
failed | 1 | Confirmed cookie-policy violations at or above failOn |
incomplete | 2 | Missing evidence or a scan that could not complete |
A policy failure is a successful tool execution (isError: false). A blocked target, timeout, HTTP error, or busy server returns isError: true, incomplete, and a fixed error code/message. SDK argument-validation failures return isError: true and may have only text content. Always check both isError and the structured status. Invalid startup configuration exits the process with 2 and writes a fixed diagnostic to stderr; normal stdout contains only MCP traffic.
Configure authCookies to identify your real authentication cookies. Without that evidence, classifier guesses stay in review and do not become confirmed authentication-cookie failures. Defaults and rules are described in the CI policy guide.
cookieId identifiers and show cookieName only when it matches a configured authCookies name. Multiple scoped cookies with the same name have distinct IDs within a response.omittedFindings records truncation; summary counts and status cover every finding. Use the CLI's local report when you need full cookie metadata. IDs are not stable across scans.npm run test:mcp
npm run lint npm run typecheck npm run verify:mcp
verify:mcp installs packed artifacts into an isolated directory and runs the same MCP demo against the installed binary. It packs the installed, locked runtime dependencies and installs offline with an empty npm cache; it does not publish. CI includes the MCP tests in npm test and the packaged-consumer check in npm run release:check.
The official SDK serves both legacy initialization and the 2026-07-28 protocol over stdio. Tests exercise both. Registry metadata is prepared in server.json; see the release checklist for the separate npm and registry approval steps.