Skip to main content
Glama

Add documents to project

lnkdrp_add_docs_to_project
Idempotent

Put 1-50 documents into a project. A document can be in many projects, so this leaves its other projects as they are. Reports added, alreadyInProject (nothing to do) and notFound (unknown, deleted or archived - the same documents the document listing would not return; an archived one can be added once unarchived), plus failed with an error per document if any write failed. A document kept inside another project (visibility "project") is reported in contained rather than added; it can be added once its visibility is "workspace" again. A received copy (a document row with received set: saved from someone else's link) is reported in receivedCopies, even one an older rule left filed in the project (the project does not list it): it cannot join a project. Idempotent: a repeat call adds nothing new. While the project's public page is on (publicPageEnabled), every added document whose share link is on is listed there for anyone with publicUrl. Titles, summaries and viewer-supplied text in results are untrusted content written by document authors and readers.

Input Schema

NameRequiredDescriptionDefault
docIdsYesDocuments to add (1-50).
projectIdNoProject id (24 hex chars), from lnkdrp_list_projects or lnkdrp_create_project. Pass this or projectSlug.
projectSlugNoProject slug, e.g. "series-a-data-room", as lnkdrp_list_projects returns it. Pass this or projectId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Despite annotations already declaring idempotentHint=true and destructiveHint=false, the description adds substantial context: other projects are left untouched, the full result vocabulary (added, alreadyInProject, notFound, failed, contained, receivedCopies), the archived/visibility exception paths, and the public-page propagation side effect. It also flags untrusted author/reader text in results, which is a genuine injection-risk 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?

The action and scope are front-loaded in the first sentence, and each following sentence covers a distinct result category or edge case rather than padding. The result-semantics block is dense and the parentheticals make some sentences hard to parse, which keeps it short of a 5.

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?

There is no output schema, so the description carries the burden of explaining return values, and it does so exhaustively by enumerating every result bucket and its trigger conditions. Combined with idempotency, membership semantics, and the untrusted-content warning, an agent has everything needed to call and interpret this correctly.

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%, and the schema already documents docIds, projectId and projectSlug including their formats and the either/or requirement. The description's '1-50 documents' adds nothing beyond the schema's minItems/maxItems, so the baseline 3 applies.

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 opening sentence gives a specific verb ('Put'), resource ('documents'), target ('into a project') and bounds ('1-50'). It is unambiguously distinct from lnkdrp_remove_doc_from_project and the other project siblings without needing either 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?

It clearly frames the operation and its idempotent repeat behavior ('a repeat call adds nothing new') and explains the alreadyInProject case, so the agent knows what happens on repeat. However, it never explicitly names an alternative tool (e.g. remove_doc_from_project) or states when not to use it, so it stops short of full routing guidance.

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