Call it from your agent.
One tool, unsaid_places(loves, city). It crosses out every place the AIs in its data name for that city (each answer is stamped with its provider and model), and returns up to seven that Qloo ranks for those loves, each with its Qloo ID, “#k for you · #j for anyone”, the love behind it and how many AI answers named it.
curl
loves is a JSON array of up to three [text, type] pairs, the form above. Give a type for a dish ("tag") and for a place ("place"): untyped, "rib tips" can resolve to a restaurant. Types: artist, movie, tv_show, book, podcast, videogame, brand, place, tag. Plain text, {"text": "...", "type": "movie"} and chips from /api/resolve also work. The reply is NDJSON; the last line is {"type":"done","result":{...}}. GET /api/health never needs the token.
Token
Until 30 Oct 23:45 ET the API needs a token. It is in the Devpost testing instructions. After that the token is removed and the API is open, rate-limited to 3 fresh runs per hour per address. Repeat queries are cached and free.
Send it as Authorization: Bearer …, as X-Unsaid-Token: …, or as &token=…. In a browser, add ?token=… to this site’s address and the page passes it on.
MCP
claude mcp add unsaid -e UNSAID_MODE=fake -- python3 -I /path/to/unsaid/agent/unsaid_mcp.py
{
"mcpServers": {
"unsaid": {
"command": "python3",
"args": ["-I", "/path/to/unsaid/agent/unsaid_mcp.py"],
"env": { "UNSAID_MODE": "fake" }
}
}
}
The MCP server runs locally over stdio, so it needs no token. Two tools: unsaid_places(loves, city) returns the places no AI names, ranked by Qloo. qloo_places(loves, city) returns Qloo’s top 50 for the same loves with nothing crossed out; it is the meter’s “with” arm. A remote /mcp endpoint, if it ships, sits behind the same token.