Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Full macOS control — drive a Mac like a human: shell, AppleScript, files, and human-like GUI.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
MACCTL_SAFE_MODE, MACCTL_MODE, MACCTL_CONFIRM, MACCTL_PATH_ALLOWLIST, MACCTL_PROTECTED_PATHSต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "ใส่ค่าของคุณ",
"MACCTL_MODE": "ใส่ค่าของคุณ",
"MACCTL_CONFIRM": "ใส่ค่าของคุณ",
"MACCTL_PATH_ALLOWLIST": "ใส่ค่าของคุณ",
"MACCTL_PROTECTED_PATHS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add mac-control --env MACCTL_SAFE_MODE='ใส่ค่าของคุณ' --env MACCTL_MODE='ใส่ค่าของคุณ' --env MACCTL_CONFIRM='ใส่ค่าของคุณ' --env MACCTL_PATH_ALLOWLIST='ใส่ค่าของคุณ' --env MACCTL_PROTECTED_PATHS='ใส่ค่าของคุณ' -- npx -y @dockndevai/mcp-mac-controlเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mac-control": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "ใส่ค่าของคุณ",
"MACCTL_MODE": "ใส่ค่าของคุณ",
"MACCTL_CONFIRM": "ใส่ค่าของคุณ",
"MACCTL_PATH_ALLOWLIST": "ใส่ค่าของคุณ",
"MACCTL_PROTECTED_PATHS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mac-control": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-mac-control"
],
"env": {
"MACCTL_SAFE_MODE": "ใส่ค่าของคุณ",
"MACCTL_MODE": "ใส่ค่าของคุณ",
"MACCTL_CONFIRM": "ใส่ค่าของคุณ",
"MACCTL_PATH_ALLOWLIST": "ใส่ค่าของคุณ",
"MACCTL_PROTECTED_PATHS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
MACCTL_SAFE_MODE envMACCTL_MODE envMACCTL_CONFIRM envMACCTL_PATH_ALLOWLIST envMACCTL_PROTECTED_PATHS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub dockndevai ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.1) เข้า registry 41 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Zoo MCP
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.
An MCP server that provides access to the Zoo API for various CAD operations and tools.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A Model Context Protocol server that gives an AI agent full control of a Mac — like a person sitting at it. Shell, AppleScript, files, processes, and human-like GUI control: move, click, double/right-click, drag, scroll, type, and press key combos — with a screenshot + window/screen-size perception loop.
⚠️ This server is full-control by default. It starts in
adminmode with command execution, deletes, and GUI input all enabled. That is powerful and dangerous: anything the agent reads (a web page, an email, a file) could contain a prompt injection that then runs arbitrary code on your Mac. Only connect it to an agent and content you trust. Set `MACCTL_SAFE_MODE=true` to flip the whole thing to safe-by-default. If you want safe-by-default as the baseline, use the sibling@dockndevai/mcp-macosinstead.
Part of the dockndevai MCP server suite.
Perceive — screenshot, get_screen_size, list_windows, get_frontmost_app, list_apps, system_info, list_directory, read_file, list_processes, get_clipboard
Operate the desktop like a human — move_mouse, click (left/right/double), drag, scroll, type_text, key_press (with ⌘/⌥/⌃/⇧), activate_app, quit_app, open, set_clipboard, notify, write_file
Full power — run_command (any program, no shell unless you ask for one), run_applescript (AppleScript/JXA — drive any scriptable app), delete_path (→ Trash), kill_process
The classic loop: screenshot → decide → click/type/drag/scroll → screenshot again.
npx -y @dockndevai/mcp-mac-control
macOS only. You'll need to grant the host app (Terminal, your IDE, Claude Desktop, …) macOS permissions the first time each capability is used:
screenshotclick, type_text, drag, scroll, key_press) and list_windowsbrew install cliclickclaude mcp add mac-control -- npx -y @dockndevai/mcp-mac-control
That's it — it's full-control by default. To scope it down, add env flags (see below). See docs/CLIENTS.md for Claude Desktop / Cursor / Codex / VS Code / Windsurf, and .env.example for every variable.
Full control needs no configuration. Everything below is about restricting it:
| Variable | Default | Effect |
|---|---|---|
MACCTL_SAFE_MODE | false | true → read-only, every power gated, confirmations on (safe-by-default) |
MACCTL_MODE | admin | read-only / read-write / admin — caps which tools are registered |
MACCTL_ALLOW_EXEC | true | shell / AppleScript / kill |
MACCTL_ALLOW_DELETE | true | delete to Trash |
MACCTL_ALLOW_INPUT | true | GUI input (mouse/keyboard) |
MACCTL_CONFIRM | false | true → destructive ops pause for human approval via MCP elicitation |
MACCTL_PATH_ALLOWLIST | (empty = anywhere) | confine file ops to these roots |
MACCTL_PROTECTED_PATHS | (empty) | roots readable but never modified/deleted |
MACCTL_COMMAND_ALLOWLIST | (empty = any) | restrict run_command to these programs |
MACCTL_DRY_RUN | false | validate + log writes without executing |
MACCTL_AUDIT_LOG | true | JSON audit line per guarded op, to stderr |
The policy engine (src/security.ts) is the same graduated model as the rest of the suite — this server just ships it wide open by default. See SECURITY.md.
For an extra layer on top of the static rules, this server can consult a local laya-guard daemon before running a high-risk tool (run_command, run_applescript, delete_path). The guard classifies the actual command — deterministic patterns plus a local decision model — as allow / confirm / block. It runs *after* the deterministic policy and can only tighten (add a confirm or block), never grant.
| Variable | Default | Effect |
|---|---|---|
MACCTL_GUARD_MODE | off | monitor (log what it would do) / enforce (block or require confirm) |
MACCTL_GUARD_URL | http://127.0.0.1:8799 | the local laya-guard daemon |
MACCTL_GUARD_TIMEOUT_MS | 2000 | per-check timeout |
MACCTL_GUARD_FAIL_CLOSED | confirm | when the daemon is unreachable in enforce mode: confirm or allow |
Run the daemon with pipx install laya-guard && laya-guard. Start in monitor to see what it catches, then switch to enforce.
npm install
npm run build echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js # list tools npm test
MIT