Quick Start
Public MCP is an MCP server that requires no authentication: give it a Caoliao QR code and the agent learns what is behind it — the equipment, its state, its history, and what can be done with it right now.
No account, no application process. Set the URL and it works.
Service details
| Item | Value |
|---|---|
| Endpoint | https://mcp.objqr.com/mcp |
| Transport | Streamable HTTP |
| Server name | im.cli/qrcode |
| Tools | 5, all read-only |
| Authentication | None (public data by default; for authorized reads see Data Scope and Authorization) |
Client configuration
Most MCP clients use the same configuration shape. For Claude Desktop and Cursor, add:
{
"mcpServers": {
"caoliao": {
"type": "http",
"url": "https://mcp.objqr.com/mcp"
}
}
}Note: Claude Desktop's configuration file opens from Settings → Developer → Edit Config (
claude_desktop_config.json); in Cursor, add it under Settings → MCP or edit.cursor/mcp.jsonin your project. Field names vary between other clients (some usetransport, otherstype) — follow your client's documentation. The URL is the same either way.
Restart the client afterwards; five tools prefixed with entity_ will appear in the tool list.
Verify with curl
You can verify without installing a client. The request must accept both JSON and SSE.
Handshake:
curl -X POST https://mcp.objqr.com/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "demo", "version": "0" }
}
}'Response:
event: message
data: {"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{},"logging":{},"completions":{}},"serverInfo":{"name":"im.cli/qrcode","version":"0.1.0"}},"jsonrpc":"2.0","id":1}Note: the actual output also has an
id:line (the SSE event id) betweenevent:anddata:— you can ignore it.
Query a QR code:
curl -X POST https://mcp.objqr.com/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "entity_get",
"arguments": { "code": "https://qr71.cn/okDISU/qssTnoy" }
}
}'The response carries the equipment name, properties, current state, record count and available actions for that code. Note that the live service returns field values in Chinese; the examples in Tools are translated for illustration. Full field reference there.
What to ask first
Start with entity_get. It returns the whole entity in one call, including previews of actions and records. Then decide whether to go deeper:
- Need the full history →
entity_records_list - Need to know what can be done now →
entity_actions_list - Need the fields of a specific action →
entity_action_get
Next
- Tools — parameters and responses for all five tools
- Data Scope and Authorization — what you read by default, and what a credential adds