Skip to main content
Glama

unarchive_wallets

Restore archived cryptocurrency wallets to active status for wallet management operations. This tool accepts a list of wallet names and returns their unarchive status, enabling reactivation of previously archived wallets.

Instructions

Unarchive wallets.

Expects a list of wallet names, returns a list of WalletArchiveOrUnarchiveResponse.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
unarchive_wallet_requestsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • MCP tool handler for 'unarchive_wallets'. This is the main execution function registered via @mcp.tool(), handling the tool call by delegating to the ArmorWalletAPIClient.
    @mcp.tool()
    async def unarchive_wallets(unarchive_wallet_requests: UnarchiveWalletRequestContainer) -> List[WalletArchiveOrUnarchiveResponse]:
        """
        Unarchive wallets.
        
        Expects a list of wallet names, returns a list of WalletArchiveOrUnarchiveResponse.
        """
        if not armor_client:
            return [{"error": "Not logged in"}]
        try:
            result: List[WalletArchiveOrUnarchiveResponse] = await armor_client.unarchive_wallets(unarchive_wallet_requests)
            return result
        except Exception as e:
            return [{"error": str(e)}]
  • Pydantic model defining the input schema for a single unarchive wallet request.
    class UnarchiveWalletsRequest(BaseModel):
        wallet: str = Field(description="Name of the wallet to unarchive")
  • Pydantic model for container holding a list of UnarchiveWalletsRequest, used as input to the MCP handler.
    class UnarchiveWalletRequestContainer(BaseModel):
        unarchive_wallet_requests: List[UnarchiveWalletsRequest]
  • Implementation in ArmorWalletAPIClient that performs the HTTP POST to '/wallets/unarchive/' API endpoint to unarchive wallets.
    async def unarchive_wallets(self, data: UnarchiveWalletsRequest) -> List[WalletArchiveOrUnarchiveResponse]:
        """Unarchive the wallets specified in the list."""
        # payload = json.dumps([{"wallet": wallet_name} for wallet_name in data.wallet_names])
        payload = data.model_dump(exclude_none=True)['unarchive_wallet_requests']
        return await self._api_call("POST", "wallets/unarchive/", payload)
  • @mcp.tool() decorator registers the unarchive_wallets function as an MCP tool.
    @mcp.tool()
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the input format ('list of wallet names') and output type ('WalletArchiveOrUnarchiveResponse'), but lacks critical details: whether this requires specific permissions, if it's reversible, what happens to archived data, or any rate limits. For a mutation tool with zero annotation coverage, this is insufficient.

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?

The description is brief and front-loaded with the core action. Both sentences add value: the first states the purpose, the second specifies input and output. There's no redundant information, though it could benefit from more detail given the tool's complexity.

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

Completeness3/5

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

Given that there's an output schema (which handles return values), the description doesn't need to explain outputs. However, for a mutation tool with no annotations and 0% schema coverage, the description is incomplete: it lacks error handling, side effects, and usage context. It provides a basic framework but misses key operational details.

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?

Schema description coverage is 0%, so the description must compensate. It clarifies that the parameter expects 'a list of wallet names', adding meaning beyond the schema's generic 'UnarchiveWalletRequestContainer'. However, it doesn't explain the structure of this list (e.g., format, constraints, or what constitutes a valid wallet name), leaving gaps in parameter understanding.

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

Purpose3/5

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

The description states the verb ('unarchive') and resource ('wallets'), making the basic purpose clear. However, it doesn't differentiate from the sibling tool 'unarchive_wallet_group', leaving ambiguity about whether this tool handles individual wallets versus groups. The purpose is stated but lacks specificity about scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'unarchive_wallet_group' or 'archive_wallets'. The description doesn't mention prerequisites, constraints, or typical use cases, leaving the agent to infer usage from context alone.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/emmaThompson07/armor-crypto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server