Integrate physicalai.tools with your chatbot
20-second setup. Pick your chatbot below.
Quickstart (20 seconds)
Five steps. You only really need the first one.
- Sign up at /login — email only, no password. We send you a magic link.
- Open the dashboard, copy your primary link. It looks like
https://mcp.physicalai.tools/mcp/x7k9q2m3… - Paste the link into your chatbot's MCP / tools config (see the per-chatbot guides below).
- Open the pairing page in Chrome, Edge, or Bluefy (iOS) — click
/pair/{token}, pair your device, leave the tab open. - Chat with your AI — ask it to do things with the device. Round-trip ~200ms.
Claude (Anthropic MCP)
Claude has first-class MCP support. Drop the link in and Claude sees the device as a set of tools.
Steps
- Open claude.ai → Settings → Connectors → Add custom connector.
- Name:
physicalai.tools - URL: paste your primary link (e.g.
https://mcp.physicalai.tools/mcp/your-token) - Save. Open a new chat. Click the Search and tools icon → enable the new connector.
- Ask: "Set my Coyote channel A to 30 for 5 seconds."
Example
// Claude will see these tools automatically: coyote-v3__set_intensity(channel, level) coyote-v3__pulse(channel, level, duration_ms) coyote-v3__wave(channel_a, channel_b, frequency_hz, depth, duration_ms) coyote-v3__stop() coyote-v3__device_status() // And will respond to: "Edge me on channel A for 30 seconds" "What's the battery on my Coyote?" "Stop everything immediately"
Grok (xAI tool calls)
Grok uses the OpenAI tool-calling format. physicalai.tools exposes both /mcp/{token} (Anthropic) and /openai/{token}/schema + /openai/{token}/call.
Quick check — list the tools
curl https://mcp.physicalai.tools/openai/YOUR-TOKEN/schema | jq
Call a tool
curl -X POST https://mcp.physicalai.tools/openai/YOUR-TOKEN/call \
-H "Content-Type: application/json" \
-d '{"name": "coyote-v3__set_intensity", "arguments": {"channel": "A", "level": 30}}'
You can wire this into Grok's custom tools by listing the schema URL and the call URL in your Grok config.
ChatGPT (custom GPTs)
ChatGPT custom GPTs support OpenAI function calling. Build a thin "Actions" wrapper:
- Create a new GPT → Configure → Actions → Create new action.
- Paste an OpenAPI schema that points to
https://api.physicalai.tools/openai/{token}/schemafor tool definitions and/callfor execution. - Save. Test in the GPT playground.
(Forthcoming: a 1-click "Create GPT" button in the dashboard that auto-generates the action schema for you.)
Direct API (Anthropic MCP JSON-RPC 2.0)
For your own agents and bots, talk to the MCP endpoint directly. It's plain JSON-RPC 2.0:
Initialize
curl -X POST https://mcp.physicalai.tools/mcp/YOUR-TOKEN \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}'
List tools
curl -X POST https://mcp.physicalai.tools/mcp/YOUR-TOKEN \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Call a tool
curl -X POST https://mcp.physicalai.tools/mcp/YOUR-TOKEN \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"coyote-v3__set_intensity","arguments":{"channel":"A","level":30}}}'
Tool calls fail with a friendly error if no browser is paired. Open the pairing page first.
Pairing in the browser
Once the AI knows about your device, the actual control happens from a browser tab. This is how it works:
- Open the pairing page:
https://physicalai.tools/pair/{your-token} - The browser shows a Scan for devices button. Click it.
- The browser shows its native BLE picker. Pick your device. Pair.
- Leave the tab open. Now when your AI calls a tool, the browser writes the bytes to the device.
Browser support
- Chrome / Edge / Brave / Opera on desktop and Android — full support.
- iOS Safari — no Web Bluetooth. Use Bluefy (free App Store).
- Firefox — no Web Bluetooth (yet). Use Chrome for now.
Keep the tab open
Service workers can't reliably hold WebSocket connections (yet). Until they can, the tab must stay open while the AI is using the device. We're working on it.
Troubleshooting
"Browser not connected" when the AI tries to call a tool
Open the pairing page in your browser. The tab needs to be open and on the right URL. You'll see the WebSocket connect in the pairing page's log.
"navigator.bluetooth is undefined" in the pairing page
You're on Firefox or iOS Safari. Switch to Chrome, Edge, or Bluefy (iOS).
Tool call times out
The browser is open but the device didn't respond in 30s. Check: device is on, in range, paired, and not already connected to something else.
"This link has already been used" / "Invalid or expired"
Magic link tokens are one-time. Request a new one from the login page.
More questions?
Ask the LLM: /ask. Or file an issue.