Skip to main content
Glama

list_documents

List and filter Paperless documents by title, correspondent, type, tag, storage path, date, archive serial number, or custom fields, with pagination for browsing results.

Instructions

List and filter documents with pagination and common Paperless filters such as title search, correspondent, document type, tag, storage path, creation date, archive serial number, and simple custom field filters. Use 'query_documents' for full-text query, structured custom field conditions, or advanced documented /api/documents/ query parameters. IMPORTANT: For queries like 'the last 3 contributions' or when searching by tag, correspondent, document type, or storage path, first use the relevant lookup tool to find the correct ID. Note: Document content is excluded from results by default. Use 'get_document_content' when you need the document text.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNo
pageNo
searchNo
orderingNo
page_sizeNo
storage_pathNo
correspondentNo
document_typeNo
created__date__gteNo
created__date__lteNo
custom_field_queryNo
archive_serial_numberNo
custom_fields__icontainsNo
archive_serial_number__isnullNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv2.2.1
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / archive_serial_number
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / archive_serial_number__isnull
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / created__date__gte
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / created__date__lte
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / created__gte
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / created__lte
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / custom_field_query
      Added value: +{
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / custom_fields__icontains
      Added value: +{
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. First observedv1.0.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: results are paginated, document content is excluded by default, and lookups are required to obtain filter IDs. It stops short of stating auth/permission needs or response shape/pagination mechanics, but the key surprise (missing content) is flagged.

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?

It is longer than typical but front-loaded with the core action, then routing, then cautions in descending priority. Minor redundancy: the exclusion note and the get_document_content pointer state the same thing twice, but each sentence still earns its place.

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?

For a 14-parameter, zero-coverage, no-output-schema tool, the description covers what it returns (documents without content), when to resolve IDs, and which sibling to prefer. The remaining gap is parameter-level format guidance, which the 0%-coverage schema leaves undocumented.

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 0% across 14 parameters, so the description must compensate. It names the filter concepts (title search, correspondent, document type, tag, storage path, creation date, ASN, simple custom field filters) but never maps them to parameter names or explains formats for ordering, page/page_size, or how custom_field_query differs from custom_fields__icontains and archive_serial_number__isnull.

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 description opens with a specific verb+resource ('List and filter documents') and immediately scopes it with pagination and the concrete Paperless filter set. It explicitly distinguishes itself from query_documents (full-text, structured conditions, advanced API params) and from get_document_content, so an agent can separate it from siblings without opening schemas.

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

Usage Guidelines5/5

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

It gives explicit routing rules: use query_documents for full-text/advanced queries, use the relevant lookup tool first to resolve tag/correspondent/type/storage-path IDs, and use get_document_content for text. Both a positive path and named alternatives are provided, plus the ID-resolution prerequisite.

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