
OpenDeviceDB
org.opendevicedbPublished by opendevicedb.orgv0.3.0Updated Nov 1, 2026
Check 21,000+ devices with open firmware or protocols before reverse engineering one.
Overview
Lets an assistant check OpenDeviceDB's 21,000+ device records for existing open firmware or protocols before reverse engineering, and record findings…
- What you can do
- Look up a single device by id, vendor/model, FCC id, USB id, BLE name or Zigbee model, with status, live claims and a recommendation
- Search and rank devices by name, alias or identifier, filtered by category and status, showing the easiest install difficulty
- Claim a device for a period (up to 90 days) with who, contact and scope, creating a stub record if needed
- Publish findings into a record, including interfaces, projects, install routes and verification, and release a claim
- Request a device or list imported data sources with license, snapshot date and record counts
- When to use it
- Useful when a user wants to reverse engineer, flash or add open firmware to a device and you want to know first whether it has already been done or someone is working on it. Also for recording your own results back into the shared database.
- Requirements
- Local stdio process from the npm package, needing Node 22.18 or newer and a checkout of the OpenDeviceDB repository with dependencies installed. Set ODB_REPO to a local checkout for read and write access, or ODB_API_URL for read-only access to the site's static API; with neither, it uses the checkout it lives in.
Installation
In SourceWeft
- Open OpenDeviceDB in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@opendevicedb/mcp
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.
Tools
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.
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/<vendor>/<model>.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).
Backends (environment)
ODB_REPO wins when both are set.
Register it
Replace /path/to/opendevicedb with your checkout.
Claude Code
(--scope user to have it in every project.)
Codex (~/.codex/config.toml, or codex mcp add opendevicedb -- node …/server.ts)
Cursor (.cursor/mcp.json in a project, or ~/.cursor/mcp.json)
Read-only use without a checkout of your own data: set ODB_API_URL to the site's base URL
instead of ODB_REPO.
Agent workflow
- lookup —
lookup_devicewith whatever is on the label (FCC id, USB vid:pid fromlsusb, 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_urlin the lookup result, orrequest_device) so the interest counts. - claim — nothing known (or only part)?
claim_devicewith who/contact/scope before starting, then commit the file and open the PR so the claim is visible to others. - work — reverse engineer. Never touch Remote ID, geofencing or other safety functions; never copy firmware images or vendor code (POLICY.md).
- publish —
publish_findingswith summary, status, interfaces (link your protocol doc asspec), projects (your code, hosted elsewhere), install routes, verification andprovenance.ai_assisted. Passrelease_claim_ofto end your claim. - PR — run the git /
gh pr createcommand 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).
CLI
The same functions from a shell (same env vars), printing the tool result as JSON:
Development
Code: AGPL-3.0-or-later (see the repository LICENSE). SKILL.md alone is CC0-1.0 so other tools can embed it.
Source: packages/mcp/README.md at commit 27225bf
Tools
0Version history
2- v0.3.0LatestOct 18, 2026
- v0.2.2Oct 17, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts