Skip to main content
Glama

Create managed documentation

project_doc_create

Create a managed Markdown document with a stable DOC ID. Automatically places it in the project docs folder, or lets docs.layout choose the location.

Instructions

Create a managed Markdown document with a stable DOC ID. Without an explicit folder the workspace docs.layout decides where it is written.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoMarkdown body, written below the frontmatter.
kindNoWhat sort of document this is — architecture, runbook, reference and so on. Project-declared, so the accepted values vary; project_workspace reports them.
tagsNoFree-form tags for filtering.
scopeNoSubject matter this document covers — topics, not file paths.
titleYesWhat the document is about, in one line.
folderNoFolder below the managed docs root. Omit to let docs.layout decide; an empty string writes to the root.
ownersNoWho is answerable for keeping this accurate.
sourceNoWhere the content came from: a URL, a person, a meeting.
statusNoLifecycle status, typically draft or current. Project-declared, so the accepted values vary; project_workspace reports them.
relatedNoIDs of records worth reading alongside this one.
supersedesNoIDs of documents this replaces. They are marked superseded.
review_afterNoDate after which this goes stale, YYYY-MM-DD. Defaults to docs.reviewIntervalDays from now.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
recordYesA canonical record with its body, revision and reference graph.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed13 schema fields changedv0.5.4
    • addedInput schema / properties / body / description
      Added value: +"Markdown body, written below the frontmatter."
    • addedInput schema / properties / folder / description
      Added value: +"Folder below the managed docs root. Omit to let docs.layout decide; an empty string writes to the root."
    • addedInput schema / properties / kind / description
      Added value: +"What sort of document this is — architecture, runbook, reference and so on. Project-declared, so the accepted values vary; project_workspace reports them."
    • addedInput schema / properties / owners / description
      Added value: +"Who is answerable for keeping this accurate."
    • addedInput schema / properties / related / description
      Added value: +"IDs of records worth reading alongside this one."
    • addedInput schema / properties / review_after / description
      Added value: +"Date after which this goes stale, YYYY-MM-DD. Defaults to docs.reviewIntervalDays from now."
    • addedInput schema / properties / scope / description
      Added value: +"Subject matter this document covers — topics, not file paths."
    • addedInput schema / properties / source / description
      Added value: +"Where the content came from: a URL, a person, a meeting."
    • addedInput schema / properties / status / description
      Added value: +"Lifecycle status, typically draft or current. Project-declared, so the accepted values vary; project_workspace reports them."
    • addedInput schema / properties / supersedes / description
      Added value: +"IDs of documents this replaces. They are marked superseded."
    • addedInput schema / properties / tags / description
      Added value: +"Free-form tags for filtering."
    • addedInput schema / properties / title / description
      Added value: +"What the document is about, in one line."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "record": {
      +      "additionalProperties": true,
      +      "description": "A canonical record with its body, revision and reference graph.",
      +      "properties": {
      +        "archived": {
      +          "description": "Whether the record lives in the archive directory.",
      +          "type": "boolean"
      +        },
      +        "body": {
      +          "description": "Markdown body below the frontmatter.",
      +          "type": "string"
      +        },
      +        "created": {
      +          "description": "Creation date, YYYY-MM-DD.",
      +          "type": "string"
      +        },
      +        "file": {
      +          "description": "File name within the collection directory.",
      +          "type": "string"
      +        },
      +        "id": {
      +          "description": "Stable record ID.",
      +          "type": "string"
      +        },
      +        "incoming": {
      +          "description": "Backlinks: references other records make to this one.",
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "incomingTotal": {
      +          "description": "Total backlinks, which may exceed the returned page.",
      +          "type": "integer"
      +        },
      +        "issues": {
      +          "description": "Validation findings doctor would report for this record.",
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "kind": {
      +          "description": "Record family: card, doc, change, release or memory.",
      +          "type": "string"
      +        },
      +        "outgoing": {
      +          "description": "References this record makes to others.",
      +          "items": {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "path": {
      +          "description": "Repository-relative path to the Markdown file.",
      +          "type": "string"
      +        },
      +        "recordType": {
      +          "description": "Type within the family.",
      +          "type": "string"
      +        },
      +        "revision": {
      +          "description": "Content hash to pass back as expectedRevision on the next write.",
      +          "type": "string"
      +        },
      +        "status": {
      +          "description": "Lifecycle status.",
      +          "type": "string"
      +        },
      +        "tags": {
      +          "description": "Free-form tags.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "title": {
      +          "description": "Human-readable title.",
      +          "type": "string"
      +        },
      +        "updated": {
      +          "description": "Date of the last write, YYYY-MM-DD.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "record"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, indicating mutation but with no safety issue requiring disclosure. The description adds useful context about folder routing behavior and implicitly the creation action. However, it doesn't disclose behavioral traits like whether a DOC ID is auto-generated, what happens with duplicate titles, or whether creating generates review/stale reminders beyond the default review_after semantics mentioned in the schema.

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?

Two sentences, front-loaded with the core purpose and a single meaningful behavioral constraint about folder placement. No fluff or redundancy. It earns its words, though it could be slightly more explicit about sibling differentiation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters but 100% schema coverage and an output schema present, the description doesn't need to enumerate everything. It covers the most complex behavior (folder routing) that the schema can't fully express. Combined with the annotations and output schema, this is reasonably complete for a creation tool with a single required parameter.

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%, with all 12 parameters having descriptions. The tool-level description adds the folder-routing nuance which schema alone wouldn't convey. However, most parameter semantics (kind, status, related, supersedes, etc.) are solely carried by the schema since the description doesn't elaborate further. Baseline 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Create a managed Markdown document') and adds a distinguishing feature ('stable DOC ID'). It differentiates from siblings like project_card_create and project_memory_add by focusing on managed documentation, though it doesn't explicitly name alternatives. The 'managed' qualifier and DOC ID point are genuinely informative.

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?

The description explains the folder placement behavior ('Without an explicit folder the workspace docs.layout decides where it is written'), including that an empty string writes to the root. This gives clear context on when/where content lands, but doesn't explicitly discuss when to use this vs sibling doc tools (e.g., project_doc_patch for edits).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/illodev/workfile'

If you have feedback or need assistance with the MCP directory API, please join our Discord server