MCP tools

Every PhysID primitive is exposed as an MCP tool. A humanoid's onboard agent can decode the credentials of another humanoid it encounters. A fleet operator can register a hundred delivery bots in a single conversation. Claude, GPT, and any MCP-compatible agent can call these tools natively — no SDK, no custom integration.

This page lists the tools the PhysID MCP server exposes and shows you how to connect a client to inspect them.

Endpoint

https://mcp.physid.ai/mcp

Transport is Streamable HTTP (JSON-RPC 2.0 envelope) per the MCP 2025-06-18 spec.

Connect from a client

# Claude Desktop / Cursor (HTTP transport)
{
  "mcpServers": {
    "physid": {
      "url": "https://mcp.physid.ai/mcp"
    }
  }
}

Tools exposed

  • physid.encode — provision a physical AI and bind credentials
  • physid.decode — verify a tap or BLE handshake
  • physid.registry.get — read the registry record for a unit
  • physid.registry.transfer — transfer ownership of a unit on Concordium
  • physid.registry.revoke — revoke a unit and rotate its tag credentials
  • physid.registry.link_fleet — bulk-register a fleet under a single operator
  • physid.handshake.verify — verify an NFC/BLE challenge-response
  • physid.credentials.issue — issue a credential to an existing unit
  • physid.credentials.list — list credentials currently bound to a unit

Sandbox vs production

In v1.2, the server responds to tools/list without authentication. tools/call requires a bearer token (PHYSID_API_KEY), and the response is a deterministic stub in the shape of the production payload, marked "mode": "sandbox" so it cannot be mistaken for real data. Sandbox keys are issued through the access flow at physid.ai/access. Real tool handlers — that hit the API, Concordium, and the vault — land in v2 alongside automated production API key issuance.

Smoke-test

Run this from any terminal — no key required. It returns the list of tools the server exposes in JSON-RPC format.

curl -sS -X POST https://mcp.physid.ai/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Calling a tool (tools/call) requires a sandbox key. Request one at physid.ai/access.