# seekrit (local crypto plane) (npm · @seekrit/mcp)

Zero-knowledge secrets manager — local crypto-plane MCP server: decrypts and injects secrets.

- Trust score: 59/100 (low)
- Change this week: +40
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@seekrit/mcp`: 59/100 (this document), [markdown](https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp.md), [page](https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp)

## Channel facts

- Registry: `npm`
- Package: `@seekrit/mcp`
- Version: `0.6.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 6/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 8 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 75/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3075 tokens (~66/item across 46 items; 46 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 78/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 33% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add dev-seekrit-mcp -- npx -y @seekrit/mcp
```

### Codex

```bash
codex mcp add dev-seekrit-mcp -- npx -y @seekrit/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-seekrit-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@seekrit/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dev-seekrit-mcp --command npx --arg -y --arg @seekrit/mcp
```

### Hermes

```yaml
mcp_servers:
  dev-seekrit-mcp:
    command: "npx"
    args: ["-y", "@seekrit/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "dev-seekrit-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@seekrit/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 58, +38)

- [security regression] Install scripts: pass → unverified
- [security regression] Provenance: fail → unverified
- [security improvement] Known CVEs: unverified → partial
- [functional regression] Maintenance: pass → unverified
- [functional regression] License: fail → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass

### 2026-08-01 (score 20, −28)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified

### 2026-07-31 (score 48, +48)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 0, −49)

- [security regression] Known CVEs: partial → unverified
- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [functional regression] Maintenance: pass → unverified
- [functional regression] License: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-29 (score 49, +47)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [functional regression] License: unverified → fail
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 2, −17)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 19)

First indexed and scored.

## MCP tools (46)

### `get_started` (~34 tokens)

The recommended first-project recipe: provision structure, store secrets, and use them without exposing values. Call this before doing anything else.

### `whoami` (~21 tokens)

Show the authenticated identity, its role, and accessible orgs.

### `list_orgs` (~16 tokens)

List organizations the caller can access.

### `list_apps` (~21 tokens)

List applications in an organization.

Input parameters:

- `org` (string)

### `list_envs` (~29 tokens)

List environments of an application.

Input parameters:

- `app` (string, required)
- `org` (string)

### `list_groups` (~28 tokens)

List shared groups (reusable secret bags) in an organization.

Input parameters:

- `org` (string)

### `list_group_envs` (~35 tokens)

List a group's environments (per-slug value sets).

Input parameters:

- `group` (string, required)
- `org` (string)

### `list_env_groups` (~43 tokens)

List the groups composed into an application environment (precedence order).

Input parameters:

- `app` (string, required)
- `env` (string, required)
- `org` (string)

### `list_members` (~27 tokens)

List organization members and their public keys (for granting access).

Input parameters:

- `org` (string)

### `kms_list_keys` (~29 tokens)

List managed KMS keys the caller can see (metadata only).

Input parameters:

- `org` (string)

### `kms_create_key` (~89 tokens)

Create an org-scoped managed key. Material is generated locally and wrapped to each grantee (self plus any listed users/tokens); the server never sees it. Use the CLI for app/group-scoped keys.

Input parameters:

- `grantTokens` (array)
- `grantUsers` (array)
- `name` (string, required)
- `org` (string)
- `purpose` (string, required)

### `kms_grant` (~55 tokens)

Grant a principal (user email or token id) use of a key's current version.

Input parameters:

- `key` (string, required)
- `org` (string)
- `token` (string)
- `user` (string)

### `kms_encrypt` (~73 tokens)

Encrypt a value under a managed encrypt key; returns a ce1 ciphertext blob. `context` (if given) is bound as AAD and must be supplied identically to decrypt.

Input parameters:

- `context` (string)
- `key` (string, required)
- `org` (string)
- `plaintext` (string, required)

### `kms_decrypt` (~54 tokens)

Decrypt a ce1 blob. Supply the same `context` used to encrypt.

Input parameters:

- `ciphertext` (string, required)
- `context` (string)
- `key` (string, required)
- `org` (string)

### `kms_generate_data_key` (~53 tokens)

Generate a data key under a managed encrypt key (envelope encryption). Returns the plaintext key (base64) and its wrapped form to store.

Input parameters:

- `key` (string, required)
- `org` (string)

### `kms_sign` (~45 tokens)

Sign a message with a managed signing key; returns an sg1 signature blob.

Input parameters:

- `key` (string, required)
- `message` (string, required)
- `org` (string)

### `kms_verify` (~57 tokens)

Verify an sg1 signature over a message using a signing key's published public key (no grant needed).

Input parameters:

- `key` (string, required)
- `message` (string, required)
- `org` (string)
- `signature` (string, required)

### `list_secrets` (~89 tokens)

List secret names + versions in an environment (never values).

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `org` (string): organization slug or id (defaults to a lone org)

### `list_tokens` (~27 tokens)

List an organization's service tokens (never the secret token strings).

Input parameters:

- `org` (string)

### `audit` (~47 tokens)

Read the organization's audit trail (most recent first).

Input parameters:

- `action` (string): filter by action, e.g. secret.updated
- `limit` (integer)
- `org` (string)

### `create_org` (~41 tokens)

Create an organization. Requires a user session — service tokens cannot own a Stytch org.

Input parameters:

- `name` (string, required)
- `slug` (string, required)

### `create_app` (~36 tokens)

Create an application in an organization.

Input parameters:

- `name` (string, required)
- `org` (string)
- `slug` (string, required)

### `create_group` (~43 tokens)

Create a shared group (reusable secret bag) in an organization.

Input parameters:

- `name` (string, required)
- `org` (string)
- `slug` (string, required)

### `create_env` (~53 tokens)

Create an application environment. Generates the data key locally and grants it to the caller.

Input parameters:

- `app` (string, required)
- `name` (string, required)
- `org` (string)
- `slug` (string, required)

### `create_group_env` (~54 tokens)

Create a group environment. Generates the data key locally and grants it to the caller.

Input parameters:

- `group` (string, required)
- `name` (string, required)
- `org` (string)
- `slug` (string, required)

### `compose_group` (~58 tokens)

Compose a group into an application environment (higher position wins on name clashes).

Input parameters:

- `app` (string, required)
- `env` (string, required)
- `group` (string, required)
- `org` (string)
- `position` (integer)

### `uncompose_group` (~46 tokens)

Remove a composed group from an application environment.

Input parameters:

- `app` (string, required)
- `env` (string, required)
- `group` (string, required)
- `org` (string)

### `set_secret` (~101 tokens)

Encrypt a value locally and store it in an environment.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `name` (string, required)
- `org` (string): organization slug or id (defaults to a lone org)
- `value` (string, required)

### `get_secret` (~158 tokens)

Return one secret. By default only reports presence + version; pass reveal:true to decrypt the plaintext into this response (avoid unless the value is actually needed — prefer run_command). Pass `version` to read an earlier version instead of the current one.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `name` (string, required)
- `org` (string): organization slug or id (defaults to a lone org)
- `reveal` (boolean)
- `version` (integer): an earlier version from list_secret_versions (default: current)

### `list_secret_versions` (~139 tokens)

List a secret's version history: who wrote each version, when, and which ones were restores. Never returns values — pair it with restore_secret to roll back, or get_secret(version, reveal:true) to inspect one.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `limit` (integer): default 20
- `name` (string, required)
- `org` (string): organization slug or id (defaults to a lone org)

### `restore_secret` (~135 tokens)

Roll a secret back to an earlier version. The stored ciphertext is replayed as a NEW version (history is append-only, nothing is overwritten). Keyless — no decryption happens, so this works even without a key.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `name` (string, required)
- `org` (string): organization slug or id (defaults to a lone org)
- `version` (integer, required)

### `delete_secret` (~90 tokens)

Delete a secret from an environment.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `name` (string, required)
- `org` (string): organization slug or id (defaults to a lone org)

### `run_command` (~137 tokens)

Run a command with the resolved secrets injected as environment variables, and return its exit code + captured output. Secret VALUES are never returned — this is the preferred way to use secrets. process env > .env > app env > groups.

Input parameters:

- `app` (string)
- `args` (array)
- `command` (string, required): executable to run
- `cwd` (string)
- `env` (string): environment slug (token auth infers this)
- `envFile` (array): .env files to overlay (default [.env])
- `org` (string)
- `with` (object): group=env slice overrides

### `export_env` (~84 tokens)

Write the resolved secrets to a dotenv file on disk and return the variable names written (never the values). Use to materialize a .env for local tooling.

Input parameters:

- `app` (string)
- `env` (string)
- `file` (string, required): path to write, e.g. .env
- `org` (string)
- `with` (object)

### `create_token` (~137 tokens)

Mint a service token, printed once. Runtime tokens bind to one app environment (auto-granted its keys, so a command/agent can decrypt it). Pass admin:true for an org-scoped provisioning token (create apps/groups/envs, grant, mint tokens) — admin tokens need no env binding.

Input parameters:

- `admin` (boolean): mint an org-scoped admin token
- `app` (string): bind to this app (runtime tokens)
- `env` (string): bind to this env (runtime tokens)
- `name` (string, required): display name, e.g. ci-deploy or agent-session
- `org` (string)

### `revoke_token` (~31 tokens)

Revoke a service token by id.

Input parameters:

- `org` (string)
- `tokenId` (string, required)

### `grant_env` (~142 tokens)

Grant a member (by email) or service token (by id) access to an environment's data key. Re-wraps the DEK to the grantee — the caller must already hold the key.

Input parameters:

- `app` (string): application slug or id (or set via configure_project)
- `env` (string): environment slug or id (a service token infers its own)
- `group` (string): target a group environment instead of an app
- `org` (string): organization slug or id (defaults to a lone org)
- `token` (string): service token id (skt_…)
- `user` (string): org member email

### `list_pg_targets` (~26 tokens)

List registered Postgres provisioning targets for temporary credentials.

Input parameters:

- `org` (string)

### `create_pg_lease` (~124 tokens)

Mint a short-lived Postgres credential against a target and return a ready-to-use connection URL. The password is generated on THIS machine and only its SCRAM verifier is sent to the API — the plaintext never reaches seekrit or Postgres at rest. The role auto-expires; revoke early with revoke_pg_lease.

Input parameters:

- `org` (string)
- `role` (string): role name to create (default: random tmp_ name)
- `target` (string, required): target id or name
- `ttlSeconds` (integer): lifetime (default 3600)

### `list_pg_leases` (~29 tokens)

List Postgres leases (the ledger — never secret material).

Input parameters:

- `org` (string)

### `revoke_pg_lease` (~38 tokens)

Revoke a Postgres lease now (drops the role immediately).

Input parameters:

- `leaseId` (string, required)
- `org` (string)

### `list_mysql_targets` (~29 tokens)

List registered MySQL/MariaDB provisioning targets for temporary credentials.

Input parameters:

- `org` (string)

### `create_mysql_lease` (~128 tokens)

Mint a short-lived MySQL/MariaDB credential against a target and return a ready-to-use connection URL. The password is generated on THIS machine and only its mysql_native_password hash is sent to the API — the plaintext never reaches seekrit or MySQL at rest. The user auto-expires; revoke early with revoke_mysql_lease.

Input parameters:

- `org` (string)
- `target` (string, required): target id or name
- `ttlSeconds` (integer): lifetime (default 3600)
- `user` (string): user name to create (default: random tmp_ name)

### `list_mysql_leases` (~32 tokens)

List MySQL/MariaDB leases (the ledger — never secret material).

Input parameters:

- `org` (string)

### `revoke_mysql_lease` (~41 tokens)

Revoke a MySQL/MariaDB lease now (drops the user immediately).

Input parameters:

- `leaseId` (string, required)
- `org` (string)

### `configure_project` (~59 tokens)

Link a directory to an org/app by writing seekrit.json (like `seekrit init`). The environment is chosen by the service token at runtime.

Input parameters:

- `app` (string, required)
- `dir` (string)
- `org` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp#diagnostics

## Score history

- 2026-08-03: 59
- 2026-08-02: 58
- 2026-08-01: 20
- 2026-07-31: 48
- 2026-07-30: 0
- 2026-07-29: 49
- 2026-07-28: 2
- 2026-07-27: 19

## Links

- npm package: https://www.npmjs.com/package/@seekrit/mcp
- Socket report: https://socket.dev/npm/package/@seekrit/mcp
- Changelog RSS feed: https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/dev-seekrit-mcp/seekrit-mcp
