Skip to main content
Glama

List documents

project_doc_list
Read-onlyIdempotent

List indexed project documents, applying filters for kind, status, or managed state to locate relevant files.

Instructions

List indexed and managed documents, filtered by kind, status or freshness.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoKeep only these document kinds. Project-declared, so the accepted values vary; project_workspace reports them.
limitNoMaximum documents to return.
offsetNoSkip this many matches before the page starts.
statusNoKeep only these document statuses. Project-declared, so the accepted values vary; project_workspace reports them.
managedNotrue keeps only documents Workfile owns under the managed docs root; false keeps only repository files it merely indexes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum this page could contain.
totalYesMatches before offset and limit were applied.
offsetNoOffset this page started at.
recordsYesDocuments matching the filters, in list projection.

Schema Changelog

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

  1. Changed8 schema fields changedv0.5.4
    • addedInput schema / properties / kind / description
      Added value: +"Keep only these document kinds. Project-declared, so the accepted values vary; project_workspace reports them."
    • addedInput schema / properties / limit / default
      Added value: +50
    • addedInput schema / properties / limit / description
      Added value: +"Maximum documents to return."
    • addedInput schema / properties / managed / description
      Added value: +"true keeps only documents Workfile owns under the managed docs root; false keeps only repository files it merely indexes."
    • addedInput schema / properties / offset / default
      Added value: +0
    • addedInput schema / properties / offset / description
      Added value: +"Skip this many matches before the page starts."
    • addedInput schema / properties / status / description
      Added value: +"Keep only these document statuses. Project-declared, so the accepted values vary; project_workspace reports them."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "limit": {
      +      "description": "Maximum this page could contain.",
      +      "type": "integer"
      +    },
      +    "offset": {
      +      "description": "Offset this page started at.",
      +      "type": "integer"
      +    },
      +    "records": {
      +      "description": "Documents matching the filters, in list projection.",
      +      "items": {
      +        "additionalProperties": true,
      +        "description": "A record in list projection: identity and frontmatter without the Markdown body.",
      +        "properties": {
      +          "bodyBytes": {
      +            "description": "Size in bytes of the body this projection left out.",
      +            "type": "integer"
      +          },
      +          "created": {
      +            "description": "Creation date, YYYY-MM-DD.",
      +            "type": "string"
      +          },
      +          "id": {
      +            "description": "Stable record ID: T-0042, DOC-0003, CHG-0101, ADR-0009.",
      +            "type": "string"
      +          },
      +          "incomingTotal": {
      +            "description": "How many other records link to this one.",
      +            "type": "integer"
      +          },
      +          "kind": {
      +            "description": "Record family: card, doc, change, release or memory.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Repository-relative path to the Markdown file.",
      +            "type": "string"
      +          },
      +          "recordType": {
      +            "description": "Type within the family — a card's type, a document's kind, a memory record's collection.",
      +            "type": "string"
      +          },
      +          "status": {
      +            "description": "Lifecycle status, in the vocabulary of this record's family.",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "Human-readable title.",
      +            "type": "string"
      +          },
      +          "updated": {
      +            "description": "Date of the last write, YYYY-MM-DD.",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "description": "Matches before offset and limit were applied.",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "records",
      +    "total"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the read-only safety profile is already covered. The description adds freshness filtering and the indexed-vs-managed distinction, which enriches behavioral understanding beyond what annotations state. It doesn't contradict annotations.

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?

Single sentence, efficient, front-loaded with the core purpose. Minimal waste. The freshness mention is a small ambiguity since it's not an actual parameter, but overall concise and well-structured.

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?

Output schema exists and is rich (5 params, all documented). The description covers what's expected of a filtered list tool. The one gap: 'freshness' is referenced in the description but no freshness parameter exists, which could confuse the agent about what filtering is actually available.

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%, so all 5 parameters are described in the schema itself. The description adds 'freshness' as a filter axis (not a parameter, suggesting time-based filtering exists implicitly), and 'project_workspace reports them' for kind/status is useful cross-tool pointer that goes slightly beyond schema. Baseline 3 is appropriate.

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?

Description is clear: 'List indexed and managed documents, filtered by kind, status or freshness.' It identifies verb (list), resource (documents), and the three filter axes. It distinguishes from siblings by noting these are 'indexed and managed' documents (vs card/changelog/memory lists), though it doesn't explicitly name an alternative sibling for filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a query/filter tool and mentions 'indexed and managed' distinction which hints at scope, but it doesn't explicitly state when to use this vs project_doc_create/patch/move or when the managed vs indexed distinction matters practically. The managed parameter hints at one usage nuance but no explicit when-to-use guidance is given.

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