Skip to main content
Glama
privacyplaybook

sops-mcp

sops_create_k8s_secret

Create SOPS-encrypted Kubernetes Secret manifests with readable metadata and encrypted stringData, ready for sops, ksops, or Flux to decrypt and apply.

Instructions

Create a Kubernetes Secret manifest (apiVersion v1, kind Secret) with its values under stringData, SOPS-encrypted so that only data/stringData is ciphertext and apiVersion, kind, metadata and type stay readable. The result decrypts with sops -d, ksops or Flux straight into an applyable manifest; commit it exactly as returned. Secrets take the same sources as sops_create_secrets. The file is create-only: every other mutation tool refuses it, so to change or rotate anything, call this tool again with the full set. Metadata (domain, sources, generation parameters, never a value) goes in the sops-mcp.privacyplaybook.com/meta annotation.

Input Schema

NameRequiredDescriptionDefault
nameYesmetadata.name: a lowercase RFC 1123 DNS subdomain
typeNoSecret type, e.g. Opaque or kubernetes.io/tlsOpaque
domainNoName of the key domain to encrypt to / decrypt with. Optional. Defaults to the domain recorded in the file's _meta_unencrypted block, and failing that to 'default'. Call sops_list_domains to see what this server has configured.
labelsNometadata.labels (optional)
secretsYesSecrets to place under stringData
namespaceNometadata.namespace (optional): a lowercase RFC 1123 DNS label
annotationsNometadata.annotations (optional). sops-mcp.privacyplaybook.com/meta is reserved.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.12.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does it well: it discloses the encryption boundary (only data/stringData is ciphertext), the interoperability contract (sops -d, ksops, Flux), the immutability rule ('every other mutation tool refuses it'), and the privacy guarantee that the reserved meta annotation never contains a value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with what is produced, then interoperability, then the create-only constraint, then the metadata convention. No restatement of the name or filler; each sentence carries a distinct, actionable fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter nested-schema mutation tool with no annotations and no output schema, it covers encryption model, output usability ('commit it exactly as returned'), immutability, and metadata placement. It stops short of describing failure modes (e.g., missing/invalid domain, key conflicts) or where the manifest is written, which would round out the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already handles per-parameter meaning and the baseline is 3. The description still adds value by explaining that secrets accept the same source set as sops_create_secrets and by specifying what belongs in the reserved sops-mcp.privacyplaybook.com/meta annotation (domain, sources, generation parameters, never a value) — semantics the schema only gestures at.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a Kubernetes Secret manifest') plus the exact on-disk shape (apiVersion v1, kind Secret, values under stringData, only data/stringData encrypted). It is clearly separable from siblings like sops_create_secrets and sops_add_secrets, which it implicitly contrasts by calling its output create-only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent that the file is create-only, that every other mutation tool will refuse it, and that changes or rotation require re-calling this tool with the full set — a strong when/when-not signal. It does not explicitly contrast creation with the dedicated rotation/add siblings by name, so the routing is slightly less than fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.