seekrit — secrets for agents
Server Details
Encrypted store for API keys and database URLs your code needs. Use them without reading them.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 40 tools
Despite 40 tools, virtually every tool names a distinct resource+action, and descriptions explicitly cross-reference and contrast near-twins (list_envs vs list_env_groups vs list_group_envs, restore_secret vs delete_secret, kms_disable_key vs kms_revoke_grant). The app/group/environment/branch/KMS hierarchy is cleanly delineated with clear boundaries.
The dominant pattern is verb_noun snake_case (create_app, delete_env, compose_group, revoke_lease, list_branches) with a consistent kms_ namespace. However, several tools drop the verb entirely (audit, billing, whoami, signup, get_started), which are noun/single-word outliers breaking the otherwise predictable convention.
40 tools is heavy and sits above the comfortable range, but the domain genuinely spans orgs, apps, groups, environments, branches, secrets, versions, members, invites, tokens, leases, KMS keys/grants, audit, and billing, so most tools earn their place. It is borderline rather than excessive but still a large surface for an agent to navigate.
The control plane is well covered (list/create/delete/rename across apps, groups, envs; version history and restore; token/lease/invite revocation). But core operations are deliberately absent: reading and writing secret values (and minting envs/branches/tokens/leases) live on the local crypto plane, and there is no update_secret or member role/removal tool, creating notable gaps an agent must route around.
Available Tools
40 toolsauditARead-onlyIdempotentInspect
Read the organization's append-only audit trail, most recent first — every mutation across apps, environments, secrets, members, and tokens. Use it to answer "what changed and who did it"; for one secret's history specifically, list_secret_versions is narrower and cheaper. Returns [{ id, action, actorType, actorId, resourceType, resourceId, metadata, ipAddress, createdAt }].
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| limit | No | How many entries to return, newest first. 1–200, default 50. | |
| action | No | Exact action name to filter by, e.g. "secret.updated" or "app.deleted". Omit for every action. Read the values off an unfiltered call rather than guessing. |
billingARead-onlyIdempotentInspect
Show the org's plan, effective entitlements, current usage, and which upgrade actions are available. Read this if a create action was refused with a plan limit — it names the limit you hit and how to lift it. Returns { plan, subscription, promo, entitlements, usage, overrides, enforced, manage } — enforced: false means plan limits are not currently applied, and manage carries the upgrade paths.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
compose_groupAIdempotentInspect
Compose a shared group into an application environment, so that environment resolves the group's secrets as well as its own. Safe to repeat — composing an already-composed group just updates its position. Use uncompose_group to undo, and list_env_groups to see the current order. When app access or sync requires new wrapped keys, use the local CLI to compose the group; this remote tool cannot wrap keys. Returns the composed { groupId, slug, name, position }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| group | Yes | Shared-group slug or id, as returned by list_groups (e.g. "shared-datastores"). | |
| position | No | Precedence among the environment's composed groups: on a name clash the HIGHER position wins, and the environment's own secrets beat every group. Omit to append at the end. Read the current order from list_env_groups first. |
create_appAInspect
Create an application — the container that will own environments and secrets. This step needs no key material, so it runs here. Creating its environments does NOT: create_env mints a data key and lives on the local crypto plane (call setup_local_crypto). Returns the new { id, orgId, name, slug, createdAt }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | Human-readable display name, e.g. "Acme Storefront". Can be renamed later. | |
| slug | Yes | URL-safe identifier used by every other tool to refer to this app: lowercase letters, numbers, hyphens (e.g. "acme-storefront"). Immutable once created — choose it carefully. |
create_groupAInspect
Create a shared group — a reusable bag of secrets (a shared datastore, a vendor account) that many application environments compose in rather than each keeping a copy. Use create_app instead for a deployable service. No key material involved, so it runs here; the group's environments are minted locally by create_group_env. Returns the new { id, orgId, name, slug, createdAt }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | Human-readable display name, e.g. "Shared Datastores". Can be renamed later. | |
| slug | Yes | URL-safe identifier the other tools refer to this group by: lowercase letters, numbers, hyphens (e.g. "shared-datastores"). Immutable once created. |
delete_appADestructiveIdempotentInspect
Delete an application together with all of its environments and their secrets, discarding the ciphertext. Irreversible — there is no undo and no export. This is the widest-blast-radius tool here; prefer delete_env for a single environment, or rename_app if the name is the only problem. Confirm intent with a human before calling. Returns { ok, app }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
delete_branchADestructiveIdempotentInspect
Tear down an ephemeral branch config and every value it overrode. The parent environment is untouched — only the branch's own overrides go — which makes this the routine cleanup when a PR merges. Irreversible; creating a branch mints a data key, so create_branch stays on the local crypto plane. Find the slug with list_branches. Returns { ok, branch }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| branch | Yes | Branch slug or id within the application, as returned by list_branches. |
delete_envADestructiveIdempotentInspect
Delete one application environment and the secrets it owns, discarding the ciphertext. Irreversible, and the environment's data key goes with it — recreating the environment means setting every value again on the local crypto plane. Sibling environments and the application itself are untouched; use delete_app to remove all of them. Confirm intent before calling. Returns { ok, env }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
delete_groupADestructiveIdempotentInspect
Delete a shared group together with its environments and their secrets, discarding the ciphertext. Irreversible. Every application environment that composed this group loses those names — check list_env_groups (or use uncompose_group) before deciding the group is unused. Confirm intent before calling. Returns { ok, group }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| group | Yes | Shared-group slug or id, as returned by list_groups (e.g. "shared-datastores"). |
delete_secretADestructiveIdempotentInspect
Delete a secret from an environment, discarding its ciphertext and every version. Irreversible — restore_secret CANNOT bring it back (that only rolls back within a surviving secret's history), and re-creating it means setting the value again on the local crypto plane. Prefer restore_secret to undo a bad write. Confirm intent before calling. Returns { ok, name } — or { ok, queued: true, changeRequestId } if the environment requires approval, in which case NOTHING was deleted until a human approves.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | The secret's name — the variable name it is injected as, e.g. "DATABASE_URL". Names come from list_secrets; this is never a value. |
get_startedARead-onlyInspect
Read the recommended first-project recipe end to end: which steps run here and which need the local crypto plane. Takes no arguments and returns a prose walkthrough. Call this before provisioning anything — it is cheaper than discovering the plane boundary one failed tool at a time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
invite_memberAInspect
Invite a human to the organization by email (admin only). They join at the given role once they sign in. Use this to hand a project off to a person — then grant them decryption with grant_env on the LOCAL crypto plane, since an invite alone conveys no ability to read values. Returns the pending { id, orgId, email, role, invitedById, createdAt }; revoke_invite cancels it.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| role | No | Role granted on join. "member" (the default) can use the org; "admin" can also invite others and delete resources. | |
| Yes | Email address to invite. They receive an invitation and become a member on first sign-in; until then they appear in list_invites, not list_members. |
kms_disable_keyADestructiveIdempotentInspect
Disable a managed KMS key: new encrypt/sign operations are blocked, while data already encrypted under it stays decryptable locally by existing grantees. Reversible only by an operator re-enabling the key — there is no enable tool here. Use kms_revoke_grant instead to cut off ONE principal while the key stays in service. Find the id with kms_list_keys. Returns the updated key, with disabledAt now set.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| keyId | Yes | The managed key's id, from kms_list_keys (the `id` field — `name` is a display label and is not accepted here). |
kms_list_keysARead-onlyIdempotentInspect
List the managed KMS keys the caller can see — symmetric and signing keys seekrit stores wrapped, for encrypting data outside the secret store. Metadata only: key material is fetched and used on the local crypto plane (kms_encrypt / kms_decrypt / kms_sign live there, not here). Use it to find a keyId for kms_disable_key or kms_revoke_grant. Returns [{ id, name, purpose, spec, currentVersion, applicationId, groupId, disabledAt, createdAt }] — a non-null disabledAt means the key is already disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
kms_revoke_grantADestructiveIdempotentInspect
Revoke one principal's grant on a managed KMS key, across all its versions — that user or service token can no longer use the key, while everyone else keeps working. Use kms_disable_key instead to stop the key entirely. Removing a grant needs no key material, which is why it runs here. Returns { ok, keyId, principalId }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| keyId | Yes | The managed key's id, from kms_list_keys (the `id` field — `name` is a display label and is not accepted here). | |
| principalId | Yes | The principal's id — a `userId` from list_members, or a token `id` from list_tokens, matching principalType. | |
| principalType | Yes | What kind of principal to revoke: "user" for a human member (list_members) or "service_token" for a machine credential (list_tokens). |
list_appsARead-onlyIdempotentInspect
List the applications in an organization — an application is the top-level container that owns environments, which in turn own secrets. Start here when you know the org but not the app slug the other tools need. Returns [{ id, orgId, name, slug, createdAt }]; use list_envs next to descend into one.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_branchesARead-onlyIdempotentInspect
List ephemeral branch configs (per-PR / preview environments) across an application, or just those forked from one environment. Names, parents, and expiry only — never values. Use it before delete_branch to find a branch slug, or to spot branches that have already expired. Returns Environment rows with parentEnvironmentId set: [{ id, name, slug, parentEnvironmentId, expiresAt, createdAt }] — expiresAt is null for a branch with no TTL.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | No | Optional environment slug or id to narrow to branches forked from that one environment. Omit to list every branch in the application. | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_env_groupsARead-onlyIdempotentInspect
List the shared groups composed INTO one application environment, in precedence order (higher position wins a name clash). Read this to explain where a secret name actually comes from, or to pick the next position for compose_group. The inverse direction of list_group_envs. Returns [{ groupId, slug, name, position }], highest position last.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_envsARead-onlyIdempotentInspect
List the environments an application owns (production, staging, …). Names and slugs only — never values. Use this to find the env slug that list_secrets and the delete/restore tools take. Returns [{ id, name, slug, applicationId, groupId, parentEnvironmentId, expiresAt, createdAt }]. Not to be confused with list_env_groups (which groups feed INTO an app environment) or list_group_envs (the environments of a shared GROUP).
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_group_envsARead-onlyIdempotentInspect
List the environments belonging to one shared GROUP — a group holds a separate value set per slug, so its production differs from its staging. Use this when you already have a group and want its own environments; use list_envs for an application's, and list_env_groups to see which groups an application environment pulls from. Returns Environment rows with groupId set: [{ id, name, slug, groupId, createdAt }].
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| group | Yes | Shared-group slug or id, as returned by list_groups (e.g. "shared-datastores"). |
list_groupsARead-onlyIdempotentInspect
List the shared groups in an organization — a group is a reusable bag of secrets (a shared datastore, a vendor account) that many application environments can compose in rather than duplicating. Use it to find the group slug compose_group and list_group_envs take. Returns [{ id, orgId, name, slug, createdAt }]; not paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_invitesARead-onlyIdempotentInspect
List invitations to the organization that have been sent but not yet accepted. Use it to confirm an invite_member call landed, or to find an inviteId for revoke_invite. Accepted invitations become members — see list_members. Returns [{ id, orgId, email, role, invitedById, createdAt }].
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_leasesARead-onlyIdempotentInspect
List temporary-access leases that have been issued — the ledger of who got a short-lived credential against which target and until when. Never includes the credential itself. Use it to find a leaseId for revoke_lease, or to check whether a lease has already expired before revoking it; list_lease_targets shows what CAN be leased. Returns [{ id, targetId, provider, status, principalType, principalId, expiresAt, endedAt, endedReason, createdAt }] — only status: "active" leases are worth revoking.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_lease_targetsARead-onlyIdempotentInspect
List the registered temporary-access targets — the databases (Postgres, MySQL, …) against which short-lived credentials can be minted on demand instead of storing a standing password. Use it to see what can be leased before minting one (create_pg_lease / create_mysql_lease run on the LOCAL crypto plane), and see list_leases for what has actually been issued. Returns [{ id, orgId, provider, name, config, createdAt }], where provider names the kind of target (postgres, mysql, …) and config is non-secret connection settings.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_membersARead-onlyIdempotentInspect
List organization members with their public keys. The public keys are what you pass to grant_env on the LOCAL crypto plane to give a human the ability to decrypt — so call this when handing a project off to a person. Returns [{ userId, email, name, role, publicKeyJwk }]; publicKeyJwk is null for a member who has not finished key setup, and such a member cannot be granted decryption yet.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_orgsARead-onlyIdempotentInspect
List the organizations this credential can access. Use it to find the org slug every other tool takes; prefer whoami if you also want to confirm which client you are. Returns [{ id, name, slug, role, createdAt }].
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_secretsARead-onlyIdempotentInspect
List the secret NAMES and versions in an environment. NEVER returns values: this server cannot decrypt. Use it to discover which names exist before referencing them; to read a value, run the local crypto plane (see setup_local_crypto) — no tool here will ever return one. Returns [{ name, version, updatedAt }].
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
list_secret_versionsARead-onlyIdempotentInspect
List one secret's version history: who wrote each version, when, and which ones were restores. Metadata only — never values. Pair with restore_secret to undo a bad write: read the history here, then pass the version number you want back. Returns { currentVersion, versions: [{ version, createdAt, createdBy, restoredFromVersion }] }, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | The secret's name — the variable name it is injected as, e.g. "DATABASE_URL". Names come from list_secrets; this is never a value. | |
| limit | No | How many versions to return, newest first. 1–200, default 20. |
list_tokensARead-onlyIdempotentInspect
List an organization's service tokens — the long-lived credentials that let a deployed workload fetch secrets. Metadata only: the token strings are shown once at creation (on the local crypto plane) and are never retrievable here. Use it to find a tokenId for revoke_token, or to audit what still has access. Returns [{ id, name, role, environmentId, expiresAt, lastUsedAt, revokedAt, createdAt }] — environmentId is null for an org-admin token, and a non-null revokedAt means it is already revoked.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. |
local_tool_forARead-onlyInspect
Look up how to perform one crypto-plane operation locally — the targeted answer for "the tool I expected is not on this server". Returns { operation, where, how } for a known operation, or a note explaining the plane boundary for an unrecognised one. Use setup_local_crypto instead when you need the whole local setup rather than one command.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | The tool name you were looking for, in snake_case as it appears on the local plane — e.g. "set_secret", "get_secret", "create_env", "create_token", "grant_env", "run_command". Unknown names return the general boundary rule rather than an error. |
rename_appAIdempotentInspect
Change an application's display name. The slug is immutable — every other tool refers to the app by slug, so a rename breaks nothing. Use delete_app + create_app only if the slug itself must change. Returns the updated { id, orgId, name, slug, createdAt }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | The new display name, e.g. "Acme Storefront (EU)". |
rename_groupAIdempotentInspect
Change a shared group's display name. The slug is immutable — references from composed environments are by slug, so a rename breaks nothing. Returns the updated { id, orgId, name, slug, createdAt }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | The new display name, e.g. "Shared Datastores (EU)". | |
| group | Yes | Shared-group slug or id, as returned by list_groups (e.g. "shared-datastores"). |
restore_secretAInspect
Roll a secret back to an earlier version — the undo for a bad write. The stored ciphertext is replayed as a NEW version, so history is append-only and nothing is overwritten. Read list_secret_versions first to choose the version. No decryption happens, which is why this works here and not only on the local crypto plane. Returns { ok, name, restoredFrom, version } where version is the new head.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| name | Yes | The secret's name — the variable name it is injected as, e.g. "DATABASE_URL". Names come from list_secrets; this is never a value. | |
| version | Yes | The version number to restore, taken from list_secret_versions. Its ciphertext becomes a new version on top of history — the old version is not removed. |
revoke_inviteADestructiveIdempotentInspect
Cancel a pending organization invitation before it is accepted. Use this for an invite sent in error; once someone has accepted, they are a member and this no longer applies. Find the id with list_invites. Returns { ok, inviteId }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| inviteId | Yes | The pending invitation's id, from list_invites. |
revoke_leaseADestructiveIdempotentInspect
Revoke a temporary-access lease now instead of waiting for it to expire — the leased database credential is dropped at the target immediately, so anything still holding it fails on its next connection. Irreversible: a new lease must be minted on the local crypto plane. Check list_leases first, since an already-expired lease needs no revoking. Returns { ok, leaseId }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| leaseId | Yes | The lease's id from list_leases (not the target's id — see list_lease_targets). |
revoke_tokenADestructiveIdempotentInspect
Revoke a service token by id. Future key fetches by that token stop immediately, so any workload still using it loses access on its next read. If the holder may have cached the key already, also rotate the environment on the local crypto plane — revocation alone does not re-encrypt anything. Find the id with list_tokens. Returns { ok, tokenId }.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| tokenId | Yes | The token's id from list_tokens — not the token string, which is never stored. |
setup_local_cryptoARead-onlyInspect
Get the exact commands for running the local crypto plane (the @seekrit/mcp npm server, the @seekrit/cli CLI, seekrit-run, seekrit-proxy), including a copy-paste .mcp.json that reuses this session's credential. Takes no arguments and returns prose plus config. Call this the moment you need to SET or READ a secret value — no tool on this server will ever return one. Use local_tool_for instead when you want the single command for one named operation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
signupAInspect
Create a seekrit workspace and your own machine credential — one call, no human, no browser. Binds the credential to this session, so every other tool works on your next call with no config change and no reconnect. Returns { org, credential: { clientId, clientSecret }, sessionBound, next }. Save the clientId + clientSecret: the secret is shown once, is not retrievable, and is how you reconnect later. Call this if a tool says you have no credential.
| Name | Required | Description | Default |
|---|---|---|---|
| orgName | Yes | The real project, product, or company this workspace is for (e.g. "Acme Storefront") — NOT a placeholder like "test" or "agent". A human will later claim the org by this name. | |
| orgSlug | Yes | URL-safe identifier derived from the project, lowercase letters/numbers/hyphens (e.g. "acme-storefront"). Throwaway slugs make the org unmanageable. | |
| clientName | No | Optional label for this machine credential (defaults to <slug>-agent). |
uncompose_groupAIdempotentInspect
Remove a composed group from an application environment. The group and its secrets are untouched — only the link is dropped — but the environment stops resolving every name it inherited from that group, which will break a workload still reading one. Check list_env_groups first, and use delete_group to destroy the group itself. Safe to repeat. Returns { ok: true }.
| Name | Required | Description | Default |
|---|---|---|---|
| app | Yes | Application slug or id, as returned by list_apps (e.g. "storefront"). | |
| env | Yes | Environment slug or id within that application, as returned by list_envs (e.g. "production"). | |
| org | No | Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs. | |
| group | Yes | Shared-group slug or id, as returned by list_groups (e.g. "shared-datastores"). |
whoamiARead-onlyIdempotentInspect
Show the authenticated machine client and the org it can access. Call this first: it confirms the credential works and tells you which org slug to pass (or that you can omit org entirely). Returns { kind, clientId, orgs: [{ id, name, slug, role, createdAt }] }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
invite_member1 field changed- changed
Input schema / properties / email / patternPrevious value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
35 tool updates
- Changed
audit3 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"filter by action, e.g. secret.updated"New value: +"Exact action name to filter by, e.g. \"secret.updated\" or \"app.deleted\". Omit for every action. Read the values off an unfiltered call rather than guessing." - added
Input schema / properties / limit / descriptionAdded value: +"How many entries to return, newest first. 1–200, default 50." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
billing1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
compose_group5 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / group / descriptionAdded value: +"Shared-group slug or id, as returned by list_groups (e.g. \"shared-datastores\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / position / descriptionAdded value: +"Precedence among the environment's composed groups: on a name clash the HIGHER position wins, and the environment's own secrets beat every group. Omit to append at the end. Read the current order from list_env_groups first."
- Changed
create_app3 fields changed- added
Input schema / properties / name / descriptionAdded value: +"Human-readable display name, e.g. \"Acme Storefront\". Can be renamed later." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / slug / descriptionAdded value: +"URL-safe identifier used by every other tool to refer to this app: lowercase letters, numbers, hyphens (e.g. \"acme-storefront\"). Immutable once created — choose it carefully."
- Changed
create_group3 fields changed- added
Input schema / properties / name / descriptionAdded value: +"Human-readable display name, e.g. \"Shared Datastores\". Can be renamed later." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / slug / descriptionAdded value: +"URL-safe identifier the other tools refer to this group by: lowercase letters, numbers, hyphens (e.g. \"shared-datastores\"). Immutable once created."
- Changed
delete_app2 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
delete_branch3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / branch / descriptionAdded value: +"Branch slug or id within the application, as returned by list_branches." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
delete_env3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
delete_group2 fields changed- added
Input schema / properties / group / descriptionAdded value: +"Shared-group slug or id, as returned by list_groups (e.g. \"shared-datastores\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
delete_secret4 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / name / descriptionAdded value: +"The secret's name — the variable name it is injected as, e.g. \"DATABASE_URL\". Names come from list_secrets; this is never a value." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
invite_member3 fields changed- added
Input schema / properties / email / descriptionAdded value: +"Email address to invite. They receive an invitation and become a member on first sign-in; until then they appear in list_invites, not list_members." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - changed
Input schema / properties / role / descriptionPrevious value: -"default member"New value: +"Role granted on join. \"member\" (the default) can use the org; \"admin\" can also invite others and delete resources."
- Changed
kms_disable_key2 fields changed- added
Input schema / properties / keyId / descriptionAdded value: +"The managed key's id, from kms_list_keys (the `id` field — `name` is a display label and is not accepted here)." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
kms_list_keys1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
kms_revoke_grant4 fields changed- added
Input schema / properties / keyId / descriptionAdded value: +"The managed key's id, from kms_list_keys (the `id` field — `name` is a display label and is not accepted here)." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / principalId / descriptionAdded value: +"The principal's id — a `userId` from list_members, or a token `id` from list_tokens, matching principalType." - added
Input schema / properties / principalType / descriptionAdded value: +"What kind of principal to revoke: \"user\" for a human member (list_members) or \"service_token\" for a machine credential (list_tokens)."
- Changed
list_apps1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_branches3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Optional environment slug or id to narrow to branches forked from that one environment. Omit to list every branch in the application." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_env_groups3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_envs2 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_group_envs2 fields changed- added
Input schema / properties / group / descriptionAdded value: +"Shared-group slug or id, as returned by list_groups (e.g. \"shared-datastores\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_groups1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_invites1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_lease_targets1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_leases1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_members1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_secret_versions5 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - changed
Input schema / properties / limit / descriptionPrevious value: -"default 20"New value: +"How many versions to return, newest first. 1–200, default 20." - added
Input schema / properties / name / descriptionAdded value: +"The secret's name — the variable name it is injected as, e.g. \"DATABASE_URL\". Names come from list_secrets; this is never a value." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_secrets3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
list_tokens1 field changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
local_tool_for1 field changed- changed
Input schema / properties / operation / descriptionPrevious value: -"the operation you wanted, e.g. set_secret"New value: +"The tool name you were looking for, in snake_case as it appears on the local plane — e.g. \"set_secret\", \"get_secret\", \"create_env\", \"create_token\", \"grant_env\", \"run_command\". Unknown names return the general boundary rule rather than an error."
- Changed
rename_app3 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / name / descriptionAdded value: +"The new display name, e.g. \"Acme Storefront (EU)\"." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
rename_group3 fields changed- added
Input schema / properties / group / descriptionAdded value: +"Shared-group slug or id, as returned by list_groups (e.g. \"shared-datastores\")." - added
Input schema / properties / name / descriptionAdded value: +"The new display name, e.g. \"Shared Datastores (EU)\"." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
restore_secret5 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / name / descriptionAdded value: +"The secret's name — the variable name it is injected as, e.g. \"DATABASE_URL\". Names come from list_secrets; this is never a value." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / version / descriptionAdded value: +"The version number to restore, taken from list_secret_versions. Its ciphertext becomes a new version on top of history — the old version is not removed."
- Changed
revoke_invite2 fields changed- added
Input schema / properties / inviteId / descriptionAdded value: +"The pending invitation's id, from list_invites." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
revoke_lease2 fields changed- added
Input schema / properties / leaseId / descriptionAdded value: +"The lease's id from list_leases (not the target's id — see list_lease_targets)." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
- Changed
revoke_token2 fields changed- added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs." - added
Input schema / properties / tokenId / descriptionAdded value: +"The token's id from list_tokens — not the token string, which is never stored."
- Changed
uncompose_group4 fields changed- added
Input schema / properties / app / descriptionAdded value: +"Application slug or id, as returned by list_apps (e.g. \"storefront\")." - added
Input schema / properties / env / descriptionAdded value: +"Environment slug or id within that application, as returned by list_envs (e.g. \"production\")." - added
Input schema / properties / group / descriptionAdded value: +"Shared-group slug or id, as returned by list_groups (e.g. \"shared-datastores\")." - added
Input schema / properties / org / descriptionAdded value: +"Organization slug or id. Omit it when the credential can reach exactly one org — that org is used automatically. With several, the error names every slug you may pass; list them yourself with list_orgs."
40 tool updates
- First observed
audit - First observed
billing - First observed
compose_group - First observed
create_app - First observed
create_group - First observed
delete_app - First observed
delete_branch - First observed
delete_env - First observed
delete_group - First observed
delete_secret - First observed
get_started - First observed
invite_member - First observed
kms_disable_key - First observed
kms_list_keys - First observed
kms_revoke_grant - First observed
list_apps - First observed
list_branches - First observed
list_env_groups - First observed
list_envs - First observed
list_group_envs - First observed
list_groups - First observed
list_invites - First observed
list_lease_targets - First observed
list_leases - First observed
list_members - First observed
list_orgs - First observed
list_secret_versions - First observed
list_secrets - First observed
list_tokens - First observed
local_tool_for - First observed
rename_app - First observed
rename_group - First observed
restore_secret - First observed
revoke_invite - First observed
revoke_lease - First observed
revoke_token - First observed
setup_local_crypto - First observed
signup - First observed
uncompose_group - First observed
whoami
Related MCP Connectors
A secret store for AI agents: the agent never sees the plaintext.
Secrets for developers and agents—secure context and workflows without exposing secret values.
Encrypted secret store and rotation for autonomous agent credentials
One-time, end-to-end encrypted secrets for agents. 0.005 USDC per secret via x402.
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables AI agents to securely store and manage encrypted secrets locally while using them indirectly through environment-variable injection or file writes, so plaintext values never enter the agent's context.8MIT
- AlicenseAqualityBmaintenanceLocal AES-256-GCM encrypted vault for AI agents. Resolve {{PLACEHOLDER}} secrets in prompts at runtime — LLMs never see real API keys. Argon2id key derivation, zero cloud.2131 npm7MIT
- AlicenseBqualityBmaintenanceEncrypted secrets vault that blinds AI agents to API keys. Stores secrets in AES-256-GCM encrypted SQLite vault, resolves them at runtime via MCP values never appear in LLM conversation transcripts. Sandbox .env files with deterministic fakes.27265 npm3MIT
- FlicenseNot gradedqualityDmaintenanceLocal encrypted vault for API keys. LLMs never see your real keys — the server injects them transparently into HTTP requests.-
Glama MCP Gateway
Add one secure layer between your agents and this server.