Skip to main content
Glama

FinBridge

Restore a Past Portfolio

restore_portfolio_snapshot
Destructive

Roll the stored portfolio back to a past snapshot from get_portfolio_history, replacing ALL current holdings and assets with that snapshot's content. Use this to undo a bad import_portfolio call. Omit snapshot_id to restore the snapshot immediately before the current state (undo the last change). This action is itself recorded as a new snapshot — history is append-only, so restoring is itself reversible the same way. Tell the user what was restored (get_portfolio afterwards shows it valued at current prices).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
snapshot_idNoSnapshot id from get_portfolio_history. Omit to restore the one immediately before the latest.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
notesNo
assetsNo
holdingsNo
snapshotNo
restored_fromNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false; the description goes further by disclosing that ALL holdings are replaced, that the restore is itself recorded as a new snapshot, and that history is append-only so the action is reversible the same way. It also flags a user-facing consequence (tell the user what was restored).

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?

Front-loads the destructive scope in the first sentence, then usage, then reversibility. Four sentences with little waste, though the closing parenthetical about get_portfolio valuation is marginally decorative.

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, non-idempotent mutation with an output schema present, the description covers scope of destruction, the optional-parameter fallback, and the reversibility model. It tells the agent everything needed to call it responsibly without explaining return values.

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 the schema already documents the omit behavior, but the description adds interpretive meaning by framing omission as 'undo the last change' and restating the fallback semantics in plain language. This is a modest value-add over the baseline 3.

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 (roll back/restore) and resource (stored portfolio snapshot), names the source (get_portfolio_history), and specifies scope ('replacing ALL current holdings and assets'). It is clearly distinguishable from siblings like import_portfolio and get_portfolio_history.

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 explicit when-to-use ('to undo a bad import_portfolio call') and a precise operating rule for the optional parameter (omit snapshot_id to undo the last change). The alternative tools are named and tied to the condition that selects them.

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.