The org-wide glance
Which concepts are held, how completely each is accounted for, how seen, and which threads earlier sessions left riding.
{}API reference
Four calls onto your org’s hue index — look, study, work and return. Every call is scoped to your seat and billed in units.
One MCP endpoint, not a REST surface — the tool is named in the body. Every call carries your seat’s bearer token. There is no separate org key: the token is how the index knows whose memory it is reading.
Which concepts are held, how completely each is accounted for, how seen, and which threads earlier sessions left riding.
{}Its depth, its history, every heading, and everyone who has touched it.
{
"hue": "renewal_policy"
}What the org wants, how it means to get there, and what has already fired and held.
{
"hue": "renewal_policy"
}Lands under all six headings at once — dark, substrate, light, intent, planning, answer.
{
"read_stamp": "<from cc_look>",
"observation": {
"observer": "your-session",
"hue": "renewal_policy",
"stated": ["...", "...", "..."],
"meant": ["...", "...", "..."],
"bond": 0.62
}
}An ask meets a row by its words, so a concept your org holds under another wording reads exactly like one it has never met. The answer says so, and it hands you the room instead of a blank.
{
"prompt": "carry-over on exit"
}The ask is its own call, not a fifth step of the loop. Everything below is what it hands back.
Every category the room actually holds, each with its row count, its split by kind, and how many of its rows name what settles them. Read from the room as you ask, never typed.
{
"map": [{
"category": "FAMILY LEAVE",
"rows": 5, "sourced": 4
}]
}Copy a position back verbatim and the rows there answer because you stood there, not because a word matched. A name the room does not have is refused rather than quietly swapped for a near one.
{
"prompt": "carry-over on exit",
"at": { "category": "FAMILY LEAVE" }
}A row can name the thing that settles it, where to read it, and the date someone last read the row against it. Absent means unsourced, and the counts say how many of the rows you reached name one.
{
"truth": {
"authority": "Employment Rights Act 1996 s.80A",
"checked": "2026-09-03"
}
}A refusal is honest, typed and free. A concept the index does not hold is not an error — it is recorded as hunger and the call succeeds.
The request carried no bearer org-token. The protocol is readable without one at /mcp/instructions.
The token was minted, then revoked or replaced. A new one comes from the OAuth consent exchange.
The org’s index units are spent. The refusal names the arithmetic that refused it.
Every other refusal, typed and named: NO_SUCH_ASSET, EMPTY_ASSET, SELF_USE, BAD_SHAPE.