API and MCP

One adapter, so the same engine is an HTTP endpoint, an MCP tool your coding agent can call, and a chatbot functioncall — with no extra route written for any of them.

Attribution is part of the contract

Every response carries the provider, the model and the detected source language. A caller that cannot tell which model answered cannot tell a confident translation from a fallback, and this engine does have a fallback: with no model reachable it degrades to a dictionary and passthrough and labels itself as such rather than throwing.

Questions

Does it throw when no model is available?

No. It degrades to an offline heuristic and marks the result as such, so a caller always gets something and always knows what it got.

Is language detection separate?

Yes, and it is fully offline — stopword and trigram scoring, no model and no network.