Odile Gate

com.odilelabsPublished by odilelabs.comOfficial publisherv1.7.0Updated Oct 29, 2026

Free, no signup: per-app keys, allowed calls, approvals and an audit log for your API or model key.

The publisher's own server: Odile Labs

Overview

AI-generated overview

Odile Gate is a hosted gateway that puts per-app keys, allow-lists, rate limits, approvals and an audit log in front of an HTTP or model API, managed through…

What you can do
  • Create and configure projects and apps: set up a project in front of an HTTPS API, issue per-app keys with allowed route rules, limit which models an app may request, and list apps with their limits and state.
  • Control agent permissions: create narrow, expiring runs with scopes and approvals, make runs mandatory for writes or all calls, delegate narrower runs to other apps, and manage approver keys.
  • Review traffic and refusals: read recent calls, 24-hour metrics by status and reason, anomaly scores, run trees and timelines, and explain what a refusal means.
  • Verify audit integrity: read chained audit rows with an HMAC-SHA256 signature and recompute a pasted export chain to check it is…
When to use it
Useful when you want an assistant to stand up or audit a credential-scoped gateway in front of an API or model provider, or to give an agent session narrow, expiring, approval-gated write access to customer data instead of a broad key.
Requirements
A remote streamable HTTP endpoint; no package, environment variable or header is declared. You supply the upstream HTTPS API base URL and keep the returned admin key and app keys yourself. A credential-free sandbox API is offered for demos.
Before you install
Admin and app keys are returned once and grant control over the gateway; the instructions say to store the admin key in a gitignored .env, never in code, and to give approver keys to a person, never to an agent. Configuration tools create projects, apps, approvers and runs, and sync applies settings. The setup check is read-only analysis, not a security certificate, and upstream ownership checks should stay in place.

Installation

In SourceWeft

  1. Open Odile Gate in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.odilelabs%2Fgate/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "odile-gate": {
      "type": "http",
      "url": "https://gate.odilelabs.com/mcp"
    }
  }
}

Tools

23

gate_openshell_setup

Discover one-command OpenShell setup

Read-only local setup plan for native OpenShell + Gate: one command, exact installer hash, recipe schema, prerequisites, authority boundaries and cleanup. Default creates an isolated Free read-only demo with no model or payment. A trusted local controller may configure an owner-authorized API with explicit routes/scope and private credential files. This tool does not run commands, create resources or accept credentials.

Takes no parameters.

gate_create_project

Create a Gate project

Create a Free project in front of an existing HTTPS API. No signup or payment required. For a credential-free demo use https://sandbox.gate.odilelabs.com with GET /customers/:cid/tickets/:id (customer A holds tickets 1-3, B holds 4-5: try GET /customers/A/tickets/1). Returns project_id, admin_key (shown once) and the gateway base URL apps call instead of the API. A real API and its credentials need owner authorization.

Parametersnamerequiredupstreamrequiredheader_nameheader_value

gate_add_app

Register an app

Give one app its own key and the calls it may make. Routes are rules like "GET /orders/:id", "POST /orders", "GET /users/{user}/orders" (per-user), or example calls like "GET /orders/42", which become rules allowing any id. Returns key (shown once), app.id and normalized rules. Send key as Authorization: Bearer <key> to the project gateway; never send the admin key to the workload.

Parametersnamerequiredmodelsroutestemplateadmin_keyrequiredper_minuteproject_idrequired

gate_set_models

Set an app's allowed models

For a project in front of a model API: limit which models one app may ask for (the request body's "model", or a /models/<name> path). Other models are refused with 403 model_not_allowed before the provider sees them. models: null removes the limit.

Parametersapprequiredmodelsrequiredadmin_keyrequiredproject_idrequired

gate_list_apps

List apps

The project's apps with their allowed calls, limits, state and anomaly-guard settings.

Parametersadmin_keyrequiredproject_idrequired

gate_check_setup

Check an agent integration setup

Read actual Gate protection settings before giving an integration production access. Reports observe-only mode, writes without mandatory runs, missing user-token configuration, wildcard grants and approval separation, with evidence, exact remedies and explicit limits. Sends no upstream requests, changes no settings and uses no gateway quota. Configuration-only: not a security certificate or runtime enforcement test.

Parametersappadmin_keyrequiredproject_idrequired

gate_metrics

Read Gate operational metrics

Read last-24-hour stored call counts by HTTP status and reason, measured duration through response headers (including upstream wait), per-app anomaly scores and 24-hour anomaly counts, and separate current-month gateway usage: plan, used, allowed, plus upgrade URL and checkout path on Free at 80% or above. Only POST the checkout path when the admin asks to upgrade; reading metrics never starts checkout. Project admin only. Audit may be partial: invalid-key sampling and audit-off periods are disclosed. No upstream requests, quota use or policy changes; not a health certificate or performance guarantee.

Parametersadmin_keyrequiredproject_idrequired

gate_audit

Read the audit log

The most recent calls through the gateway (time, app, matched route, status, reason, duration), newest first, with totals by status and refusal reason. Gate never stores bodies, query values or headers.

Parametersapplimitstatusadmin_keyrequiredproject_idrequired

gate_create_run

Grant one agent run

Gate Actions: give one agent session narrow, expiring permission. Actions are rules with {placeholders} bound by scope (e.g. "PATCH /customers/{customer}/tickets/:id" with scope {"customer":"A"}), each with an optional max and approval. Add a human approver with gate_add_approver before granting approval:true actions; without an active approver the grant is refused. Returns a run token (shown once) the agent sends as x-odile-run with its app key. Writes in a run need an Idempotency-Key. Give a write a check ("GET /bookings?idempotency_key={key}") and the agent can settle a lost answer with POST /g/<id>/_gate/recover.

Parametersapprequiredlabelscopeactionsrequiredadmin_keyrequiredmax_callsproject_idrequiredttl_seconds

gate_set_app_runs

Require runs for an app

Make an app need a run: "writes" (every write needs x-odile-run), "all" (every call), or "off".

Parametersapprequiredmoderequiredadmin_keyrequiredproject_idrequired

gate_set_response

Choose response fields for an app

Opt-in JSON response redaction: return only explicit JSON Pointer paths, e.g. /id and /items/*/name. * matches one segment; selecting a container allows its whole subtree. Applies to every upstream response for this app, including errors. Maximum 1 MiB and 5 seconds to read; invalid/non-JSON responses are withheld. No bodies are stored. A withheld reply never reverses an upstream write. null disables filtering. Free and Pro.

Parametersapprequiredallowrequiredadmin_keyrequiredproject_idrequired

gate_add_approver

Add an approver

Create an approver key for the person who approves held actions (shown once), before granting approval actions. Give it to that person, never to an agent. Only an active approver key can approve, reject or reopen actions.

Parametersnamerequiredadmin_keyrequiredproject_idrequired

gate_list_actions

List held actions

Actions waiting for approval (or in another state), with the exact call. With an installed approval-risk model, pending actions sort by risk descending and include risk (0–1) and risk_features (top two advisory signals). No model means no score and newest first. Only a person decides in the dashboard.

Parametersstateadmin_keyrequiredproject_idrequired

gate_explain_refusal

Explain a refused call

What a Gate refusal means and how to fix it, from the x-gate-refused header value (e.g. route_not_allowed).

Parametersreasonrequiredrecoverable

gate_delegate_run

Delegate a narrower run

Hand a narrower run to another active app in the same project. Uses the parent app key and run token, never the admin key. Scope, expiry, approvals and ancestor budgets stay enforced; maximum depth five.

Parametersapprequiredlabelactionsrequiredapp_keyrequiredmax_callsrun_tokenrequiredproject_idrequiredttl_seconds

gate_learn_suggestions

Read learning suggestions

Read normalized routes and a suggested per-minute limit from an admin-enabled, time-boxed learning session. Records only method, normalized path templates and counts per minute; no query values, raw ids, headers or bodies. Never enables learning or applies rules.

Parametersapprequiredadmin_keyrequiredproject_idrequired

gate_audit_proof

Export a signed audit proof

Read chained audit rows, decided-action feature snapshots and anchors with an HMAC-SHA256 signature. No sealed paths/bodies, notes, keys or IPs in the action labels. Legacy actions lack snapshots and are excluded. store_audit=false has no chain. Follow next_from for audit rows and next_actions_after as actions_after for labels (10,000 each). Use API/SDK above the MCP response size limit.

Parameterstofromadmin_keyrequiredproject_idrequiredactions_after

gate_audit_verify

Verify a signed audit export

Recompute a pasted export chain and project signature; returns intact or broken_at (one-based row position). Does not approve actions or change permissions.

Parametersproofrequiredadmin_keyrequiredproject_idrequired

gate_run_tree

Read run tree

Read a run and its delegated descendants without tokens.

Parametersrun_idrequiredadmin_keyrequiredproject_idrequired

gate_run_timeline

Read run timeline

Read call metadata, approvals and approver names, recovery outcomes and delegated children; no bodies or query values.

Parametersbeforerun_idrequiredadmin_keyrequiredproject_idrequired

gate_create_app

Create an app

Give one app its own key and the calls it may make. Routes are rules like "GET /orders/:id", "POST /orders", "GET /users/{user}/orders" (per-user), or example calls like "GET /orders/42", which become rules allowing any id. Returns key (shown once), app.id and normalized rules. Send key as Authorization: Bearer <key> to the project gateway; never send the admin key to the workload.

Parametersnamerequiredmodelsroutestemplateadmin_keyrequiredper_minuteproject_idrequired

gate_validate_config

Check an odile.yaml

Parse and check a declarative Gate config (apps, routes, rate limits, run mode, plugins including anomaly-guard, alerts, approvers) without changing anything. anomaly-guard settings: mode off|alert|strict, z_threshold 2–10, min_minutes 1–30, half_life 5–1440. Returns errors with their path, warnings, and the normalized config.

Parametersconfigrequired

gate_sync_declarative

Apply an odile.yaml

Make a Gate project match an odile.yaml: creates the project (if no project_id) and missing apps and approvers, applies run mode, loop, learning and anomaly-guard settings and alerts. Example plugin: {name: anomaly-guard, settings: {mode: alert, z_threshold: 4, min_minutes: 3, half_life: 60}}. Never revokes or deletes; differences it cannot apply (an app's routes or rate limit) come back as drift. dry_run lists the steps without changing anything. New keys are shown once.

Parametersconfigrequireddry_runadmin_keyproject_id

Version history

5
  1. v1.7.0LatestOct 29, 2026
  2. v1.6.1Oct 26, 2026
  3. v1.6.0Oct 24, 2026
  4. v1.2.0Oct 21, 2026
  5. v1.1.0Oct 20, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.

Other Odilelabs integrations