Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

Restore a Deleted Item

restore_deleted
Idempotent

Undo a delete: restores a watchlist, signal or report that delete_* archived, a rule, citation override or uploaded document that delete_* removed, a memory entry removed by delete_agent_memory (id = its key), an inbox item hidden by dismiss_inbox_item (id = inbox_id), a task cancelled by cancel_scheduled_task (id = task_id), or a standing agent removed by delete_agent (id = agent_id). The record returns to the state it held before the delete — a paused signal comes back paused. When the item was deleted before the server began recording its prior state, prior_status_known is false and the response says which default was used. A restored report returns to its prior status AND visibility, so a report that was public comes back public and one that was private stays private; when that state predates the change that began recording it, the report returns private and prior_status_known is false rather than guessing at publication. A restored rule resumes evaluating (refused if the signal cap is full). A citation override is restorable until a new save for the same fact_id replaces it (pass the fact_id as id). An uploaded document is restorable only while it is within its 24h TTL and its file still exists; otherwise the call fails with an expired error. A memory entry re-written since its delete is not overwritten (refused with key_taken; nothing changes); a cancelled task is restorable only while its wake time is still in the future and the tier's outstanding-task cap has room (completed and owner-inactive tasks are not restorable). A restored agent returns enabled or paused as it was, and a scheduled slot that passed while it was deleted moves to the next one, so restoring never fires a run; refused (id_taken) if a live agent holds the id. Idempotent: restoring a live item succeeds and changes nothing. Tier: paid + free (sample rejected).

Input Schema

NameRequiredDescriptionDefault
idYesThe record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse. For a rule, the `rule_id`; for a citation override, its `fact_id`; for an uploaded document, its `upload_id`; for agent_memory the memory key (up to 128 chars); for inbox_item the `inbox_id`; for scheduled_task the `task_id`; for agent the `agent_id`.
kindYesWhich record type to restore.

Output Schema

NameRequiredDescriptionDefault
idYes
kindYes
_metaYesProvenance envelope — data lineage for every MCP response
statusYes
prior_status_knownYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "rule",
      -  "citation_override",
      -  "uploaded_document",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task",
      -  "agent"
      -]New value: +[
      +  "watchlist",
      +  "signal",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task",
      +  "agent"
      +]
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "rule",
      -  "citation_override",
      -  "uploaded_document",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task",
      -  "agent"
      -]New value: +[
      +  "watchlist",
      +  "signal",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task",
      +  "agent"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."New value: +"payg_charge = real pay-per-call charge (a card or MPP payment through agent-pay). payg_rate_card = indicative price, not billed."
  3. Changed2 schema fields changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed."New value: +"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / billed / description
      Previous value: -"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free."New value: +"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value only: no charge was made for this call (it was within your plan)."
  4. Changed3 schema fields changed
    • changedInput schema / properties / id / description
      Previous value: -"The record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse. For a rule, the `rule_id`; for a citation override, its `fact_id`; for an uploaded document, its `upload_id`; for agent_memory the memory key (up to 128 chars); for inbox_item the `inbox_id`; for scheduled_task the `task_id`."New value: +"The record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse. For a rule, the `rule_id`; for a citation override, its `fact_id`; for an uploaded document, its `upload_id`; for agent_memory the memory key (up to 128 chars); for inbox_item the `inbox_id`; for scheduled_task the `task_id`; for agent the `agent_id`."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "rule",
      -  "citation_override",
      -  "uploaded_document",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task",
      +  "agent"
      +]
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "rule",
      -  "citation_override",
      -  "uploaded_document",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task",
      +  "agent"
      +]
  5. Changed4 schema fields changed
    • changedInput schema / properties / id / description
      Previous value: -"The record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse. For agent_memory it is the memory key (up to 128 chars), for inbox_item the `inbox_id`, for scheduled_task the `task_id`."New value: +"The record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse. For a rule, the `rule_id`; for a citation override, its `fact_id`; for an uploaded document, its `upload_id`; for agent_memory the memory key (up to 128 chars); for inbox_item the `inbox_id`; for scheduled_task the `task_id`."
    • changedInput schema / properties / kind / description
      Previous value: -"Which record type to restore. Citation overrides are not restorable."New value: +"Which record type to restore."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task"
      +]
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "signal",
      -  "claim",
      -  "report",
      -  "agent_memory",
      -  "inbox_item",
      -  "scheduled_task"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report",
      +  "rule",
      +  "citation_override",
      +  "uploaded_document",
      +  "agent_memory",
      +  "inbox_item",
      +  "scheduled_task"
      +]
  6. Added
  7. Removed
  8. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to."New value: +"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
  9. Changed2 schema fields changed
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "alert",
      -  "claim",
      -  "report"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report"
      +]
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "alert",
      -  "claim",
      -  "report"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "signal",
      +  "claim",
      +  "report"
      +]
  10. Changed3 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Which record type to restore. Reports and citation overrides are not restorable."New value: +"Which record type to restore. Citation overrides are not restorable."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "alert",
      -  "claim"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "alert",
      +  "claim",
      +  "report"
      +]
    • changedOutput schema / properties / kind / enum
      Previous value: -[
      -  "thesis",
      -  "watchlist",
      -  "alert",
      -  "claim"
      -]New value: +[
      +  "thesis",
      +  "watchlist",
      +  "alert",
      +  "claim",
      +  "report"
      +]
  11. Added

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses extensive behavioral detail: prior-state restoration, fallback defaults when prior state is unknown, report visibility rules, rule evaluation resumption, citation override precedence, upload TTL and file-existence constraints, memory key-taken refusals, task timing and cap constraints, agent slot handling, and idempotent success on live items. This is unusually rich context for a mutation tool.

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 definition front-loads the core action and then packs each sentence with a specific restoration rule or edge case. It is dense and could be easier to scan with bullets, but for a tool covering ten record kinds and many conditional behaviors, nearly every sentence earns its place.

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?

Given the tool's complexity across ten record types, the presence of an output schema, and detailed annotations, the description is complete enough for correct invocation. It covers restoration outcomes, failure modes, idempotency, prior-state ambiguity, and access tier without needing to explain return values.

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 100%, so the schema already documents the meaning of `kind` and the per-kind `id` mapping in detail. The description reinforces some of this (e.g., fact_id for citation overrides, memory key, inbox_id, task_id, agent_id) but primarily adds behavioral conditions rather than new parameter syntax or semantics.

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?

The description opens with a specific verb and outcome ('Undo a delete: restores...') and enumerates the exact record types it handles, including the delete_* and other sibling tools that produced each deleted state. An agent can distinguish this from all sibling tools without opening the schema.

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

Usage Guidelines4/5

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

The description clearly establishes when to use the tool by listing which deletion operations it reverses and under what conditions restoration succeeds or is refused. It does not explicitly name an alternative tool to use instead, but no sibling restore tool exists, so the guidance is effectively complete.

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.