Odile Gate
mcp remote · streamable-http · v1.7.0 · source: crawl
https://gate.odilelabs.com/mcp
Free, no signup: per-app keys, allowed calls, approvals and an audit log for your API or model key.
Works
100
Verified Oct 31, 2026 · p50 422 ms · p95 477 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'com.odilelabs/gate' |
| tools_listed | 15 | pass | 23 tools |
| schema_complete | 15 | pass | 22 of 23 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 422 ms |
| latency_p95 | 5 | pass | p95 477 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (23)
| Name | Description | Schema |
|---|---|---|
gate_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 de | typed |
gate_create_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 | typed |
gate_add_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 | typed |
gate_set_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 pro | typed |
gate_list_apps | The project's apps with their allowed calls, limits, state, idle_since (no allowed call in the project's idle_days) and anomaly-guard settings. | typed |
gate_check_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 app | typed |
gate_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, idle apps (acti | typed |
gate_audit | 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 header | typed |
gate_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 | typed |
gate_create_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"}), eac | typed |
gate_set_app_runs | Make an app need a run: "writes" (every write needs x-odile-run), "all" (every call), or "off". | typed |
gate_set_response | 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 re | incomplete |
gate_add_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, reje | typed |
gate_list_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 tw | typed |
gate_explain_refusal | What a Gate refusal means and how to fix it, from the x-gate-refused header value (e.g. route_not_allowed). | typed |
gate_delegate_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 fi | typed |
gate_learn_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 i | typed |
gate_audit_verify | Recompute a pasted export chain and project signature; returns intact or broken_at (one-based row position). Does not approve actions or change permissions. | typed |
gate_run_tree | Read a run and its delegated descendants without tokens. | typed |
gate_run_timeline | Read call metadata, approvals and approver names, recovery outcomes and delegated children; no bodies or query values. | typed |
gate_create_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 | typed |
gate_validate_config | 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|st | typed |
gate_sync_declarative | 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: | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/com-odilelabs-gate)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.