com.odilelabs/gate

Odile Gate

Enforce AI agent API permissions, approvals and safe retries. Check the setup and audit every call.

Endpointhttps://gate.odilelabs.com/mcp (streamable-http)
Registry version1.6.0
Now21 tools · grade F (18) · pin ts_585b44023d539ff8d3b6711920a3624f · protocol 2025-06-18
First / last listed2026-10-26 01:28 UTC / 2026-10-26 01:28 UTC
Grade over time2026-10-26: F (18), 21 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-26 01:28 UTC
21 tools, grade F (18)

Tools: gate_openshell_setup gate_create_project gate_add_app gate_list_apps gate_check_setup gate_metrics gate_audit gate_create_run gate_set_app_runs gate_set_response gate_add_approver gate_list_actions gate_explain_refusal gate_delegate_run gate_learn_suggestions gate_audit_proof gate_audit_verify gate_run_tree gate_run_timeline gate_validate_config gate_sync_declarative

Current tools (21)

gate_openshell_setupRead-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
params: none
gate_create_projectCreate 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. 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.
params: name*, upstream*, header_name, header_value
gate_add_appGive 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.
params: project_id*, admin_key*, name*, routes*, per_minute
gate_list_appsThe project's apps with their allowed calls, limits, state and anomaly-guard settings.
params: project_id*, admin_key*
gate_check_setupRead 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 runtim
params: project_id*, admin_key*, app
gate_metricsRead 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 che
params: project_id*, admin_key*
gate_auditThe 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.
params: project_id*, admin_key*, app, status, limit
gate_create_runGate 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. 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?ide
params: project_id*, admin_key*, app*, label, scope, actions*, ttl_seconds, max_calls
gate_set_app_runsMake an app need a run: "writes" (every write needs x-odile-run), "all" (every call), or "off".
params: project_id*, admin_key*, app*, mode*
gate_set_responseOpt-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 disab
params: project_id*, admin_key*, app*, allow*
gate_add_approverCreate an approver key for the person who approves held actions (shown once). Give it to that person, never to an agent: once a project has an approver, the admin key can no longer approve.
params: project_id*, admin_key*, name*
gate_list_actionsActions 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.
params: project_id*, admin_key*, state
gate_explain_refusalWhat a Gate refusal means and how to fix it, from the x-gate-refused header value (e.g. route_not_allowed).
params: reason*, recoverable
gate_delegate_runHand 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.
params: project_id*, app_key*, run_token*, app*, actions*, ttl_seconds, max_calls, label
gate_learn_suggestionsRead 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.
params: project_id*, admin_key*, app*
gate_audit_proofRead 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.
params: project_id*, admin_key*, from, to, actions_after
gate_audit_verifyRecompute a pasted export chain and project signature; returns intact or broken_at (one-based row position). Does not approve actions or change permissions.
params: project_id*, admin_key*, proof*
gate_run_treeRead a run and its delegated descendants without tokens.
params: project_id*, admin_key*, run_id*
gate_run_timelineRead call metadata, approvals and approver names, recovery outcomes and delegated children; no bodies or query values.
params: project_id*, admin_key*, run_id*, before
gate_validate_configParse 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.
params: config*
gate_sync_declarativeMake 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.
params: config*, project_id, admin_key, dry_run

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.