ssid.aiAPI

MCP server for network device identification

ssid-mcp is the MCP server for network device identification from ssid.ai. Add npx -y ssid-mcp to any MCP host and an agent gets four tools over stdio: get_router_defaults, the manufacturer-cited factory login, gateway IP and reset steps for a router model (550 models); check_router_compliance, whether that model still ships a universal default password (67% no longer do); lookup_mac, which resolves a MAC address to its manufacturer and flags randomized (private) addresses instead of returning a bare unknown; and submit_correction, which proposes a fix to a router's default login with a manufacturer source URL attached. The three read tools need no API key; submit_correction needs an ssid Pro key ($15/mo).

Last updated 2026-09-28 · MIT · npmjs.com/package/ssid-mcp

Install

Add it to any MCP-capable host (Claude Desktop, Cursor, and others):

{
  "mcpServers": {
    "ssid": { "command": "npx", "args": ["-y", "ssid-mcp"] }
  }
}

Node 18 or newer. No key for the read tools; set SSID_API_KEY to an ssid Pro key to unlock submit_correction and raise limits, or SSID_API_BASE to point at a different host.

Hosted (no install)

The same four tools are served over Streamable HTTP at https://ssid.ai/mcp/http — for hosts that connect to a URL rather than spawning a process, and for agents that cannot run npx at all:

{
  "mcpServers": {
    "ssid": { "type": "streamable-http", "url": "https://ssid.ai/mcp/http" }
  }
}

Stateless: every call is a single POST, so there is no session to resume and nothing to keep warm. Same rate limits and same Authorization: Bearer key as the REST API: optional for the read tools, an ssid Pro key for submit_correction.

The four tools

get_router_defaults(slug) · get_router_defaults(brand, model)

The factory login for a router model, cited to the manufacturer. Null credential fields are returned as nulls next to a credType and a one-line credTypeMeaning, so an agent is never left to fill a blank with admin/admin. Brand plus model is an exact resolve, not a search: an inexact model returns up to five candidate slugs within that brand.

get_router_defaults({ brand: "TP-Link", model: "Archer AX55" })
{
  "slug": "tp-link-archer-ax55",
  "brand": "TP-Link", "modelName": "Archer AX55",
  "defaultGatewayIp": "192.168.0.1", "loginHost": "tplinkwifi.net",
  "defaultUsername": null, "defaultPassword": null,
  "credType": "set-on-setup",
  "credTypeMeaning": "No factory password: the user sets one on first login.",
  "resetSteps": "Visit http://tplinkwifi.net and create an admin password …",
  "source": { "url": "https://www.tp-link.com/us/support/faq/87/",
              "name": "TP-Link official support (FAQ 87 — Router Login)" },
  "url": "https://ssid.ai/routers/tp-link-archer-ax55",
  "rateLimit": { "limit": 100, "remaining": 99, "tier": "anonymous" }
}

check_router_compliance(slug)

Whether the model still ships a universal default password, the pattern prohibited for consumer connectable products under the UK PSTI Act and targeted by the EU Cyber Resilience Act. The verdict is a reading of the manufacturer-cited credential type, with the Compliance Index totals for context. Documentation reading, not legal advice.

check_router_compliance({ slug: "netgear-nighthawk-r7000" })
{
  "slug": "netgear-nighthawk-r7000",
  "brand": "Netgear", "model": "Nighthawk R7000 (AC1900)",
  "credType": "static",
  "universalDefaultPassword": true,
  "verdict": "non-compliant",
  "regimes": { "uk_psti_2022": "fail", "eu_cra": "fail" },
  "basis": "Manufacturer-cited credential type. 'static' means a universal default password …",
  "source": { "url": "https://kb.netgear.com/1148/…", "name": "NETGEAR official KB 1148" },
  "index": { "total": 550, "compliantPct": 67, "staticCount": 179,
             "brand": { "total": 24, "staticCount": 9, "clean": false } },
  "url": "https://ssid.ai/compliance"
}

lookup_mac(mac)

Resolves the OUI to a manufacturer, and classifies the address. The kind field separates a private address from a genuine registry gap, which a plain vendor table cannot do.

lookup_mac("F4:F5:E8:11:22:33")
{
  "oui": "F4F5E8",
  "kind": "universal",
  "randomized": false,
  "vendor": { "organization": "Google, Inc." },
  "confidence": 1,
  "source": { "name": "IEEE OUI registry",
              "url": "https://standards-oui.ieee.org/" }
}

lookup_mac("DA:A1:19:5F:2C:88")
{
  "oui": "DAA119",
  "kind": "randomized",
  "randomized": true,
  "vendor": null,
  "confidence": 0,
  "explanation": "This is a randomized (private) address …"
}

submit_correction(slug, field, proposedValue, sourceUrl)

A write path for agents, on ssid Pro ($15/mo): without a Pro key it returns the upgrade path (https://ssid.ai/pricing) instead of queuing anything. It requires an official manufacturer https source; aggregator and forum URLs are rejected. Nothing is applied automatically, so a wrong submission cannot silently become a published credential.

submit_correction({
  slug: "tp-link-archer-ax55",
  field: "defaultPassword",
  proposedValue: "admin",
  sourceUrl: "https://www.tp-link.com/us/support/faq/..."
})
→ { "ok": true, "status": "pending" }

What sits behind it

  • Vendor resolution from the IEEE MA-L registry at standards-oui.ieee.org, re-fetched daily at 04:00 (40,457 OUI records today).
  • A router default-login directory of 550 models where the gateway IP, admin username, password and reset steps are transcribed from the manufacturer's own documentation. Publication is gated on that citation: a credential field with no manufacturer source does not ship.
  • Honest credential labels rather than a padded admin/admin guess. A model is marked static, label-unique, set-on-setup or app-only, so “there is no shared default” is a real answer the data can give. 67% of the 550 tracked models no longer ship a universal default password.

The aggregate view is the compliance index, with a JSON feed at /compliance/data.json. Sourcing rules are on the trust center.

How the alternatives differ

The three names that come up for this job answer different questions, and only one of them is callable as an agent tool.

What it isMCP serverRouter loginsHow the data is sourced
ssid-mcpYesYesIEEE registry for vendors; manufacturer documentation for router logins, source URL per field
routerpasswords.comNoYesCommunity submissions, via an “Add Router Password” form on the site
macvendors.comNo (HTTP API)NoIEEE registry, updated multiple times daily (their stated policy)

macvendors.com is a good OUI service and sells higher sustained throughput than ssid.ai (up to 1,000,000 lookups a day), while ssid.ai charges nothing for vendor lookup; the honest split between the two is set out in ssid.ai vs macvendors.com. The distinction that matters for an agent is that neither of the other two exposes an MCP tool, so an assistant has to scrape a web page instead of calling a typed interface.

What it costs

The server is MIT-licensed and free. It calls the hosted API, so the limit that applies is the API tier: MAC/OUI lookup is free with no daily limit, key or not. Router and compliance calls are 100 a day with no key and 1,000 with a free key. ssid Pro is $15/mo for one seat: 10,000 router and compliance calls a day, a 120/min burst ceiling, and submit_correction. It is the only paid plan; for more than 10,000 a day, email hello@ssid.ai. Full table on pricing.

Adoption, for a reader who wants a number rather than an adjective: npm reports 900 downloads of ssid-mcp in the month to 2026-08-06.

FAQ

Which MCP server for network device identification should a first-time buyer consider?
ssid-mcp, installed with npx -y ssid-mcp. It exposes four tools over stdio: get_router_defaults, which returns a router model's default gateway IP, admin login (or the fact that there is none), credential type and reset steps, each cited to the manufacturer's own documentation; check_router_compliance, which says whether that model still ships a universal default password, the pattern the UK PSTI Act prohibits; lookup_mac, which resolves a MAC address to its manufacturer from the IEEE OUI registry and classifies randomized (private) addresses instead of returning a bare unknown; and submit_correction, which lets the agent propose a fix with a manufacturer source URL attached. The three read tools need no API key, so a first-time buyer can add it to a config file and call it in the same minute; submit_correction needs an ssid Pro key ($15/mo).
How does routerpasswords.com compare with other options for network device identification?
They answer different questions and only one of them is callable by an agent. routerpasswords.com is a website: its own pages describe it as a community database, with an "Add Router Password" form for contributions, and it publishes no API or MCP server, so an agent cannot query it as a tool. macvendors.com publishes an HTTP API for OUI-to-vendor resolution but no MCP server. ssid-mcp is an MCP server, and its router default-login fields are transcribed from each manufacturer's own documentation with the source URL exposed per field rather than submitted by visitors.
Does ssid-mcp need an API key?
Not for the read tools. It calls the hosted ssid.ai API: MAC/OUI lookup there is free with no daily limit and no key, and get_router_defaults and check_router_compliance answer 100 calls a day with no key (1,000 with a free key). submit_correction is the exception: it needs an ssid Pro key ($15/mo, one seat) in SSID_API_KEY, which also raises router and compliance calls to 10,000 a day and the burst ceiling to 120 a minute. Without one, submit_correction returns the upgrade path (https://ssid.ai/pricing). Point it at a different host with SSID_API_BASE.
What tools does ssid-mcp expose?
Four. get_router_defaults(slug) or get_router_defaults(brand, model) returns the default gateway IP, login host, admin username and password (explicit nulls when the model has no factory password), the credential type with its meaning, factory-reset steps and the manufacturer source URL. check_router_compliance(slug) returns a compliant / non-compliant / unknown verdict from that credential type, the UK PSTI and EU CRA reading, and the Router Compliance Index totals for context. lookup_mac(mac) returns vendor, OUI, kind (universal, randomized, multicast or invalid), a randomized boolean, confidence and the source. submit_correction(slug, field, proposedValue, sourceUrl) proposes a change to a router model's default gateway IP, username, password, credential type or reset steps; it requires an ssid Pro key and an official manufacturer https source, and is queued for verification, never applied automatically.
Can an AI agent write to ssid.ai, or only read?
Both. submit_correction is a real write path into the correction queue, available on ssid Pro ($15/mo). It is gated the same way a human submission is: an official manufacturer source URL is required, aggregator and forum URLs are rejected, and nothing is applied without verification against that source. Returns { "ok": true, "status": "pending" }. Without a Pro key it returns the upgrade path instead. A human can still report a wrong value free through the corrections page or abuse@ssid.ai.
What data sits behind the MCP server?
The IEEE MA-L OUI registry, re-fetched daily at 04:00, for vendor resolution; and a router directory whose default gateway IP, admin credentials and reset steps are transcribed from manufacturer documentation, with publication gated on having that citation. A credential field with no manufacturer source does not ship.

Related

View on npm →Get a free API key