One bridge. Two protocols. Zero drivers.
The flow in detail
Sign up & get a link
Email + password. We mint a high-entropy random token, give you a URL like https://mcp.physicalai.tools/x7k9q2m3.... The token is your auth — guard it like an API key.
Open the pairing page on a browser with the device
You visit /pair/{your-token} in Chrome, Edge, or Bluefy (iOS). The browser shows a "Connect" button. You click. Native browser dialog. You pair. The browser tab now holds the open WebSocket to our backend.
⚠ The browser tab must stay open while the AI is using the device. Service workers can't hold WebSockets reliably (yet), so we don't pretend otherwise — we just tell you.
Give the link to your chatbot
For Anthropic Claude: paste the URL into the MCP server field. For OpenAI tools / Grok / ChatGPT: there's a slight format dance — we provide a one-line JSON config you paste. For custom GPTs: same.
Now when you ask the AI to "do something with the device", it sees the device as a tool and calls it.
The AI calls a tool → browser executes → device moves
Round-trip time: ~150-400ms typically. The AI gets the result back in its context. If no browser is connected when the AI calls, we return a friendly error: "Open the pairing page first."
What it isn't
Not a cloud-connected smart-home hub. Your device never talks to our servers. The browser is the only thing that ever touches the device, and it only does so when you have the tab open.
Not a model host. We don't run the LLM. You bring your own Grok / Claude / GPT subscription. The model calls the URL, the URL calls your browser, the browser calls the device.
Not an account on every device. The LLM doesn't need a device-specific account. You give it the URL, it gets the tool schema, it calls. That's it.