Skip to main content
Glama

Import a wallet

import_wallet
DestructiveIdempotent

Replaces the saved wallet with a wallet.yaml from the earnrate command line or earnrate.dev, when the user pastes or attaches one. Wallet files only: never statements or card numbers. If cards are already saved, it refuses unless replace is true: confirm with the user first.

Input Schema

NameRequiredDescriptionDefault
yamlYesThe wallet.yaml text, as the user gave it.
replaceNotrue to replace a wallet that already has cards, after the user confirms.

Output Schema

NameRequiredDescriptionDefault
notesYes
cardIdsYes
createdYes
messageYes
membershipsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / replace
      Added value: +{
      +  "description": "true to replace a wallet that already has cards, after the user confirms.",
      +  "type": "boolean"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true; the description adds the operationally decisive detail those hints cannot convey — the tool refuses when a wallet with cards already exists unless replace=true, and that the user must be asked before setting it. It also discloses input validation (wallet files only). This is exactly the context an agent needs before invoking a destructive replace.

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?

Three short sentences, front-loaded with the action and source, then the input restriction, then the destructive-case guard. Every sentence carries a distinct, load-bearing rule; no restatement of the name or title.

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 destructive two-parameter import with an output schema (so return values need no explanation) and full annotation coverage, the description closes the remaining gaps: accepted source, rejected input, and the confirm-then-replace flow. An agent can invoke it correctly and safely from this text alone.

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% and both parameter descriptions are already explicit, so the baseline is 3. The description goes slightly further by framing `replace` as conditionally meaningful — only necessary when cards are already saved — and tying it to a required user confirmation, which is behavioral context the schema's one-liner implies but does not spell out.

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 (replaces the saved wallet) plus the exact resource (wallet.yaml from earnrate CLI or earnrate.dev) and the trigger (user pastes/attaches one). It also carves the boundary against sibling operations by declaring 'Wallet files only: never statements or card numbers', so an agent can rule out unrelated pasted content.

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?

Gives an explicit trigger ('when the user pastes or attaches one'), an explicit exclusion ('never statements or card numbers'), and the pre-condition path for the risky case: refuses when cards exist unless replace is true, with instruction to confirm with the user first. Nothing about when to call vs. not call is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.