API and MCP

Everything this site does is one adapter, so the same pipeline is available as an HTTP endpoint, an MCP tool your coding agent can call, and a chatbot functioncall — with no extra route written for any of them.

The refusals are in the pipeline, not the page

A caller reaching this through MCP or the HTTP endpoint gets the same declines a visitor does. That is deliberate: a safety rule written into a page's copy is a rule the next caller does not inherit, and an agent asking about a mushroom is exactly the caller least able to judge the answer.

Reading the answer

A refusal comes back as a success with kind "refused" and a reason, not as an error — reporting it as a failure is what makes a client retry it, and a retry loop against a safety refusal is how the refusal gets engineered around. An image with no text comes back as kind "nothing", which is a real answer about a photograph of a tree.

Questions

Do I need a key?

Not for the free lane. An API key comes with a membership and lifts the caps.

Is it an MCP server?

The adapter is exposed through the Leumas MCP surface, so any MCP client can call identify, read and refusals as tools.