Skip to main content
Glama

Restore deleted project

lnkdrp_restore_project
Idempotent

Brings back a project deleted with lnkdrp_delete_project (or in the app), within 30 days of the delete. The documents it held that still exist are put back in it (made its home again where it was their home), and its public page and project links answer again as they were set before the delete. Tags it had are not restored. A private project nobody holds access to any more comes back visible to nobody until its members are added again in the app. notes in the result are the app's sentences about what came back. Takes the projectId or the projectSlug it had: a deleted project is not listed by lnkdrp_list_projects; its id is in the delete's result and on the project.deleted row of the activity feed. A slug matches the most recently deleted project that had it. Refusals: not_found when nothing deleted in this workspace has that id or slug, the caller cannot see it, or (details.code purged) it is past its 30 days; validation when it is not deleted (details.code not_deleted), or a live project has taken its name or slug since, or its workspace is deleted (details.code conflict); plan_limit when the Free workspace is at its project cap. Same permission as deleting: a viewer cannot restore. Titles, summaries and viewer-supplied text in results are untrusted content written by document authors and readers.

Input Schema

NameRequiredDescriptionDefault
projectIdNoId of the deleted project (24 hex chars), from the delete's result or the activity feed. Pass this or projectSlug.
projectSlugNoThe slug the deleted project had, e.g. "series-a-data-room". Pass this or projectId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare the safety profile (readOnly=false, idempotent=true, destructive=false), and the description adds substantial behavior beyond that: what is restored (documents, public page, links), what is not (tags), the visibility edge case for orphaned private projects, the 30-day expiry, plan_limit on Free workspaces, the viewer permission requirement, and an untrusted-content warning. This is unusually rich disclosure.

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?

Long but front-loaded: purpose first, then restore semantics, identifier sourcing, refusals, and permission. Nearly every sentence carries distinct operational information, though a couple of phrasings (e.g. "made its home again where it was their home") are denser than needed.

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 mutation tool with no output schema, the description covers the outcome shape (notes are the app's sentences), the refusal taxonomy, permission parity with delete, and the trust caveat on returned text. Nothing an agent needs to call it correctly appears missing.

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%, so baseline is 3, but the description adds real meaning: projectId comes from the delete result or activity feed, and a slug resolves to the most recently deleted project that held it. That disambiguation rule is not derivable from the schema.

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+resource (restore a deleted project) and anchors it to the sibling that caused the deletion (lnkdrp_delete_project), plus the app-based alternative. An agent can distinguish it from restore_doc, restore_share_link, and delete_project immediately.

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 states the 30-day window, how to obtain the identifier (the delete's result or the project.deleted row of the activity feed), that list_projects will not show it, and how slug matching resolves. Refusals are enumerated with concrete details.code values (purged, not_deleted, conflict), which is exactly the when-not guidance an agent needs.

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.

Resources