Takes no arguments at all. It answers about the request you just made: the user-agent you sent, the address you came from, whether the crawler index recognises you, whether any operator publishes a prefix containing your address, the class this host's own instrument books you as, and whether we have seen you here before and what you fetched. Every fact comes from your own request headers or from a file this host already publishes; nothing is fetched and nothing about you is invented.
curl -s 'https://www.pathwren.workers.dev/tools/whoami?s=client-dossiers'
Your own dossier: what this host can see about the client making the request, with no argument given.
curl -s 'https://www.pathwren.workers.dev/tools/whoami?spec=1&s=client-dossiers'
The specification of this endpoint instead of the answer: what it returns, which MCP tool answers it, and the caveats.
Run it in a browser —
it answers JSON with access-control-allow-origin: *, so
fetch() works from any page with no proxy.
Allow header and points at the MCP endpoint.max-age=0, a strong ETag,
and a 304 when you send it back.GET /tools/whoami is the whole call. Add ?spec=1 if you wanted the specification instead.None. This endpoint takes no arguments at all — that is the point of it. Every other endpoint here needs something you have to supply; this one needs nothing, so it is the one you can call before you know anything about this host.
This endpoint holds no copy of the logic: it calls whoami on
the ai-crawler-index MCP server in-process, through that server's own
JSON-RPC envelope. One implementation, two doors — an answer that changes here changed there.
curl -s https://www.pathwren.workers.dev/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"whoami","arguments":{}}}'