Skip to main content
Glama
pvliesdonk
by pvliesdonk

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FASTMCP_LOG_LEVELNoLog level for FastMCP internals and app loggers.INFO
PAPERLESS_MCP_HOSTNoBind host for HTTP/SSE transport.127.0.0.1
PAPERLESS_MCP_PORTNoBind port for HTTP/SSE transport.8000
PAPERLESS_MCP_OIDC_*NoOIDC provider settings when OIDC auth is enabled.
PAPERLESS_MCP_BASE_URLNoPublic base URL for artifact download links.
PAPERLESS_MCP_API_TOKENYesPaperless service-account token.
PAPERLESS_MCP_HTTP_PATHNoURL path prefix for HTTP transport./mcp
PAPERLESS_MCP_LOG_LEVELNoLog level: DEBUG, INFO, WARNING, ERROR.INFO
PAPERLESS_MCP_READ_ONLYNoWhen true, disables every writable tool.false
PAPERLESS_MCP_TRANSPORTNoServer transport: stdio, http, or sse.stdio
PAPERLESS_MCP_LOG_FORMATNoLog format: rich or json.rich
PAPERLESS_MCP_BEARER_TOKENNoStatic bearer token for simple token auth.
PAPERLESS_MCP_HTTP_RETRIESNoRetries on 5xx/network errors.2
PAPERLESS_MCP_INSTRUCTIONSNoOperator-supplied description appended to MCP instructions.built-in
FASTMCP_ENABLE_RICH_LOGGINGNoSet to false for plain/structured JSON log output.true
PAPERLESS_MCP_PAPERLESS_URLYesBase URL of the Paperless-NGX REST API (no trailing slash).
PAPERLESS_MCP_EVENT_STORE_URLNoEvent store backend for HTTP session persistence.memory://
PAPERLESS_MCP_DEFAULT_PAGE_SIZENoDefault page_size for list tools. Clamped [1, 100].25
PAPERLESS_MCP_HTTP_TIMEOUT_SECONDSNoPer-request HTTP timeout (seconds).30
PAPERLESS_MCP_PAPERLESS_PUBLIC_URLNoPublic-facing Paperless UI URL used to construct user-visible links. Defaults to PAPERLESS_MCP_PAPERLESS_URL when unset.same as PAPERLESS_MCP_PAPERLESS_URL
PAPERLESS_MCP_DOWNLOAD_LINK_TTL_SECONDSNoTTL of URLs issued by create_download_link. Clamped [30, 3600].300

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_documentsA

List documents with optional filters. Returns one page.

By default, per-document OCR content is stripped to keep results small. Pass include_content=True for the full text on each hit.

notes[].note and custom_fields[].value are always stripped from listings regardless of include_content — the metadata refs (note ids, timestamps, custom-field ids) are retained so callers can detect presence, but to read the actual text use get_document (with include_content=True if needed) or get_document_notes.

search_documentsA

Full-text search documents.

By default per-hit OCR content is stripped; pass include_content=True to get full OCR text per hit. Use more_like for similarity search.

notes[].note and custom_fields[].value are always stripped from search hits regardless of include_content — fetch them via get_document or get_document_notes when needed.

get_documentA

Fetch one document by ID.

By default, the OCR content is stripped to keep responses small. Pass include_content=True for the full text, or call get_document_content to retrieve just the text.

get_document_contentA

Return the OCR'd text content of a document.

get_document_thumbnailA

Return the document's thumbnail as inline image content.

get_document_metadataA

Return technical metadata for a document (checksums, filenames, etc.).

get_document_notesA

Return notes attached to a document.

get_document_historyA

Return the audit history for a document.

get_document_suggestionsA

Return Paperless's classifier suggestions for a document.

update_documentA

Patch selected fields on a document.

The response strips OCR content by default; pass include_content=True to get the full text back.

delete_documentC

Delete a document.

upload_documentA

Upload a document. Returns the task UUID for polling via get_task.

bulk_edit_documentsC

Apply a bulk operation to a set of documents.

add_document_noteB

Append a note to a document.

delete_document_noteC

Remove a note from a document.

list_tagsC

List tags.

get_tagA

Fetch a tag by ID.

create_tagC

Create a new tag.

update_tagC

Patch selected fields on a tag.

delete_tagC

Delete a tag.

bulk_edit_tagsC

Apply a bulk operation to a set of tags.

list_correspondentsC

List correspondents.

get_correspondentA

Fetch a correspondent by ID.

create_correspondentC

Create a new correspondent.

update_correspondentC

Patch selected fields on a correspondent.

delete_correspondentC

Delete a correspondent.

bulk_edit_correspondentsC

Apply a bulk operation to a set of correspondents.

list_document_typesC

List document types.

get_document_typeA

Fetch a document type by ID.

create_document_typeC

Create a new document type.

update_document_typeB

Patch selected fields on a document type.

delete_document_typeC

Delete a document type.

bulk_edit_document_typesC

Apply a bulk operation to a set of document types.

list_custom_fieldsC

List custom fields.

get_custom_fieldB

Fetch a custom field by ID.

create_custom_fieldA

Create a new custom field.

extra_data depends on data_type:

  • string, longtext, integer, boolean, float, date, url, documentlink — unused; omit or pass null.

  • monetary — optional {"default_currency": "USD"} (ISO-4217).

  • selectextra_data required: {"select_options": [{"label": "Low"}, {"label": "Medium"}]}. Paperless assigns each option a stable id on creation.

Unknown shapes are rejected by Paperless with a 400.

update_custom_fieldA

Patch selected fields on a custom field definition.

extra_data shape depends on data_type:

  • monetary — optional {"default_currency": "USD"} (ISO-4217).

  • selectextra_data.select_options replaces the current list wholesale. To preserve existing values, include each existing option with its server-assigned id: {"select_options": [{"id": "abc", "label": "Low"}, ...]}. Omitting an option's id creates a new option; dropping an option from the list deletes it and any document values referencing it.

See create_custom_field for the full extra_data shape table.

delete_custom_fieldC

Delete a custom field.

list_storage_pathsC

List storage paths.

get_storage_pathB

Fetch a storage path by ID.

list_saved_viewsC

List saved views.

get_saved_viewA

Fetch a saved view by ID.

list_share_linksA

List share links (optionally filtered by document).

get_share_linkA

Fetch a share link by ID.

list_tasksA

List Paperless Celery tasks.

Defaults to unacknowledged tasks only (set include_acknowledged=True or acknowledged=True to see acknowledged ones). Returns one page.

get_taskA

Fetch a task by UUID. Returns None if no such task exists.

wait_for_taskA

Poll until the task reaches a terminal state or times out.

get_statisticsA

Fetch collection-level statistics.

get_remote_versionA

Fetch Paperless version info.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
config_resourceReturn server configuration as JSON.
stats_resourceReturn Paperless-NGX document statistics as JSON.
remote_version_resourceReturn the remote Paperless-NGX version as JSON.
tags_resourceReturn all tags as a JSON array.
correspondents_resourceReturn all correspondents as a JSON array.
document_types_resourceReturn all document types as a JSON array.
custom_fields_resourceReturn all custom fields as a JSON array.
storage_paths_resourceReturn all storage paths as a JSON array.
saved_views_resourceReturn all saved views as a JSON array.
tasks_resourceReturn Paperless-NGX tasks (first page, unacknowledged) as a JSON array.

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/pvliesdonk/paperless-mcp'

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