Paperless-NGX MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides tools for managing documents, tags, correspondents, and document types in a Paperless-NGX instance, including document operations (listing, searching, downloading, uploading), tag operations, correspondent operations, and document type operations

Servidor MCP Paperless-NGX

Un servidor MCP (Protocolo de Contexto de Modelo) para interactuar con un servidor API de Paperless-NGX. Este servidor proporciona herramientas para gestionar documentos, etiquetas, corresponsales y tipos de documentos en su instancia de Paperless-NGX.

Inicio rápido

Instalación mediante herrería

Para instalar Paperless NGX MCP Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @nloui/paperless-mcp --client claude

Instalación manual

  1. Instalar el servidor MCP:
npm install -g paperless-mcp
  1. Agreguelo a la configuración MCP de su Claude:

Para la extensión de VSCode, edite ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json :

{ "mcpServers": { "paperless": { "command": "npx", "args": ["paperless-mcp", "http://your-paperless-instance:8000", "your-api-token"] } } }

Para la aplicación de escritorio Claude, edite ~/Library/Application Support/Claude/claude_desktop_config.json :

{ "mcpServers": { "paperless": { "command": "npx", "args": ["paperless-mcp", "http://your-paperless-instance:8000", "your-api-token"] } } }
  1. Obtenga su token API:
    1. Inicie sesión en su instancia Paperless-NGX
    2. Haga clic en su nombre de usuario en la parte superior derecha
    3. Seleccione "Mi perfil"
    4. Haga clic en el botón de flecha circular para generar un nuevo token
  2. Reemplace los marcadores de posición en su configuración de MCP:
    • http://your-paperless-instance:8000 con su URL Paperless-NGX
    • your-api-token con el token que acaba de generar

¡Listo! Ahora puedes pedirle a Claude que te ayude a gestionar tus documentos de Paperless-NGX.

Ejemplo de uso

Aquí hay algunas cosas que puedes pedirle a Claude que haga:

  • "Muéstrame todos los documentos etiquetados como 'Factura'"
  • Buscar documentos que contengan 'declaración de impuestos'
  • Crea una nueva etiqueta llamada "Recibos" con el color #FF0000.
  • Descargar documento n.° 123
  • "Enumerar todos los corresponsales"
  • "Crear un nuevo tipo de documento llamado 'Extracto bancario'"

Herramientas disponibles

Operaciones de documentos

lista_documentos

Obtenga una lista paginada de todos los documentos.

Parámetros:

  • página (opcional): Número de página
  • page_size (opcional): Número de documentos por página
list_documents({ page: 1, page_size: 25 })

obtener_documento

Obtenga un documento específico por identificación.

Parámetros:

  • id: ID del documento
get_document({ id: 123 })

buscar_documentos

Búsqueda de texto completo en documentos.

Parámetros:

  • consulta: cadena de consulta de búsqueda
search_documents({ query: "invoice 2024" })

descargar_documento

Descargar un archivo de documento por ID.

Parámetros:

  • id: ID del documento
  • original (opcional): si es verdadero, descarga el archivo original en lugar de la versión archivada
download_document({ id: 123, original: false })

edición masiva de documentos

Realizar operaciones masivas en múltiples documentos.

Parámetros:

  • documentos: Matriz de ID de documentos
  • método: Uno de:
    • set_correspondent: Establecer corresponsal para los documentos
    • set_document_type: Establece el tipo de documento para los documentos
    • set_storage_path: Establecer la ruta de almacenamiento para los documentos
    • add_tag: Agregar una etiqueta a los documentos
    • remove_tag: Eliminar una etiqueta de los documentos
    • modificar_etiquetas: Agregar y/o eliminar múltiples etiquetas
    • eliminar: Eliminar documentos
    • reprocesar: Reprocesar documentos
    • set_permissions: Establecer permisos de documentos
    • fusionar: fusionar varios documentos
    • dividir: dividir un documento en varios documentos
    • rotar: rotar páginas del documento
    • delete_pages: Eliminar páginas específicas de un documento
  • Parámetros adicionales según el método:
    • corresponsal: ID para set_correspondent
    • document_type: ID para el conjunto_document_type
    • storage_path: ID para set_storage_path
    • etiqueta: ID para agregar/eliminar etiqueta
    • add_tags: Matriz de identificaciones de etiquetas para modificar_etiquetas
    • remove_tags: Matriz de identificaciones de etiquetas para modification_tags
    • permisos: Objeto para set_permissions con propietario, permisos, bandera de combinación
    • metadata_document_id: ID para la fusión para especificar la fuente de metadatos
    • delete_originals: Booleano para fusionar/dividir
    • páginas: Cadena para dividir "[1,2-3,4,5-7]" o eliminar_páginas "[2,3,4]"
    • grados: Número para rotar (90, 180 o 270)

Ejemplos:

// Add a tag to multiple documents bulk_edit_documents({ documents: [1, 2, 3], method: "add_tag", tag: 5 }) // Set correspondent and document type bulk_edit_documents({ documents: [4, 5], method: "set_correspondent", correspondent: 2 }) // Merge documents bulk_edit_documents({ documents: [6, 7, 8], method: "merge", metadata_document_id: 6, delete_originals: true }) // Split document into parts bulk_edit_documents({ documents: [9], method: "split", pages: "[1-2,3-4,5]" }) // Modify multiple tags at once bulk_edit_documents({ documents: [10, 11], method: "modify_tags", add_tags: [1, 2], remove_tags: [3, 4] })

post_document

Subir un nuevo documento a Paperless-NGX.

Parámetros:

  • archivo: contenido de archivo codificado en Base64
  • nombre_de_archivo: Nombre del archivo
  • título (opcional): Título del documento
  • creado (opcional): Fecha y hora en que se creó el documento (por ejemplo, "2024-01-19" o "2024-01-19 06:15:00+02:00")
  • corresponsal (opcional): ID de un corresponsal
  • document_type (opcional): ID de un tipo de documento
  • storage_path (opcional): ID de una ruta de almacenamiento
  • etiquetas (opcional): Matriz de identificaciones de etiquetas
  • archive_serial_number (opcional): Número de serie del archivo
  • custom_fields (opcional): Matriz de ID de campos personalizados
post_document({ file: "base64_encoded_content", filename: "invoice.pdf", title: "January Invoice", created: "2024-01-19", correspondent: 1, document_type: 2, tags: [1, 3], archive_serial_number: "2024-001" })

Operaciones de etiquetas

etiquetas de lista

Obtener todas las etiquetas.

list_tags()

crear_etiqueta

Crear una nueva etiqueta.

Parámetros:

  • nombre: Nombre de la etiqueta
  • color (opcional): código de color hexadecimal (por ejemplo, "#ff0000")
  • coincidencia (opcional): Patrón de texto a combinar
  • algoritmo_de_coincidencia (opcional): Uno de "cualquiera", "todos", "exacto", "expresión regular", "difuso"
create_tag({ name: "Invoice", color: "#ff0000", match: "invoice", matching_algorithm: "fuzzy" })

Operaciones de corresponsalía

lista_correspondientes

Obtener todos los corresponsales.

list_correspondents()

crear_corresponsal

Crear un nuevo corresponsal.

Parámetros:

  • nombre: Nombre del corresponsal
  • coincidencia (opcional): Patrón de texto a combinar
  • algoritmo_de_coincidencia (opcional): Uno de "cualquiera", "todos", "exacto", "expresión regular", "difuso"
create_correspondent({ name: "ACME Corp", match: "ACME", matching_algorithm: "fuzzy" })

Operaciones de tipo de documento

lista_tipos_de_documentos

Obtenga todos los tipos de documentos.

list_document_types()

crear_tipo_de_documento

Crear un nuevo tipo de documento.

Parámetros:

  • nombre: Nombre del tipo de documento
  • coincidencia (opcional): Patrón de texto a coincidir
  • algoritmo_de_coincidencia (opcional): Uno de "cualquiera", "todos", "exacto", "expresión regular", "difuso"
create_document_type({ name: "Invoice", match: "invoice total amount due", matching_algorithm: "any" })

Manejo de errores

El servidor mostrará mensajes de error claros si:

  • La URL o el token API de Paperless-NGX son incorrectos
  • El servidor Paperless-NGX no está disponible
  • La operación solicitada falla
  • Los parámetros proporcionados no son válidos

Desarrollo

¿Quieres contribuir o modificar el servidor? Esto es lo que necesitas saber:

  1. Clonar el repositorio
  2. Instalar dependencias:
npm install
  1. Realice sus cambios en server.js
  2. Prueba localmente:
node server.js http://localhost:8000 your-test-token

El servidor está construido con:

  • litemcp : Un marco de TypeScript para crear servidores MCP
  • zod : validación de esquemas basada en TypeScript

Documentación de la API

Este servidor MCP implementa puntos finales de la API REST de Paperless-NGX. Para más detalles sobre la API subyacente, consulte la documentación oficial .

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Permite la interacción con los servidores API de Paperless-NGX, lo que respalda la gestión de documentos, el etiquetado y las operaciones de metadatos a través de una interfaz de lenguaje natural.

  1. Quick Start
    1. Installing via Smithery
    2. Manual Installation
  2. Example Usage
    1. Available Tools
      1. Document Operations
      2. Tag Operations
      3. Correspondent Operations
      4. Document Type Operations
    2. Error Handling
      1. Development
        1. API Documentation
          ID: ng04du3voj