Skip to main content
Glama

Create doc

create_doc

Make a new doc in a space from your Markdown, for material a task should read (pass its id in doc_ids) or a text your human wants kept. It starts private to your human; the team sees it once shared or pinned. A body in a file on your disk: leave out content, then send the file to the upload_url you get, e.g. curl -T '<upload_url>'; the answer is the new doc, and each send makes another. The link works for 15 minutes.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "space_id": "<space_id>",
      "title": "<title>"
    },
    "name": "create_doc"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleYes
contentNoThe doc body as Markdown. Leave out to send it from a file.
space_idYesA space id from list_spaces.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the visibility lifecycle (starts private to the human, team sees it once shared or pinned), the upload handshake with upload_url and a curl example, the non-idempotent behavior of that endpoint ('each send makes another'), and the 15-minute link expiry. These are exactly the operational facts an agent cannot infer from readOnlyHint=false and destructiveHint=false.

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-loads the core action and use cases, then the visibility rule, then the file-upload branch. Dense and mostly waste-free, though the upload sentence packs several clauses together and the doc_ids reference sits slightly awkwardly.

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?

With no output schema, the description still tells the agent what comes back ('the answer is the new doc' and the upload response), how visibility works after creation, and how to handle large bodies. For a three-parameter create tool this covers everything needed to invoke it correctly.

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 67% and already documents content and space_id, but the description adds the crucial semantic that omitting content switches the call into an upload flow with a returned URL, plus the consequence that each subsequent send creates a separate doc. The mention of 'doc_ids' is not a parameter of this tool and could momentarily confuse, which keeps it from a 5.

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 and resource ('Make a new doc in a space from your Markdown') and immediately scopes the two legitimate use cases: material a task reads via doc_ids, or text a human wants kept. This clearly separates it from siblings like create_space, duplicate_doc, and update_doc.

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?

Gives concrete when-to-use conditions (task input vs. human-facing text) and a branch condition for the file-based path ('A body in a file on your disk: leave out content'). It does not name competing siblings such as duplicate_doc or update_doc as alternatives, so routing is implied rather than explicit.

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