Odile Gate

Keeps AI agents inside the calls your API allows. Each app gets its own key and allowed routes; a loop breaker stops an agent repeating the same call; risky writes wait for a person to approve that exact call; retried writes never run twice; every call is logged and exportable. Coding agents set it up in-session over MCP. Free for 3 apps and 10,000 calls a month.

호스팅형 MCP 서버

npx add-mcp 'https://gate.odilelabs.com/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

Let an AI agent do the job, not everything.

Gate Actions gives one agent session the permission for one job: one customer, a few actions, a limit and an expiry. Actions you choose wait until a person approves that exact call, and a retried write never runs twice. Underneath, every app gets its own key, a list of the calls it may make, a rate limit, and an audit log you can export as CSV. Ten minutes, no platform team.

Start free Read the docs

Gate Actions in 29 seconds: real responses from a live run against Demo Desk, our test API. No narration; every word is on screen. Run it yourself: curl -s https://gate.odilelabs.com/actions-quickstart.sh | sh

Built your app with ChatGPT or Claude? Gate in plain words, 42 seconds, with captions.

Odile Gate in 58 seconds. No narration; every word is on screen.

How Odile Labs compares with Bland AI and Vapi

Guide: how to stop an AI agent looping on your API

Free: 3 apps, 10,000 calls a month. Pro: $29 a month, 25 apps, 1,000,000 calls a month, then $10 per extra million. Upgrade to Pro from your Gate dashboard: card checkout by Stripe, cancel any time from the billing portal.

We run on it ourselves: since 20 October 2026 our own money checks read our operations API through Gate, with their own key, two allowed calls and an audit row for every call, instead of holding our master read key.

Blocked-call alerts are included on Free and Pro: set an HTTPS webhook and a threshold (20 refused calls in 10 minutes by default, adjustable from 5 to 1,000). Gate sends a JSON alert for spikes of 401, 403 or 429 responses, at most once per app per hour, with route patterns and no request content. It works as a Slack, Discord or Teams incoming webhook.

Loop breaker, on Free and Pro: when an AI agent gets stuck and sends the same call over and over, Gate stops it. The 10th identical call from one app within 10 seconds (same method, path, query and body) gets 429 with x-odile-gate-loop-detected: true, never reaches your API and does not use your quota.

Per-user rules, on Free and Pro: your app sends its signed-in user's login token (Supabase, Clerk, Auth0, Firebase or any provider with a JWKS URL) and a rule like GET /users/{user}/orders/:id or GET /orders?user_id=eq.{user} only passes for that user; anyone else's id gets 403. A call that does not name the user cannot be checked per user.

See it work in one minute: curl -s https://gate.odilelabs.com/quickstart.sh | sh puts Gate in front of a public test API and shows an allowed read (200), a refused delete (403), a stopped loop (429 on the 10th repeat) and the audit log. Read the script.

Or let your coding agent do it: connect https://gate.odilelabs.com/mcp (Claude Code: claude mcp add --transport http odile-gate https://gate.odilelabs.com/mcp). The agent that writes your app creates the project, registers each app with only the calls it makes, and reads the audit log in the same session. Nothing to install. How it works.

Setup Check, included on Free and Pro: ask your coding agent to run gate_check_setup for a read-only configuration report. It flags observe-only mode, broad routes, writes without mandatory runs, missing user-token settings and active approval runs without a separate approver. It sends no upstream requests and changes no policy. Backend ownership rules and direct access that bypasses Gate still need their own tests. Check your agent’s API permissions.

Operational metrics, Free and Pro: read the last 24 hours of stored calls by status and reason in the dashboard, MCP gate_metrics, REST or SDK. Duration includes upstream wait; monthly gateway usage is counted separately. Audit coverage can be partial. Read the metrics and audit guide.

Native OpenShell v0.1.5 HTTP-request middleware, Free and Pro: run it beside your OpenShell gateway. It validates the EdDSA extension JWT, checks its sandbox ID against a controller-bound Gate run, and preflights active run state with GET /g/<id>/_gate/run. Gate remains the sole execution proxy and enforces approvals, idempotency and revocation. Gate does not host the middleware’s gRPC service. Direct Gate bearer clients remain accepted; this version-specific integration does not establish universal OpenShell compatibility. OpenShell integration guide. One-command OpenShell setup: curl -fsSL https://gate.odilelabs.com/openshell-setup.py | python3 -. Agents call gate_openshell_setup to discover the local installer hash and recipe schema. Requires Python and existing local Docker; default is a Free read-only demo. Custom API routes/scope require owner authorization; revoked grants are not automatically renewed.

Gate Actions, for agents that change customer data: give your agent permission to do the job, not access to everything. Each agent session gets a run: a few actions bound to one customer, with limits and an expiry. Calls for another customer, or actions outside the run, are refused. A call marked for approval is held until a person approves that exact call, and it runs once. Writes carry an Idempotency-Key, so a retry never runs twice; when a reply is lost, Gate asks your API whether the write happened (executed, safe to retry, or needs review) instead of guessing. Included on Free and Pro. Approvers get their own key, and once a project has one the admin key can no longer approve. How runs work.

Try Gate Actions in one minute, no card: curl -s https://gate.odilelabs.com/actions-quickstart.sh | sh runs against a built-in demo ticket API: an allowed update, another customer refused, a retry that does not apply twice, an exact approval, revocation and expiry. Guides: wrong-customer changes · approve one exact action · retries without duplicate writes.

Claude Code plugin: /plugin marketplace add tolga-boop/odile-claude-plugin, then /plugin install odile@odile-labs, and ask Claude to put Gate in front of your API. Source.

Plans

Free$0

3 apps. 10,000 calls a month. 30-day audit history.

Start free

Pro$29a month

25 apps. 1,000,000 calls a month, then $10 per extra million (keeps working up to a limit you set). 365-day audit history.

Go Pro

Request and response bodies are never stored (except, encrypted, a Gate Actions call waiting for approval); upstream secrets are encrypted. Full facts at gate.odilelabs.com.

Start with one project.

Start free See the Odile API

Response redaction: opt-in JSON field allow-lists per app on Free and Pro, via gate_set_response, REST, SDK or dashboard. Up to 1 MiB and 5 seconds to read. Replies that cannot be filtered are withheld; upstream writes still count. No response-body storage.