Skip to main content
Glama

Read one-time secret

ncrypted_read
Destructive

Decrypts a single-use ncrypted link locally and returns the secret while permanently destroying it so it cannot be read again.

Instructions

Open an ncrypted link (https://.../s/{id}#{key}), decrypt it locally and return the secret. This destroys the secret: it can never be read again. Free. Use the value only for the task at hand and do not repeat it in chat. If the value just needs to end up in a Vercel env var or .env file, use ncrypted_to_vercel_env or ncrypted_to_dotenv instead so you never see it. To check whether someone opened a link you created, use ncrypted_status (it doesn't consume anything).

Input Schema

NameRequiredDescriptionDefault
linkYesThe full ncrypted link including the #key fragment.
passphraseNoRequired only if the sender set a passphrase.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, and the description supplies the concrete consequence beyond that: the secret is consumed on read and can never be read again. It also adds cost (free) and a confidentiality constraint, which annotations cannot express.

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?

Severity is front-loaded: what the tool does, then the irreversible destruction, then the alternatives. Every sentence carries distinct information (destruction, cost, handling rule, two alternative routes) with no redundancy.

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?

For a two-parameter tool with no output schema, the description covers the return ('the secret'), the destructive side effect, the privacy handling rule, and the alternative paths an agent might mistakenly choose. Nothing needed to call this correctly is missing.

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

Parameters3/5

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

Both parameters are fully documented in the schema (100% coverage), including the passphrase's conditional requirement and the need for the #key fragment. The description restates the link format including the fragment but adds no new syntax or edge-case guidance, so baseline 3 applies.

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 concrete verb chain (open link, decrypt locally, return secret) and the exact resource shape (https://.../s/{id}#{key}). It is unmistakably the consumption/read path of the ncrypted family, distinct from create, status, and the env-writing siblings.

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?

Explicitly routes to alternatives with conditions: use ncrypted_to_vercel_env or ncrypted_to_dotenv when the value only needs to land in an env var so the agent never sees it, and use ncrypted_status to check opens without consuming. It also states the in-task handling rule (use only for the task, don't echo in chat), which is a usage constraint, not filler.

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