Skip to main content
Glama
README.md
# hardwaremcp

[![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.saadvz%2Fhardwaremcp-e5481b)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.saadvz/hardwaremcp)
[![Remote endpoint](https://img.shields.io/website?url=https%3A%2F%2Fhardwaremcp.khanex.ai%2F&label=endpoint&up_message=live)](https://hardwaremcp.khanex.ai/mcp/)
[![Transport](https://img.shields.io/badge/transport-streamable_HTTP-14140f)](https://hardwaremcp.khanex.ai/mcp/)
[![Auth](https://img.shields.io/badge/auth-none-14140f)](https://hardwaremcp.khanex.ai/mcp/)
[![Catalog](https://img.shields.io/badge/catalog-59_servers-e5481b)](https://hardwaremcp.khanex.ai)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)


**Remote endpoint:** `https://hardwaremcp.khanex.ai/mcp`. Paste it into any MCP client: no install, no API key.

Ask your agent *"which MCP server should I use for my Bambu P1S?"* and it gets the right server, install commands and client config from the [HardwareMCP catalog](https://hardwaremcp.khanex.ai).

An MCP server that helps your AI agent find **MCP servers for physical hardware**: ESP32, Arduino, Raspberry Pi, RP2040, 3D printers (Bambu, Prusa, Klipper, OctoPrint), Home Assistant, cameras (Frigate, UniFi Protect, ONVIF), Zigbee, serial/BLE and lab gear.

It's a thin layer over the [HardwareMCP catalog](https://hardwaremcp.khanex.ai): 59 servers with install commands and client configs copied from their READMEs.

## Tools

| Tool | What it does |
|---|---|
| `search_servers(query, device?, category?)` | Search the catalog. Results sorted by GitHub stars. |
| `get_server(slug)` | Full details: what it does, requirements, install commands, client config snippet. |
| `list_devices()` | Every device family with server counts. |
| `recommend_for_device(device, goal?)` | Top picks for a device or model (e.g. "Bambu P1S", "Voron", "ESP32-S3"), optionally ranked by a goal. |

## Use the hosted server (no install)

Endpoint: `https://hardwaremcp.khanex.ai/mcp` (Streamable HTTP, stateless, no auth, CORS open, JSON responses). `POST` handles JSON-RPC, `OPTIONS` returns 204 with CORS headers, and `GET`/`DELETE` return 405 because there are no sessions or server-initiated streams.

**Claude Code**
```bash
claude mcp add --transport http hardwaremcp https://hardwaremcp.khanex.ai/mcp
```

**Cursor** (`~/.cursor/mcp.json`)
```json
{ "mcpServers": { "hardwaremcp": { "url": "https://hardwaremcp.khanex.ai/mcp" } } }
```

**Claude Desktop** (`claude_desktop_config.json`)
```json
{ "mcpServers": { "hardwaremcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://hardwaremcp.khanex.ai/mcp"] } } }
```

**Grok Bot** (desktop app): there's no settings field for MCP URLs. In a Bot chat, send:
```
Add a custom MCP server named hardwaremcp at https://hardwaremcp.khanex.ai/mcp
```
Confirm when asked (no sign-in needed), then type `@` and pick hardwaremcp. ([Cursor forum answer](https://forum.cursor.com/t/grokbot-custom-connectors/169965))

**Muse** (Meta): ask Muse in chat to create a Custom Connector ([Meta Help Center](https://www.meta.com/help/artificial-intelligence/1687253048996149/)):
```
Create a Custom Connector for a new remote MCP server, then connect to it:
- Name: hardwaremcp
- Transport: remote streamable HTTP
- URL: https://hardwaremcp.khanex.ai/mcp
- Auth: none (public, no API key or OAuth)
Then list its tools and call list_devices to confirm it works.
```

## Run locally (stdio)

```bash
npx -y hardwaremcp   # once published to npm
```
```json
{ "mcpServers": { "hardwaremcp": { "command": "npx", "args": ["-y", "hardwaremcp"] } } }
```

## Develop

```bash
npm install
npm run gen-data      # regenerate src/data.ts from ../hardwaremcp/data/servers.json
npm run build
npm test              # scripted client over stdio
node test-client.mjs https://hardwaremcp.khanex.ai/mcp   # against the live endpoint
```

## Caveat

Install commands come from each project's README and haven't been bench-tested by HardwareMCP. Review code before giving an agent access to your hardware.

## License

MIT

## Listed in

- [Official MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.saadvz/hardwaremcp`
- [Glama](https://glama.ai/mcp/servers), via `glama.json`

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct action: list_devices lists device families, search_servers searches by keyword, recommend_for_device recommends by device+goal, and get_server fetches details by slug. The only mild overlap is that both search_servers and recommend_for_device return server lists, but the descriptions clearly differentiate their inputs and purposes.

Naming Consistency5/5

All tools use snake_case and follow a verb_noun pattern (list_devices, search_servers, get_server), with recommend_for_device being the only slight variation but still consistent with the same convention.

Tool Count5/5

Four tools is well-scoped for a hardware MCP catalog: one for device families, one for recommendations, one for search, and one for details. Each tool has a clear, non-redundant role.

Completeness4/5

The surface covers discovery by device, goal-based recommendations, keyword search, and detailed server info. The only minor gap is a direct way to browse or list all servers without a query or device, but search_servers likely accommodates that.

Maintenance

ActivityMaintained
ResponsivenessNo issues