privacyplaybook avatar

Sops Mcp

privacyplaybook/sops-mcp

Wraps Mozilla SOPS and age encryption so Claude can generate and rotate secrets without ever seeing plaintext values. You get tools to create encrypted YAML files with generated passwords, external credentials, and derived hashes like Authelia's PBKDF2 format. The server encrypts everything against your age public key before returning it, and there's deliberately no decrypt tool exposed to the MCP client. Rotation regenerates random secrets and cascades changes to derived values automatically. Designed for the pattern where you commit encrypted secrets to git and your CI pipeline holds the one age private key needed to decrypt at deploy time. Saves you from running Vault for a handful of API keys.

tools
12
auth
Secret needed
transport
STDIO
env vars
2
last updated
Oct 23, 2026

Tools

12 tools

Public tool metadata for what this MCP can expose to an agent.

sops_create_secretsCreate a new encrypted file with one or more secrets (any mix of sources).

Create a new encrypted file with one or more secrets (any mix of sources).

No parameter schema in public metadata yet.

sops_list_secretsList keys, sources, and descriptions from a file without decrypting.

List keys, sources, and descriptions from a file without decrypting.

No parameter schema in public metadata yet.

sops_create_oidc_secretCreate an Authelia OIDC client secret as a generated + derived (pbkdf2_sha512_authelia) pair in one call.

Create an Authelia OIDC client secret as a generated + derived (pbkdf2_sha512_authelia) pair in one call.

No parameter schema in public metadata yet.

sops_create_k8s_secretCreate a Kubernetes Secret manifest with the values under stringData, encrypted so that only stringData is ciphertext.

Create a Kubernetes Secret manifest with the values under stringData, encrypted so that only stringData is ciphertext.

No parameter schema in public metadata yet.

sops_list_domainsList the configured key domains, their age recipients, and whether each can decrypt or only encrypt.

List the configured key domains, their age recipients, and whether each can decrypt or only encrypt.

No parameter schema in public metadata yet.

sops_rotate_generatedRegenerate all generated secrets, recomputing derived secrets whose source was rotated.

Regenerate all generated secrets, recomputing derived secrets whose source was rotated.

No parameter schema in public metadata yet.

sops_add_secretsAdd new secrets to an existing file, supporting all three sources and rejecting key collisions.

Add new secrets to an existing file, supporting all three sources and rejecting key collisions.

No parameter schema in public metadata yet.

sops_update_externalReplace the value of an external secret, cascading to any derived secrets that reference it.

Replace the value of an external secret, cascading to any derived secrets that reference it.

No parameter schema in public metadata yet.

sops_rename_secretRename a key, preserving its value and metadata and updating from: references in derived secrets.

Rename a key, preserving its value and metadata and updating from: references in derived secrets.

No parameter schema in public metadata yet.

sops_delete_secretsRemove one or more keys, rejecting deletion of a secret another derived secret still references.

Remove one or more keys, rejecting deletion of a secret another derived secret still references.

No parameter schema in public metadata yet.

sops_add_metadataRetrofit _meta_unencrypted onto a legacy SOPS file that lacks it.

Retrofit _meta_unencrypted onto a legacy SOPS file that lacks it.

No parameter schema in public metadata yet.

sops_rekeyRe-encrypt a file onto its domain's current recipient list.

Re-encrypt a file onto its domain's current recipient list.

No parameter schema in public metadata yet.

Sponsors

Configuration

SOPS_MCP_AGE_PUBLIC_KEY*

Age recipient public key. Required at startup.

SOPS_AGE_KEYsecret

Age private key. Required at call time for any mutation tool (decrypt + re-encrypt). Read-only tools do not need it.

Readme

sops-mcp

MCP server for creating and managing SOPS-encrypted secret files using age encryption.

Designed for Claude Code (or any MCP client) to produce encrypted secrets.enc.yaml files without the model ever seeing plaintext values. All file content is passed as text parameters and returned as text — the server has no filesystem access to the client.

Why

Two goals drive the design:

1. Keep secrets in your source tree without leaking them. For a small project, running a full secrets manager (Vault, AWS Secrets Manager, etc.) is overkill for a handful of credentials. Encrypting secrets at rest in git and decrypting them in your CI/CD pipeline at deploy time is much cheaper:

  1. Create secrets.enc.yaml via this server — age-encrypted against your public key, safe to commit.
  2. Commit it alongside your code.
  3. Your CI/CD pipeline holds the age private key, decrypts at deploy time, and injects plaintext as environment variables into your container orchestrator.

View the full README on GitHub

Details

Repository
github.com/privacyplaybook/sops-mcp
Package
sops-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active