OpenDeviceDB

org.opendevicedbPublished by opendevicedb.orgv0.3.0Updated Nov 1, 2026

Check 21,000+ devices with open firmware or protocols before reverse engineering one.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated 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.
Before you install
Writes go to YAML files in the local checkout and the server never runs git, so you must review and commit or open the pull request yourself. Claims and published findings become public records containing the contact and scope you supply. With ODB_API_URL only, claim and publish fail. The README forbids touching safety functions and copying firmware or vendor code.

Installation

In SourceWeft

  1. Open OpenDeviceDB in the dashboard and add it to a workspace.
  2. 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.

tooluse 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/<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)

variableeffect
ODB_REPO=/path/to/opendevicedblocal checkout: reads curated + imported records, writes allowed
ODB_API_URL=https://…read-only: the site's static API (/api/index.json, /api/devices/<id>.json), cached 10 min; claim/publish return an error asking for ODB_REPO
neitherthe checkout this package lives in (same as ODB_REPO pointing at it)

ODB_REPO wins when both are set.

Register it

Replace /path/to/opendevicedb with your checkout.

Claude Code

sh
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)

toml
[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)

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.

Agent workflow

  1. lookup — 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.
  2. claim — nothing known (or only part)? claim_device with who/contact/scope before starting, then commit the file and open the PR so the claim is visible to others.
  3. work — reverse engineer. Never touch Remote ID, geofencing or other safety functions; never copy firmware images or vendor code (POLICY.md).
  4. publish — 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.
  5. PR — run the git / 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).

CLI

The same functions from a shell (same env vars), printing the tool result as JSON:

sh
node src/cli.ts lookup --vendor DJI --model "Neo 2"node src/cli.ts lookup --usb 2ca3:001fnode src/cli.ts search tello --category dronenode src/cli.ts claim --vendor Acme --model "X1" --category toy --who alice --contact @alice --scope "BLE control" --days 30node src/cli.ts publish acme/x1 --patch '{"status":"partial-protocol","summary":"…"}'   # or --patch-file findings.jsonnode src/cli.ts sources

Development

sh
npm test -w @opendevicedb/mcp   # node:test; uses temporary fake repositories, plus a stdio end-to-end testnpm 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.

Source: packages/mcp/README.md at commit 27225bf

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.3.0LatestOct 18, 2026
  2. 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