Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Check 21,000+ devices with open firmware or protocols before reverse engineering one.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"opendevicedb": {
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add opendevicedb -- npx -y @opendevicedb/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"opendevicedb": {
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"opendevicedb": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน opendevicedb.org แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.0) เข้า registry 19 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, dotnet-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.
MCP server for .NET symbols, XAML, source generators, and restricted workspace edit
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server that lets AI agents (Claude Code, Codex, Cursor, REA…) ask OpenDeviceDB before reverse engineering a device — "has this been done already, is someone on it?" — and record their work after. Stdio transport, official @modelcontextprotocol/sdk.
Requires Node ≥ 22.18 (runs the .ts sources directly, no build step) and a checkout of this repository with npm install done at its root.
Component discovery and integration also expose search_components, get_component, inspect_component, validate_composition, resolve_composition, get_integration_guide and prepare_app_export. These tools are read-only and never run contributor code or access hardware. See the pilot contracts and integration guide. Desktop export currently reports preparation blockers; it does not return an installable application.
| tool | use it to | |
|---|---|---|
lookup_device(id?, vendor?, model?, fcc_id?, usb?, ble_name?, zigbee_model?) | check one device: full record, effective status, live claims and a one-line recommendation; says explicitly when nothing is known | |
search_devices(query, category?, status?, limit?) | explore: ranked matches over names, aliases and identifiers (with the easiest install difficulty when there is one) | |
| `claim_device(id? \ | vendor+model, category?, who, contact, scope, days=30)` | announce you are working on it (max 90 days); creates a stub record if needed |
publish_findings(id, patch, allow_downgrade?, release_claim_of?) | merge your results into the record (validated, status only moves forward, policy-screened) | |
request_device(vendor, model, fcc_id?, usb?, ble_name?, zigbee_model?, goal?) | your user wants the device but will not reverse engineer it: the existing request to add a 👍 to, or a pre-filled link to a new public GitHub issue they submit themselves (read-only, never posts) | |
list_sources() | imported databases with license, snapshot date and record count, plus the curated count |
Install routes. A record may carry install: ways to put its open firmware or software on the device (method such as web-serial, ota-exploit, usb-bootloader, pairing; the project's official guide and installer; difficulty; tools; opens_device, mains_powered, brick_risk, reversible/revert, firmware_constraints). lookup_device returns them in record.install and its recommendation tells the agent to walk the user through the easiest one with the official guide (never step by step when a mains-powered device must be opened); search_devices gives the easiest difficulty as install; publish_findings accepts routes in patch.install, merged by method + guide. Nothing is flashed or hosted here.
Writes go to data/devices/ / .yaml in the local checkout. The server never runs git: each write result names the changed file and gives the next step (git checkout -b … && git add … && git commit … && gh pr create --fill).
| variable | effect |
|---|---|
ODB_REPO=/path/to/opendevicedb | local checkout: reads curated + imported records, writes allowed |
ODB_API_URL=https://… | read-only: the site's static API (/api/index.json, /api/devices/ .json), cached 10 min; claim/publish return an error asking for ODB_REPO |
| neither | the checkout this package lives in (same as ODB_REPO pointing at it) |
ODB_REPO wins when both are set.
Replace /path/to/opendevicedb with your checkout.
Claude Code
claude mcp add opendevicedb -e ODB_REPO=/path/to/opendevicedb -- node /path/to/opendevicedb/packages/mcp/src/server.ts
(--scope user to have it in every project.)
Codex (~/.codex/config.toml, or codex mcp add opendevicedb -- node …/server.ts)
[mcp_servers.opendevicedb]
command = "node" args = ["/path/to/opendevicedb/packages/mcp/src/server.ts"] env = { ODB_REPO = "/path/to/opendevicedb" }
Cursor (.cursor/mcp.json in a project, or ~/.cursor/mcp.json)
{
"mcpServers": { "opendevicedb": { "command": "node", "args": ["/path/to/opendevicedb/packages/mcp/src/server.ts"], "env": { "ODB_REPO": "/path/to/opendevicedb" } } } }
Read-only use without a checkout of your own data: set ODB_API_URL to the site's base URL instead of ODB_REPO.
lookup_device with whatever is on the label (FCC id, USB vid:pid from lsusb, BLE name) or vendor + model. Follow the recommendation: if open firmware or an SDK exists, use it; if someone holds a live claim, contact them. Nothing known and your user only wants the device to exist? Give them the request link (request / request_url in the lookup result, or request_device) so the interest counts.claim_device with who/contact/scope before starting, then commit the file and open the PR so the claim is visible to others.publish_findings with summary, status, interfaces (link your protocol doc as spec), projects (your code, hosted elsewhere), install routes, verification and provenance.ai_assisted. Pass release_claim_of to end your claim.gh pr create command from the result. Maintainers review.SKILL.md is the same workflow as an agent skill, ready to drop into a skills directory (or embed in another tool).
The same functions from a shell (same env vars), printing the tool result as JSON:
node src/cli.ts lookup --vendor DJI --model "Neo 2"
node src/cli.ts lookup --usb 2ca3:001f node src/cli.ts search tello --category drone node src/cli.ts claim --vendor Acme --model "X1" --category toy --who alice --contact @alice --scope "BLE control" --days 30 node src/cli.ts publish acme/x1 --patch '{"status":"partial-protocol","summary":"…"}' # or --patch-file findings.json node src/cli.ts sources
npm test -w @opendevicedb/mcp # node:test; uses temporary fake repositories, plus a stdio end-to-end test
npm run mcp # from the repo root: start the server on stdio
Code: AGPL-3.0-or-later (see the repository LICENSE). SKILL.md alone is CC0-1.0 so other tools can embed it.