Skip to main content
Glama

Create one-time secret

ncrypted_create

Encrypt a password, API key, or sensitive note locally and generate a single-use link that self-destructs after one read; optionally email the link to a recipient.

Instructions

Encrypt a password, API key, or sensitive note locally and store it as a one-time secret. Returns a link that works exactly once, then self-destructs. The first 3 per day are free (TTL up to 24h, no email); after that each costs 0.005 USDC, paid automatically from the configured Base wallet via x402. Share the returned link with a human, email it (emailTo), or hand it to another agent, which reads it with ncrypted_read. Treat the link like the secret itself; never echo the secret value in chat. Returns { link, id, receiptToken, expiresAt }; keep id and receiptToken to check delivery (ncrypted_status) or revoke the link (ncrypted_burn). Use ncrypted_request instead when you need a secret FROM the user, and ncrypted_to_vercel_env / ncrypted_to_dotenv when a value from a link must be installed somewhere.

Input Schema

NameRequiredDescriptionDefault
secretYesThe sensitive value to share. Max 64 KB.
emailToNoIf the user asks you to email it, pass the address here and ncrypted emails the link once. Needs a paid secret (a funded wallet); without one the call fails with instructions, and you can give the user the link to send instead. The service sees the link for that one request; add a passphrase for highly sensitive values.
emailNoteNoShort context for the email, e.g. 'Staging DB password'. Never include the secret.
passphraseNoOptional second factor. The recipient needs it in addition to the link; deliver it through a different channel.
ttl_secondsNoExpiry if never read. Default 86400 (24h), max 7 days.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: one-read-then-self-destruct semantics, free tier of 3/day at 24h TTL with no email, then 0.005 USDC charged automatically from a Base wallet via x402, and the failure mode if no funded wallet exists. It also adds a security constraint ('never echo the secret value in chat', 'treat the link like the secret itself') and notes the service transiently sees the link on email sends.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence, and every subsequent sentence carries distinct information (return shape, pricing, delivery, safety, alternatives) — nothing is filler. The later sentences are dense and run together return shape, key retention, and three sibling alternatives in one block, which slightly hurts scanability.

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

Completeness5/5

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

No output schema exists, but the description supplies the return shape ({ link, id, receiptToken, expiresAt }) and explains why id and receiptToken matter (ncrypted_status for delivery, ncrypted_burn to revoke). For a 5-param mutation/payment tool with no annotations, this covers cost, auth requirement (funded wallet), irreversibility, and next steps.

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 baseline is 3; the description earns above that by naming emailTo and TTL explicitly and by adding the free-tier constraint on TTL ('up to 24h, no email') that the schema does not state. The passphrase delivery caveat ('different channel') also adds meaning. It does not add much for emailNote or the secret payload beyond the schema.

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?

Specific verb and resource: 'Encrypt a password, API key, or sensitive note locally and store it as a one-time secret. Returns a link that works exactly once, then self-destructs.' It also distinguishes itself from ncrypted_read, ncrypted_request, ncrypted_to_vercel_env and ncrypted_to_dotenv by name, so an agent can pick it without opening sibling schemas.

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

Usage Guidelines5/5

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

Explicit routing: 'Use ncrypted_request instead when you need a secret FROM the user' and ncrypted_to_vercel_env / ncrypted_to_dotenv 'when a value from a link must be installed somewhere.' It also states the delivery options (human, email, another agent) and when email is appropriate ('If the user asks you to email it'), which covers both when to use and when to choose an alternative.

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