For developers

What a client needs to know about the server, and how to call it without an assistant in between.

The protocol as we serve it

Calling it with curl

The server keeps no state between calls, so a tool can be called straight away, without the handshake:

curl https://api.publicwww.com/mcp \
     -H "Authorization: Bearer $KEY" \
     -H "Content-Type: application/json" \
     -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
          "params":{"name":"search","arguments":{"query":"\"angular.min.js\"","rows":3}}}'

The list of tools with their input schemas:

curl https://api.publicwww.com/mcp \
     -H "Authorization: Bearer $KEY" \
     -H "Content-Type: application/json" \
     -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

These calls and an account check, as one script: mcp-curl.sh.

For a script that only needs search results, the REST API is the simpler road: the same search and token, with CSV, NDJSON and the other formats.