Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Check 21,000+ devices with open firmware or protocols before reverse engineering one.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"opendevicedb": {
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}Run this in your terminal
claude mcp add opendevicedb -- npx -y @opendevicedb/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"opendevicedb": {
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"opendevicedb": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opendevicedb/mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain opendevicedb.org (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 19 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Safe Fetch
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the 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 fetching URLs, safe against SSRF, DNS rebinding, and redirect-to-internal attacks.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.