Secrets are encrypted credentials — API keys, database URLs, tokens — that agents and routines reference by name at runtime. Paperclip stores secret values using a pluggable provider model supporting local encryption, AWS Secrets Manager, GCP Secret Manager, and HashiCorp Vault. The four secret tools cover the full lifecycle: create new secrets, list existing ones by name, update metadata without touching the value, and rotate the value to a new version.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bruhsb/paperclip-mcp/llms.txt
Use this file to discover all available pages before exploring further.
Secret values are write-only. They are stored encrypted on creation and rotation, but are never returned in any API response — not in list, not in get, not after update. The list tool returns metadata only: name, provider, version, and timestamps.
List Secrets
Audit registered secrets by name — values never returned
Create Secret
Register a new encrypted credential for a company
Update Secret
Rename or re-describe a secret without changing its value
Rotate Secret
Replace a secret’s value, incrementing the version counter
paperclip_list_secrets
List secrets registered for a company. Returns metadata only — secret values are never included in any response.Company UUID. Secrets are scoped per company.
Maximum secrets per page. Range 1–100. Defaults to
50.Number of secrets to skip for pagination. Defaults to
0.Output format.
markdown (default) produces a human-readable list; json returns a structured envelope.{ items: Secret[], total, count, offset, limit, has_more, next_offset }. Each Secret item contains: id, companyId, name, provider, externalRef, latestVersion, description, createdByAgentId, createdByUserId, createdAt, updatedAt. The value field is never present.
Usage notes:
- Use to audit which credentials are registered for a company and check their current version.
- To rotate or update a secret, obtain its
idfrom this tool, then callpaperclip_rotate_secretorpaperclip_update_secret.
| Code | Meaning | Resolution |
|---|---|---|
| 401 | Authentication failed | Check PAPERCLIP_API_KEY |
| 403 | Permission denied | Requires board API key |
paperclip_create_secret
Create a new secret for a company. The value is stored encrypted immediately and is never returned in any subsequent response.Company UUID. The secret will be scoped to this company.
Secret name — typically an environment-variable-style identifier (e.g.
DATABASE_URL, OPENAI_API_KEY). Must be non-empty and unique within the company.The secret value. Stored encrypted; never returned in any API response.
Storage provider backend. Defaults to
local_encrypted. Use cloud providers when the secret must also be managed externally.Human-readable description of what this secret is used for. Pass
null to store no description.External reference string, e.g. an AWS Secrets Manager ARN. Relevant when using cloud providers.
id, companyId, name, provider, externalRef, latestVersion (starts at 1), description, createdByAgentId, createdByUserId, createdAt, updatedAt. Value is never returned.
Usage notes:
- Use when registering a new credential or API key that agents will reference by name.
- If the secret name already exists, use
paperclip_rotate_secretto update its value — creating a duplicate name returns 409.
| Code | Meaning | Resolution |
|---|---|---|
| 400 | Validation error | Ensure name and value are non-empty |
| 401 | Authentication failed | Check PAPERCLIP_API_KEY |
| 403 | Permission denied | Requires board API key |
| 409 | Secret name already exists | Use paperclip_rotate_secret to update the existing secret’s value |
paperclip_update_secret
Update a secret’s metadata — name, description, or external reference — without changing its value. To change the value, usepaperclip_rotate_secret.
Secret UUID. Obtain from
paperclip_list_secrets.New secret name. Must be non-empty if provided.
New description. Pass
null to clear an existing description.New external reference (e.g. updated ARN). Pass
null to clear.id, companyId, name, provider, externalRef, latestVersion, description, timestamps. Value is never returned.
Usage notes:
- Use when renaming a secret after a service migration, or updating its description for documentation purposes.
- The
valuefield is not accepted by this tool — usepaperclip_rotate_secretto change the actual credential. - This operation is idempotent — calling it multiple times with the same values is safe.
| Code | Meaning | Resolution |
|---|---|---|
| 401 | Authentication failed | Check PAPERCLIP_API_KEY |
| 403 | Permission denied | Requires board API key |
| 404 | Secret not found | Verify secretId with paperclip_list_secrets |
paperclip_rotate_secret
Rotate a secret to a new value, incrementing its version counter. Each call advanceslatestVersion by one (v1 → v2 → v3). Previous version references remain valid unless explicitly purged.
Secret UUID. Obtain from
paperclip_list_secrets.New secret value. Stored encrypted; never returned in any response.
Updated external reference after rotation (e.g. new ARN). Pass
null to clear the existing reference.latestVersion: id, companyId, name, provider, externalRef, latestVersion, description, timestamps. Value is never returned.
Usage notes:
- Use when rotating a compromised or expiring credential. Each call increments
latestVersion. - To rename or update the description without changing the value, use
paperclip_update_secretinstead.
| Code | Meaning | Resolution |
|---|---|---|
| 401 | Authentication failed | Check PAPERCLIP_API_KEY |
| 403 | Permission denied | Requires board API key |
| 404 | Secret not found | Verify secretId with paperclip_list_secrets |