API and integration design
I publish the API contract first, gate it with keys and scopes, then build integrations against it.
Try it
Type a request in plain English. The demo maps it onto one operation of the published api.onluca.ai/v1 catalog and shows the method, path, key scope and body, or rejects it with a reason. No call reaches the Luca API.
Public demo on Cloudflare Workers AI. Inputs are screened by Llama Guard 3 before any other model runs, requests are rate limited, and nothing here connects to a Luca or customer system.
How it works
- Map the systemsI list the systems that must talk, how each one authenticates, the events it emits and who owns it. That map decides what becomes a published endpoint and what stays an internal call.
- Publish the contractI publish the contract before anyone writes an integration. The Luca API serves an OpenAPI 3.1 document at GET /v1/schema, and any valid key can read it. I write that document by hand next to the route handlers, and every endpoint that needs a scope names it there. Each app also gets a shorter document covering its detail, health and events. Client teams read the contract, not my code.
- Gate every callEvery /v1 call needs a valid bearer key, and each key gets 120 requests per minute by default. Over that limit the caller gets a 429 with Retry-After. Every route except the schema checks the scope it declares. A key without that scope gets a 403 that names the missing scope, and the handler never runs. Another account's app returns the same 404 as a missing app. Replies use one envelope with success, errors, result and a request id.
- Expose tools to modelsI register platform operations as model tools, with declared parameters and any capability the tool requires. In chat, each platform tool call passes a gate before it runs. The gate refuses unknown tool names, checks any required capability and validates the arguments against the declared parameters. A tool marked destructive waits for the user to confirm, and the request expires if nobody does.
Tools
| Tool | What it does here | Status |
|---|---|---|
| Luca public API (api.onluca.ai/v1)Available | Serves an OpenAPI 3.1 contract, checks bearer keys and per-endpoint scopes, and limits each key to 120 requests per minute by default. Only app redeploy writes. | Available |
| Agent tool bridgeAvailable | Registers platform operations as model tools with declared parameters and permissions, and runs only registered tools. | Available |
| Multi-provider model gatewayAvailable | Routes model calls across several providers and falls back to the next one when a route allows it. It records model, tokens and latency for each call. | Available |
| Luca MCP gatewayEarly access | Runs MCP tool calls through the same gate and audit log as chat, plus a tool allow-list and a second permission check. Off by default. | Early access |
| API request mapping demoDemo only | Maps a plain-English request onto one of the ten API operations with its scope, or rejects it as unsupported with a reason. | Demo only |
Available means shipped and in use. Early access means built but not generally available. Roadmap means designed, not built. Demo only means it powers the public demo, not customer deployments.
The write-up has every step of how I deliver this at a customer, with the tools and their status.
Read the write-up on gusit.deThe other answers
Built by Gus Assuncao of Gus IT LLC for a Forward Deployed Engineer application. Luca is the AI platform Gus IT builds and operates. Contact gus@gusit.de. Claude is a product of Anthropic PBC. Cloudflare and Workers AI are trademarks of Cloudflare, Inc. Llama is a trademark of Meta Platforms, Inc. Other names are trademarks of their respective owners. Gus IT LLC is an independent engineering firm and is not affiliated with or endorsed by these companies.