MCP
Connect your AI agent
LinkDrop is an MCP server at https://mcp.lnkdrp.com/mcp. Add it to your client, sign in when it asks, and your agent creates share links, sets passwords and reads the numbers. No key to paste; a key is there for scripts and for clients that cannot sign in.
Pick your client
- Claude CodeOne command in a terminal, then sign in from Claude Code. Nothing to paste.How to connect →
- CoworkAdd LinkDrop as a connector from Cowork's settings and sign in. No terminal needed.How to connect →
- CursorA few lines in Cursor's mcp.json, then click Login. Works globally or per project.How to connect →
- CodexTwo commands in a terminal: add the server, then log in.How to connect →
- Gemini CLIOne command in a terminal, then sign in with /mcp auth.How to connect →
- GrokAdd LinkDrop as a tool from Grok's settings. No terminal needed.How to connect →
- Any clientAny MCP client that reads an mcpServers config. Sign in if it supports OAuth, or use a key.How to connect →
More than one workspace
A connection belongs to one workspace, and your client keeps one server per name. To connect another workspace, add LinkDrop again under a different name, any name you will recognize, such as LinkDrop Acme (LinkDrop-Acme in a command), and pick that workspace when you sign in, or use a key created there. Existing connections keep working, and your agent sees them all; lnkdrp_whoami on each says which workspace it acts on.
What your agent can do
lnkdrp_whoamiWhich workspace, plan and key the agent is using.read
- none
Your user id and email, the workspace id and name, plan (free or pro), the key's prefix and scopes, the client name LinkDrop recorded, credits remaining (included, starter and purchased) and when they reset, whether on-demand usage keeps AI running past them (onDemand, Pro only), the credit cost per AI action by tier, and a capabilities object answering "what can I do here" in one call: document/project/collaborator caps with what's used and left, whether links are limited (they are not a plan limit; a document holds up to 50), whether recipients can browse prior versions, and which product features have no MCP tool at all yet.
unauthorized: the key is missing or invalidkey_revoked: the key was revoked
Call it first to confirm the connection; it costs nothing.
lnkdrp_list_docsFind documents by title, by any share-link slug, or by id.read
- query: optional; matches document titles and the slug of any share link on the document
- ids: optional; up to 50 document ids to fetch directly (query and page are then ignored)
- page: optional, default 1
- limit: optional, 1 to 50, default 25
total, page, limit, hasMore and the matching documents: id, default shareId and shareUrl, title, one-line summary, processing status, version and dates. Archived and deleted documents are left out.
validation: a malformed id or an out-of-range page or limit
This is how an agent finds a document it was not handed. Pair a result's id with get_share, list_share_links or get_share_stats.
lnkdrp_get_activityThe workspace activity feed: uploads, link changes, views, downloads, plan and agent events.read
- limit: optional, 1 to 100, default 40
- cursor: optional; the nextCursor from the previous page
- types: optional; only these event types, e.g. share.viewed, share_link.created, doc.archived
- docId: optional; only events on one document
- who: optional; agents (anything done by any MCP or API client), me (the key owner in the app) or team (other members)
items, newest first, each with type, time, who acted (and which agent client, if any), the document and project it concerns, and the event's payload. Plus nextCursor for the next page.
validation: an unknown event type, a malformed cursor or an out-of-range limit
who: agents is the audit trail for agents, including this one. Viewer names and emails show on share.viewed and share.downloaded rows on every plan, as in the app.
lnkdrp_share_pdfCreate a share link from a PDF: a file in your Google Drive, a URL, or a file on your own machine.write
- idempotencyKey: required; reuse it on retries and you get the same document back
- driveFileId: a file in the person's Google Drive: the id from lnkdrp_drive_search, or the Drive, Docs, Slides or Sheets link the person pasted. LinkDrop fetches it itself through the person's own Drive connection: nothing is downloaded or uploaded by the agent, and the document links back to the original. A PDF is imported as is, up to 50 MB; a Google Doc, Slides deck or Sheet is converted to PDF by Google (up to 10 MB). Without a title the document is named after the Drive file. The first choice whenever the file is in Drive
- sourceUrl: a public https URL to a PDF, up to 50 MB. A Google Docs, Slides or Sheets link, or a Drive file link, goes through the person's Drive connection when they have one; without it a Docs link is refused with the Integrations link, and a Drive file link works only if shared with anyone who has the link. OneDrive and SharePoint links are refused. Exactly one of sourceUrl / fileBase64 / filePath / uploadId / driveFileId
- filePath: an absolute path to a PDF, read from disk by the MCP server itself, so it only works when the server runs on the same machine as the file (a local server; otherwise the call is refused and points you at lnkdrp_create_upload or sourceUrl). The right input for a file you already have locally: no base64 for the agent to emit. Up to 16 MB before optimization
- fileBase64: the PDF's bytes, base64-encoded, the last resort for a small file with no public URL and no local path: up to 16 MB before optimization and, on the hosted server, under 3 MB after it, or the call is refused and points at lnkdrp_create_upload / sourceUrl. A file in the agent's own environment goes in with lnkdrp_create_upload and uploadId instead
- uploadId: from lnkdrp_create_upload, after the PDF was PUT to its one-time URL. The input for a cloud agent whose file is only in its own sandbox: up to 50 MB, used once, only from the connection that created it. (The uploadId in the result is LinkDrop's upload record, a different id.)
- optimize: optional, default on; shrinks the PDF before upload by downsampling its images, and keeps the original whenever the result is not smaller or its page count changed
- fileName: optional, used with fileBase64, or to override filePath's own basename or the name given to lnkdrp_create_upload
- title: optional, up to 200 characters
- allowDownload: optional, default off
- password: optional, 1 to 128 characters
- waitForReady / timeoutSeconds: optional; wait for processing (default 60s, max 120s)
docId, shareId, the shareUrl (valid at once, even while processing), status, version, uploadId, what optimization did (optimized), and any AI steps that were skipped as warnings.
plan_limit: the Free plan's shared-document cap; the error lists what you can still do without upgradingout_of_credits: the AI summary needs credits the workspace does not have; add credits or retry after the resetfetch_blocked / source_not_found / unsupported_content_type / too_large: the URL or file could not be used (source_not_found: the URL answered 404/410; too_large for an inline file names lnkdrp_create_upload and sourceUrl as the way round)drive_not_connected / drive_token_revoked: the person has not connected Google Drive, or Google no longer accepts the connection; the error carries the Integrations page link to give themdrive_file_not_found / drive_not_supported: the Drive file is not visible to their connection, or is not a PDF or Google Doc, Slides or Sheetvalidation: the arguments were wrong, or the uploadId has expired, has not arrived yet or is in use by another call; the message says how to fix themnot_found: the uploadId is not this connection's, was already used, or expired and was cleared; get a new one from lnkdrp_create_upload
The routes in, best first: a file in Google Drive (driveFileId), a public link (sourceUrl), a file on the person's computer with a local server (filePath), a file only in the agent's sandbox (lnkdrp_create_upload, then uploadId). If the agent's client blocks that upload, it saves the PDF to the person's Downloads folder and says where. LinkDrop writes every upload's summary itself, for 1 credit; an agent cannot supply its own. Optimization needs Ghostscript on the MCP server; without it the file is uploaded unchanged.
lnkdrp_replace_pdfPut a new PDF on a document you already shared. Every link keeps working.write
- idempotencyKey: required; reuse it on retries and you get the same result back
- docId: the existing document to update
- driveFileId: the new file in the person's Google Drive: the id from lnkdrp_drive_search, or the Drive, Docs, Slides or Sheets link the person pasted; LinkDrop fetches it itself (a PDF up to 50 MB, or a Google Doc, Slides deck or Sheet converted to PDF, up to 10 MB) and the new version links back to the original. The first choice whenever the file is in Drive
- sourceUrl: a public https URL to the new PDF, up to 50 MB. A Google Docs, Slides or Sheets link, or a Drive file link, goes through the person's Drive connection when they have one; without it a Docs link is refused with the Integrations link. OneDrive and SharePoint links are refused. Exactly one of sourceUrl / fileBase64 / filePath / uploadId / driveFileId
- filePath: an absolute path to the new PDF, read from disk by the MCP server itself, so it only works when the server runs on the same machine as the file. Up to 16 MB before optimization
- fileBase64: the new PDF's bytes, base64-encoded, the last resort for a small file with no public URL and no local path: up to 16 MB before optimization and, on the hosted server, under 3 MB after it, or the call is refused and points at lnkdrp_create_upload / sourceUrl
- uploadId: from lnkdrp_create_upload, after the new PDF was PUT to its one-time URL; up to 50 MB, used once, only from the connection that created it
- optimize: optional, default on; shrinks the PDF before upload, keeping the original whenever the result is not smaller or its page count changed
- fileName: optional, used with fileBase64, or to override filePath's own basename or the name given to lnkdrp_create_upload
- title: optional, up to 200 characters; leaves the title unchanged if omitted
- waitForReady / timeoutSeconds: optional; wait for processing (default 60s, max 120s)
docId, shareId, shareUrl, status, the new version number, uploadId, what optimization did (optimized), and any AI steps that were skipped as warnings.
not_found: the docId does not exist in this workspace, or the uploadId is not this connection's, was already used, or expired and was cleared (get a new one from lnkdrp_create_upload)out_of_credits: the AI summary needs credits the workspace does not have; add credits or retry after the resetfetch_blocked / source_not_found / unsupported_content_type / too_large: the URL or file could not be used (source_not_found: the URL answered 404/410; too_large for an inline file names lnkdrp_create_upload and sourceUrl as the way round)drive_not_connected / drive_token_revoked: the person has not connected Google Drive, or Google no longer accepts the connection; the error carries the Integrations page link to give themdrive_file_not_found / drive_not_supported: the Drive file is not visible to their connection, or is not a PDF or Google Doc, Slides or Sheetvalidation: the arguments were wrong, or the uploadId has expired, has not arrived yet or is in use by another call; the message says how to fix them
Never blocked by the document cap: replacing does not create a document. The status flips to preparing as soon as the call starts, before the new file is fetched.
lnkdrp_update_from_sourcePull the latest version of a document from where it was imported (today: its Google Drive file). Creates nothing when the file has not changed.write
- idempotencyKey: required; reuse it on retries and you get the same result back
- docId: a document imported from Google Drive (its remoteSource names the file)
- waitForReady / timeoutSeconds: optional; wait for processing (default 60s, max 120s)
upToDate: true with the current version when the Drive file has not changed since the last import (no version, no credits); otherwise the same fields as lnkdrp_replace_pdf for the new version.
no_remote_source: the document was uploaded, not imported from a linked file; use lnkdrp_replace_pdfdrive_not_connected / drive_token_revoked: the person has not connected Google Drive, or Google no longer accepts the connection; the error carries the Integrations page link to give themdrive_file_not_found: their Drive connection cannot see the file; the error names whose Drive it was imported fromversion_processing: a new version is still being prepared; wait for it, then update again
Uses the Drive connection of the person the agent acts as, never the importer's. Changed files become a new version exactly as lnkdrp_replace_pdf makes one: every link keeps working, and the compare and summary are charged as usual.
lnkdrp_drive_searchFind a file in the person's own Google Drive, to share it without downloading or uploading anything. The best way to get a file in.read
- query: words from the file's name, as the person said it ("USAVX deck", "Q3 board update"). An empty string lists their most recently modified files
Up to 10 PDFs and Google Docs, Slides and Sheets whose name contains the query, newest first: driveFileId, name, kind (pdf, google-doc, google-slides or google-sheets), mimeType, modifiedTime, ownerName, webViewLink and sizeBytes, plus the connected googleEmail. Pass the driveFileId to lnkdrp_share_pdf or lnkdrp_replace_pdf.
drive_not_connected: the person has not connected Google Drive to LinkDrop; give them the Integrations page link the error carriesdrive_token_revoked: Google no longer accepts their Drive connection; ask them to reconnect it on the Integrations page
Uses the Drive connection of the person the agent acts as, in this workspace, never a teammate's. Read-only: it never changes anything in Drive or LinkDrop. When several files match, ask the person which one. A Drive or Docs link the person pasted needs no search: pass it as driveFileId.
lnkdrp_create_uploadGet a one-time URL to upload a PDF from the agent's own environment, for a cloud agent with no public link to the file.write
- fileName: required, the PDF's file name, ending in .pdf
- sizeBytes: optional; a file over 50 MB is refused now rather than after the upload
- contentType: optional, always application/pdf
uploadId, the uploadUrl to PUT the file to, method (PUT), expiresAt, maxBytes, a ready-made curl command, and the next step: lnkdrp_share_pdf or lnkdrp_replace_pdf with the uploadId.
validation: the file name is not a .pdf, or the MCP server runs locally over stdio, which serves no upload URLs (pass filePath there)forbidden: the connection is read-only (a Viewer's, or a read key), so it cannot uploadtoo_large: the declared size is over 50 MBrate_limited: too many upload URLs from this connection (20 in 10 minutes, or 5 unused at once); use or let expire the ones it has
Not the first choice: a file in Google Drive goes in with lnkdrp_drive_search and driveFileId, and a public link as sourceUrl, with nothing to upload. The URL takes one PDF up to 50 MB, expires 15 minutes after it is issued and only works for the connection that created it, which needs write access; treat it like a password until it is used. Once the file arrives the server keeps it 5 minutes for the share, and deletes it as soon as it is shared. If the agent's client blocks the upload, it saves the PDF to the person's Downloads folder and says where.
lnkdrp_get_shareStatus, settings and summary of a link. Poll it after share_pdf.read
- docId or shareId: exactly one; any of a document's links resolves
Processing status, whether sharing is on, download/password/version-history settings, the share URL, preview image, and the AI one-liner and summary once ready. Asked about a specific link, it reports that link's own settings and a link block naming it.
validation: none or both ids givennot_found: unknown id, or a document in another workspace
lnkdrp_set_share_accessTurn sharing, downloads or the password on or off for a link.write
- idempotencyKey: required
- docId
- shareEnabled / allowDownload: optional booleans
- password: a string to set, null to remove
- allowRevisionHistory: optional; letting recipients browse versions is Pro
The same shape as lnkdrp_get_share, after the change.
plan_limit: turning sharing on at the Free shared-document cap, or version history on Freeforbidden: a read-only keynot_found
lnkdrp_get_share_statsViews, downloads and viewers for a link over a window of days.read
- docId and/or shareId: a shareId scopes everything to that one link; a docId covers all its links
- days: 1 to 60, default 15, on every plan
- includeViewers: per-viewer rows with per-page time, on every plan
Totals for views, opens, downloads, pages viewed and time spent, a unique viewer count, and a per-day series. With includeViewers it also returns every reader, with their pages and the time spent on each page. Owner and teammate opens are excluded from every figure and counted separately as ownerPreviews.
validationnot_found
views counts recipients; opens counts sittings. A reader who came back three times is one view and three opens.
lnkdrp_create_share_linkAdd another link to a document, one per recipient, with its own label, password and expiry.write
- docId
- label: private name, 1 to 80 characters, never shown to viewers
- audience: optional private note, up to 120 characters
- allowDownload / allowRevisionHistory: optional
- password: optional, 1 to 128 characters
- expiresAt: optional ISO date in the future
- enabled: optional, default on
The new link with its own shareUrl, working immediately.
validation: missing label, past expiry, short passwordnot_found: the document
Links are never plan-capped. A document may carry one per investor or counterparty on any plan.
lnkdrp_list_share_linksEvery link of a document with its settings, status and view counts, or search its links by name.read
- docId
- query: optional; full-text search this document's links by label/audience, ranked by relevance
Every link (or, with query, only the matches), default first: label, audience, shareUrl, status (active, disabled, expired), password and expiry state, and that link's viewer and download counts.
not_found
Don't know which document a link is on? lnkdrp_find_share_link searches by name across the whole workspace.
lnkdrp_find_share_linkFind a share link by name (its label or audience) across the whole workspace.read
- query: the name to search for, e.g. "a16z" or "Sequoia"
- limit: optional, 1 to 50, default 20
The matching links, ranked by relevance: which document each is on (id, title, default shareId), the link's own id, shareId, shareUrl, label, audience and whether it's the default link.
Backed by a MongoDB text index: whole-word matches only ("a16z" matches, "nest" does not), fast at any workspace size. Returns [] rather than an error when nothing matches.
lnkdrp_verify_share_passwordCheck whether a password opens a link, without revealing the real one.read
- docId and linkId
- password: the candidate to test
{ passwordEnabled, matches }. matches is false whenever the link has no password.
validationnot_found: unknown link, or a link on another documentforbidden: owner or admin onlyrate_limited
Safe to call: it never opens the link, records a view, or spends the recipient's 10-tries-per-5-minutes unlock budget. Its own limit is 20 checks per link per 5 minutes.
lnkdrp_get_share_link_passwordShow the password set on a link, so an agent can tell the owner what it is later.read
- docId and linkId
{ passwordEnabled, password }. password is null when the link has none, or when only its hash survives.
not_found: unknown link, or a link on another documentforbidden: owner or admin onlyrate_limited
Returns the secret in plain text, so every read writes a workspace activity row. Prefer lnkdrp_verify_share_password when you only need to confirm a password you already have.
lnkdrp_update_share_linkChange or disable one link without touching the document's other links.write
- linkId and docId
- label / audience / enabled / allowDownload / password / expiresAt / allowRevisionHistory: any of them
The updated link.
validationnot_found: unknown link, or a link on another documentforbidden
Disabling a link revokes one recipient's access instantly; the document's other links are untouched.
lnkdrp_delete_share_linkDelete one link after confirming with you; its past analytics are kept.asks firstwrite
- linkId and docId
- confirm: only for clients that cannot show you a prompt; the agent sets it after you say yes
ok, and what was deleted (link id, shareId, label). The link stops resolving at once and cannot come back; its analytics stay in the document's totals.
validation: the default link cannot be deleted (disable it instead), or you did not confirmnot_found
Before acting it shows you the link, how many recipients opened it and when, and asks. It will not proceed without your yes.
lnkdrp_set_doc_visibilityKeep a document inside its project only, or list it in the workspace again.write
- docId
- visibility: "project" to keep it inside its project, "workspace" to list it everywhere again
docId, visibility, primaryProjectId.
validation: the document is in no project (VISIBILITY_NEEDS_PROJECT)not_found
A contained document leaves every workspace-wide list, search, the dashboard and lnkdrp_list_docs; the project's own listing, its direct link, metrics and history keep working. Adding a contained document to a second project is refused until it is listed again.
lnkdrp_archive_docArchive a document to free a slot, or bring it back. Reversible; keeps analytics. Confirms with you first.asks firstwrite
- docId
- archived: true to archive, false to bring it back
- confirm: only for clients that cannot show you a prompt
ok, the document's new archived state, and how many links were affected.
validation: you did not confirmnot_foundplan_limit: unarchiving at the Free shared-document cap
Archiving takes every link on the document down at once and frees a Free-plan slot; everything comes back on unarchive. It asks first because of the blast radius, even though it is reversible.
lnkdrp_delete_docDelete a document, after confirming with you. It can be restored for 30 days. Prefer archive if you might want it back.asks firstwrite
- docId
- confirm: only for clients that cannot show you a prompt
ok, and what was deleted (document id, title, how many links).
validation: still processing, or you did not confirmnot_found
The document, its file and every link disappear at once; lnkdrp_restore_doc brings them back for 30 days, then it is purged for good. It shows you the document, its links and traffic first, and will not proceed without your yes.
lnkdrp_restore_docBring back a document deleted in the last 30 days, with its links working again.write
- docId: the deleted document's id (from the delete, or a doc.deleted row in the activity feed)
ok, the restored document id, and notes on its links and tags.
not_found: unknown, or permanently removedvalidation: not deleted, or its project or workspace is deletedplan_limit: at the Free shared-document cap
Puts back exactly what the delete took away; its tags are not restored. No confirmation, because nothing is lost by it.
lnkdrp_create_projectCreate a project to group documents, such as a data room for one deal.write
- idempotencyKey: required; reuse it on retries and you get the same project back
- name: 1 to 80 characters, unique in the workspace
- description: optional; shown on the project's public page
The project: id, slug, name, description, document count, its page in the app, and its public page URL.
plan_limit: the Free plan's project cap; the error lists what you can still do without upgradingvalidation: a missing or too-long name, or a name another project already uses
A new project's public page is on from the start and lists every document you add whose link is on. Turn it off with update_project if you don't want it.
lnkdrp_list_projectsList the workspace's projects, or search them by name.read
- query: optional; matches project names and descriptions
- page: optional, default 1
- limit: optional, 1 to 50, default 25
total, page, limit, hasMore and the projects, most recently updated first: id, slug, name, description, document count, app URL and dates.
validation: an out-of-range page or limit
lnkdrp_get_projectOne project and a page of its documents.read
- projectId or projectSlug: exactly one
- query: optional; only documents whose title or link slug matches
- page: optional, default 1
- limit: optional, 1 to 50, default 25
The project (id, slug, name, description, document count, app URL, whether its public page is on and its URL) and its documents: id, shareId and share URL, title, status, version and dates. Archived documents are left out.
not_found: no such project in this workspacevalidation: both or neither of projectId and projectSlug
lnkdrp_add_docs_to_projectPut documents into a project. A document can be in several projects.write
- projectId or projectSlug: exactly one
- docIds: 1 to 50 document ids
Which documents were added, which were already in the project, which were not found (unknown, deleted or archived), and any that failed with the reason.
not_found: no such project in this workspaceforbidden: a read-only key, or a viewer in the workspace
Safe to retry. While the project's public page is on, added documents whose link is on are listed there.
lnkdrp_remove_doc_from_projectTake a document out of a project. The document itself stays.write
- projectId or projectSlug: exactly one
- docId
Whether it was removed, whether it was in the project at all, and the projects it is still in.
not_found: no such project or document in this workspace
Not a delete: the document, its links, their analytics and its other projects are untouched, so it doesn't ask first.
lnkdrp_update_projectRename a project, change its description, or turn its public page on or off.write
- projectId or projectSlug: exactly one
- name: optional, 1 to 80 characters
- description: optional; an empty string clears it
- publicPageEnabled: optional; whether the project's public page works
The updated project.
validation: nothing to change, or a name another project already usesnot_found
Anything you don't pass is kept. Renaming keeps the slug and every URL.
lnkdrp_delete_projectDelete a project after confirming with you. Its documents stay in the workspace.asks firstwrite
- projectId or projectSlug: exactly one
- confirm: only for clients that cannot show you a prompt
ok, and what was deleted (project id, slug, how many documents left it).
validation: you did not confirmnot_found
Only the project goes: its documents, their links and analytics are kept. Its public page stops working and the project can't be restored. It shows you the project, its document count and whether its public page is live, and will not proceed without your yes.
lnkdrp_create_project_linkSend a whole project to one audience: one link to the project, with its own password and expiry.write
- projectId or projectSlug: exactly one
- label: private name, 1 to 80 characters, never shown to viewers
- audience: optional private note, up to 120 characters
- allowDownload: optional, default off; it governs every document opened through this link
- password: optional, 1 to 128 characters
- expiresAt: optional ISO date in the future
- enabled: optional, default on
The new link with its own shareUrl (the project page, /p/<shareId>), plus warnings when the project already has a link with that label, or when the new link turned a switched-off public page back on.
validation: missing label, or an expiry in the pastnot_found: the projectforbidden: read-only key, or not an owner or admin
Reach for this instead of one link per document whenever several documents go to the same audience. Everything they open behind it is attributed to this link, so you get one answer to "who came and what did they read".
lnkdrp_list_project_linksEvery link of a project with its settings, status and counts, or search them by name.read
- projectId or projectSlug: exactly one
- query: optional; search this project's links by label or audience
The project, whether its public page is on at all, and every link (default first): label, audience, shareUrl, status (active, disabled, expired), password, expiry and download state, and how many documents recipients opened and downloaded through each one.
not_found
While the project's public page is off, every link reads disabled. Turn it back on with lnkdrp_update_project.
lnkdrp_update_project_linkChange or revoke one audience's access to a project, leaving the others alone.write
- linkId, and projectId or projectSlug
- label / audience / enabled / allowDownload / password / expiresAt: any of them
The updated link.
validation: nothing to change, or an expiry in the pastnot_found: unknown link, or a link on another projectforbidden
enabled: false takes the whole project away from one recipient instantly and reversibly, without touching the documents, their own links, or anyone else's project link. Usually what you want instead of deleting.
lnkdrp_delete_project_linkDelete one project link after confirming with you; its past analytics are kept.asks firstwrite
- linkId, and projectId or projectSlug
- confirm: only for clients that cannot show you a prompt; the agent sets it after you say yes
ok, and what was deleted (link id, shareId, label). The link stops resolving at once and cannot come back; its analytics stay in the project's totals.
validation: the project's default link cannot be deleted (disable it instead), or you did not confirmnot_found
The recipient loses the whole project, not one document, so it shows you how many documents they opened through it and when, and will not proceed without your yes.
lnkdrp_star_docsStar or unstar documents so they sit at the top of your sidebar.write
- docIds: 1 to 50 documents
- starred: true to star (default), false to unstar
Which documents changed, which were already that way, which weren't found, and your starred list afterwards.
not_found: reported per document in notFound, not as an error
Stars are yours, not the workspace's, and recipients never see them. Safe to repeat: starring a starred document does nothing.
lnkdrp_list_tagsEvery tag in the workspace, with how many things carry each.read
Each tag's id, name, slug, colour and how many documents and projects carry it, alphabetical.
Read it before tagging to reuse the workspace's own words; a workspace with “Fundraising” does not want “fund raising” as well.
lnkdrp_tagPut tags on a document or a project, by name.write
- docId or projectId: exactly one
- tags: 1 to 10 names, created if the workspace has none by that name
Every tag on the item afterwards, and which names were newly created.
validation: both or neither of docId and projectId, or a name with no letters or digitsnot_found: no such document or project in this workspace
Names fold on case, accents and punctuation, so “Fundraising” and “fundraising” are one tag. Tags are private to the workspace; recipients never see them.
lnkdrp_untagTake tags off a document or a project.write
- docId or projectId: exactly one
- tags: 1 to 10 names to remove
What was removed, what was not on the item (notTagged), and the tags left.
validation: both or neither of docId and projectIdnot_found: no such document or project in this workspace
The tag itself survives on everything else that carries it; only this item loses it.
lnkdrp_list_contactsThe people the workspace has heard from, with what they read and the team's tags.read
- query (optional): match name, address or domain
- tagSlug (optional): only contacts carrying that tag
- docId or projectId (optional): only contacts who touched it
- since (optional): only contacts last seen on or after a date
- sort, dir, page, limit (optional)
Each contact's id, name, address, domain, first and last seen, documents read, visits and tags, with the total.
not_found: no tag by that slugvalidation: a date since cannot read
Read-only. Every contact comes with its name and address on every plan.
lnkdrp_get_contactOne contact: identity, sources, everything they touched, and the note.read
- contactId: from lnkdrp_list_contacts
The contact with every source, document and project they touched, their tags, and the team's note with who wrote it.
not_found: no such contact in this workspace
Names, addresses, titles and the note come wrapped as untrusted content; nothing here writes a contact.
lnkdrp_list_starredList your starred documents, in sidebar order.read
Each starred document's id, title and when it was starred.
Deleted and archived documents are left out; their stars come back if the document does.
lnkdrp_add_contactAdd somebody to the workspace's contacts by email address.write
- email: required; the person's address, which is the contact's identity
- name: optional, up to 80 characters
created (false when the address was already a contact), the contact, and a note saying which happened.
validation: a malformed address
An address already in the contacts is not an error: it gains a source recording that this agent added it. Notes and tags on a person have no tool.
lnkdrp_list_revisionsWhat changed, newest first: one row per replacement, with the AI compare's summary.read
- docId or shareId: optional; one document's history, or omit both for the whole workspace
- since: optional; an ISO date, 24h, 7d, 30d, this_week or this_month
- limit: optional, 1 to 50, default 20
- cursor: optional; the nextCursor from the previous page
Each revision's document, from and to versions, who replaced it and when, the one-line summary, and how many changes and pages the compare found. Plus nextCursor.
not_found: no document by that id or slugvalidation: a since value that cannot be read
A document's first version has no row: there was nothing to compare it with.
lnkdrp_get_revisionOne version's full diff: itemised changes and each changed page's before and after.read
- docId or shareId: the document
- version: optional; the toVersion to explain, default the current version
- includeText: optional; also return the extracted text of both versions
The compare's summary, the itemised changes, per changed page the kind of change and the previous and new wording, file sizes and page counts on both sides, and whether the compare ran.
not_found: version 1, or a version with no stored record
Everything the compare wrote comes back as untrusted document text.
lnkdrp_revision_contributorsWho replaces documents most, with how many and when.read
- docId or shareId: optional; one document, or omit both for the workspace
- since: optional; as for list_revisions
Members, most active first, with replacements, documents and first and last dates, plus the agents that made replacements. Each has a url to their page.
not_found: no document by that id or slug
lnkdrp_request_member_inviteAsk an owner or admin to invite someone as a member or viewer.write
- email: required; where the invitation goes
- role: optional; member (default) or viewer
An approvalId, its status and expiry, and an approvalUrl for an owner or admin to open and approve.
validation: a malformed addressrefused at once: the person is already in the workspace, or the plan has no seat for another member
Sends nothing and grants nothing until a person approves it. A request expires after 30 minutes. An agent cannot ask for an admin.
lnkdrp_check_approvalWhether a member-invite request was approved, denied or expired.read
- approvalId: from lnkdrp_request_member_invite
The request's status (pending, approved, denied or expired), the address and role, and when it expires.
not_found: no such request in this workspace
Ready to connect?
Keys are created in your workspace and shown once. One key per agent or machine, up to ten per workspace.
Sign in to create a keyLast updated: September 28, 2026