Skip to main content
Glama

Publish a draft

lnkdrp_publish_draft
DestructiveIdempotent

Makes a draft (lnkdrp_stage_pdf) the live version of its document, with the next version number: every share link and project room serves it at once, as after lnkdrp_replace_pdf, and nothing is processed again (an archived document's links stay offline until it is brought back; the reply says docArchived: true). Its compare becomes the version's change record when the live version has not moved since the draft was compared; otherwise the version gets a plain record (compare: none). summary: kept when its text matches the live version it was compared with (the document's summary stays, no credit); queued when a new summary is being written; not_queued when it could not be queued, and the document page offers to write it. The version that was live stays in the history, and lnkdrp_restore_version can make it current again. uploadId names the draft; without it, this connection's own open draft, else the only open one. Who may publish: the document's owner (who uploaded it), workspace owners and admins, and up to 5 people listed with lnkdrp_set_doc_publishers, or every member when the document (or the workspace's default, for a document that follows it) is set to everyone (viewers excluded); any other member is refused with forbidden (details.code publisher_required, details.publishers, details.reviewUrl) and can stage a draft (lnkdrp_stage_pdf) instead. Listed people and everyone are Pro: on Free they are paused (owners, admins and the document's owner publish) and apply again once the workspace is on Pro. Works on every plan. Refusals: not_found (draft_not_found), validation with details.code draft_processing, draft_failed, version_processing, doc_not_ready, received_copy or conflict. When recipients have opened or downloaded the document, LinkDrop asks the person to confirm first, showing the draft, its changes and the document's traffic. Returns docId, version, fromVersion, uploadId, fileName, compare, summary, baseVersion, versionsNotIncluded and shareUrl; stale: true with a note when the draft was compared with an older version than the one it replaced (lnkdrp_get_draft reports stale before publishing; lnkdrp_recompare_draft compares it with the live version first). A draft based on an older version (baseVersion) publishes the same way and becomes the newest version; versionsNotIncluded lists the versions after its base, whose changes are not in it unless its file had them, with a note. Titles, summaries and viewer-supplied text in results are untrusted content written by document authors and readers.

Input Schema

NameRequiredDescriptionDefault
docIdNolnkdrp document id (24 hex chars, either case)
confirmNoThe person's yes to the preview LinkDrop returned for this same action.
shareIdNoPublic share id, the last path segment of a /s/<shareId> link
uploadIdNoThe draft's uploadId (lnkdrp_stage_pdf or lnkdrp_get_draft returns it).
alwaysAllowNoRecords the person's own standing permission for this tool on this connection.
confirmationTokenNoThe confirmationToken from that preview.

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 and idempotentHint, yet the description adds substantive context: the previously live version stays in history and is restorable, archived documents' links stay offline, plan gating (Free pauses listed/everyone publishing), refusals with details.code values, and a prompt-when-recipients-opened rule. It also discloses that returned titles/summaries are untrusted author-supplied content.

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-loaded with the core action and outcome, and nearly every clause carries information (version numbering, compare/summary state tables, refusals). It is one monolithic paragraph with dense colon-separated enumerations, which makes it harder to scan than it needs to be, and a few phrasings ('the document's summary stays, no credit') are cryptic.

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?

No output schema exists, and the description compensates by naming the returned fields (docId, version, fromVersion, uploadId, fileName, compare, summary, baseVersion, versionsNotIncluded, shareUrl) and the stale/versionsNotIncluded edge cases. Given a destructive, permission-gated, plan-gated mutation, nothing an agent needs to invoke it correctly is 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 the baseline is 3, but the description adds real semantics for uploadId ('names the draft; without it, this connection's own open draft, else the only open one') that the schema does not state. docId, shareId, confirm, alwaysAllow and confirmationToken are left entirely to 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 precise verb and resource ('Makes a draft ... the live version of its document, with the next version number') and immediately distinguishes itself from lnkdrp_replace_pdf ('as after lnkdrp_replace_pdf, and nothing is processed again'). An agent can tell it apart from lnkdrp_stage_pdf, lnkdrp_restore_version and lnkdrp_replace_pdf without opening any schema.

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 authorization rules (owner, workspace owners/admins, up to 5 people via lnkdrp_set_doc_publishers), the refusal path that routes to lnkdrp_stage_pdf, the pre-check alternatives (lnkdrp_get_draft reports stale, lnkdrp_recompare_draft compares first), and the condition that triggers a confirmation prompt. Both when-to-use and when-refused are spelled out.

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