One server, every endpoint, zero tool code
Magic's MCP server has no tool registry. When a client asks what tools exist, the server enumerates the endpoints that exist, right then, and describes them from the metadata already in the files. Calling a tool runs the endpoint — not a proxy in front of it — through the same invocation path an HTTP request takes, carrying the caller's own identity.
Endpoints are tools
An endpoint's file comment becomes the tool description; the comment above each argument becomes that argument's description; Hyperlambda types become JSON Schema types. The CRUD generator's output, imported OpenAPI operations, and hand-written endpoints all qualify.
Roles are the filter
The catalogue is built per caller from the roles on the authenticated ticket. Two agents connecting with different credentials get two different tool lists — and hiding is not the mechanism, because the identical role check runs again when the tool is invoked.
Generation is the catalogue
Ask for a tool that does not exist and the Hyperlambda Generator writes it from your sentence, verifies every instruction against the live slot registry, and saves it. Saving is the last step: no build, no restart, no registration.