MCP server for 1Password service accounts — tools and resources for vaults and credentials
Odile Gate is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Free, no signup: per-app keys, allowed calls, approvals and an audit log for your API or model key.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http odile-gate-mcp https://gate.odilelabs.com/mcp
# 2 — ask your agent for something these tools do
# gate_openshell_setup, gate_create_project, gate_add_app and 19 more
Odile Gate costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http odile-gate-mcp https://gate.odilelabs.com/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
22 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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
No parameter schema on file.
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 nee
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | A name for the project, e.g. "Shop API" |
| upstream | string | yes | The API base URL, https only, e.g. https://api.example.com/v1 |
| header_name | string | no | Optional: the secret header your API expects, e.g. Authorization or apikey |
| header_value | string | no | Optional: its value. Stored encrypted; apps never see it. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| name | string | yes | The app name, e.g. "storefront" or "nightly sync" |
| routes | array | yes | Only the calls this app makes, one "METHOD /path" per item |
| per_minute | integer | no | Calls per minute for this app (default 60) |
| models | array | no | For a model API: the only models this app may ask for, exact names or a prefix ending in * (e.g. ["gpt-4.1-mini", "claude-haiku-*"]). Omit for no model limit. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | yes | The app id (app_...) |
| models | array/null | yes | Exact names or prefixes ending in *; null for no limit |
The project's apps with their allowed calls, limits, state and anomaly-guard settings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
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 runtim
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | no | Optional: check one active app id (app_...) instead of all active apps |
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 che
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | no | Optional: only this app id (app_...) |
| status | string | no | Optional: only this HTTP status, e.g. "403" |
| limit | integer | no | How many calls (default 20) |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | yes | The app id (app_...) this run is for |
| label | string | no | Optional: what the run is for, e.g. "triage ticket 4411" |
| scope | object | no | Values for the {placeholders}, e.g. {"customer":"A"} |
| actions | array | yes | Rules, or {rule, max, approval, check} |
| ttl_seconds | integer | no | How long the run lasts (default 3600) |
| max_calls | integer | no | Optional: calls allowed in the whole run |
Make an app need a run: "writes" (every write needs x-odile-run), "all" (every call), or "off".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | yes | The app id (app_...) |
| mode | string | yes | — |
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 disab
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | yes | The app id (app_...) |
| allow | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| name | string | yes | Who approves, e.g. "Dana (support lead)" |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| state | string | no | Default: pending |
What a Gate refusal means and how to fix it, from the x-gate-refused header value (e.g. route_not_allowed).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reason | string | yes | The x-gate-refused value |
| recoverable | boolean | no | Whether the write was granted with a recovery check |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| app_key | string | yes | The parent app key (gk_...) |
| run_token | string | yes | The parent run token (gr_...) |
| app | string | yes | The destination app id |
| actions | array | yes | — |
| ttl_seconds | integer | no | — |
| max_calls | integer | no | — |
| label | string | no | A short label for the delegated job |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| app | string | yes | The app id |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| from | integer | no | — |
| to | integer | no | — |
| actions_after | string | no | Action cursor from next_actions_after |
Recompute a pasted export chain and project signature; returns intact or broken_at (one-based row position). Does not approve actions or change permissions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| proof | object | yes | The full signed export from gate_audit_proof |
Read a run and its delegated descendants without tokens.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| run_id | string | yes | The run id |
Read call metadata, approvals and approver names, recovery outcomes and delegated children; no bodies or query values.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | string | yes | The project id from gate_create_project, e.g. p1a2b3... |
| admin_key | string | yes | The project admin key (ga_...). Read it from the .env; never print it. |
| run_id | string | yes | The run id |
| before | integer | no | Older audit events (timeline pages have at most 500 events) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| config | string | yes | The whole odile.yaml (or the same as JSON) as text |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| config | string | yes | The whole odile.yaml (or the same as JSON) as text |
| project_id | string | no | Optional: an existing project to sync |
| admin_key | string | no | Its admin key (ga_...), required with project_id. Read it from the .env; never print it. |
| dry_run | boolean | no | List the steps without changing anything |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Odile Gate or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| gate_openshell_setup | no tags | |
| gate_create_project | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_add_app | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_set_models | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_list_apps | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_check_setup | no tags | |
| gate_metrics | no tags | |
| gate_audit | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_create_run | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_set_app_runs | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_set_response | state-write | state-write: declares readOnlyHint: false |
| gate_add_approver | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_list_actions | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_explain_refusal | no tags | |
| gate_delegate_run | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
| gate_learn_suggestions | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_audit_proof | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_audit_verify | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_run_tree | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_run_timeline | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| gate_validate_config | no tags | |
| gate_sync_declarative | external-sink | external-sink: declares readOnlyHint: false, openWorldHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.7.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Odile Gate can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.