UNPKG

@baruchiro/paperless-mcp

Version:

Model Context Protocol (MCP) server for interacting with Paperless-NGX document management system. Enables AI assistants to manage documents, tags, correspondents, and document types through the Paperless-NGX API.

64 lines (63 loc) 3.74 kB
import { AxiosResponse } from "axios"; import { BulkEditDocumentsResult, BulkEditParameters, Correspondent, CustomField, Document, DocumentsResponse, DocumentType, GetCorrespondentsResponse, GetCustomFieldsResponse, GetDocumentTypesResponse, GetMailAccountsResponse, GetMailRulesResponse, MailAccount, MailRule, GetTagsResponse, Note, Tag } from "./types"; export declare class PaperlessAPI { private readonly baseUrl; private readonly token; private readonly apiVersion; constructor(baseUrl: string, token: string); request<T = any>(path: string, options?: RequestInit): Promise<T>; bulkEditDocuments(documents: number[], method: string, parameters?: BulkEditParameters): Promise<BulkEditDocumentsResult>; postDocument(document: Buffer, filename: string, metadata?: Record<string, string | string[] | number | number[]>): Promise<string>; getDocuments(query?: string): Promise<DocumentsResponse>; getDocument(id: number): Promise<Document>; updateDocument(id: number, data: Partial<Document>): Promise<Document>; downloadDocument(id: number, asOriginal?: boolean): Promise<AxiosResponse<ArrayBuffer>>; getThumbnail(id: number): Promise<AxiosResponse<ArrayBuffer>>; /** * Retrieve all notes attached to a document. * @param documentId - The document ID. * @returns The document's notes. */ getDocumentNotes(documentId: number): Promise<Note[]>; /** * Create a note on a document. * @param documentId - The document ID. * @param note - The note text to add. * @returns The document's full notes list after creation. */ createDocumentNote(documentId: number, note: string): Promise<Note[]>; /** * Delete a note from a document by its note ID. * @param documentId - The document ID. * @param noteId - The ID of the note to delete. * @returns The document's remaining notes after deletion. */ deleteDocumentNote(documentId: number, noteId: number): Promise<Note[]>; getTags(): Promise<GetTagsResponse>; createTag(data: Partial<Tag>): Promise<Tag>; updateTag(id: number, data: Partial<Tag>): Promise<Tag>; deleteTag(id: number): Promise<void>; getCorrespondents(queryString?: string): Promise<GetCorrespondentsResponse>; getCorrespondent(id: number): Promise<Correspondent>; createCorrespondent(data: Partial<Correspondent>): Promise<Correspondent>; updateCorrespondent(id: number, data: Partial<Correspondent>): Promise<Correspondent>; deleteCorrespondent(id: number): Promise<void>; getDocumentTypes(): Promise<GetDocumentTypesResponse>; createDocumentType(data: Partial<DocumentType>): Promise<DocumentType>; updateDocumentType(id: number, data: Partial<DocumentType>): Promise<DocumentType>; deleteDocumentType(id: number): Promise<void>; getMailAccounts(queryString?: string): Promise<GetMailAccountsResponse>; getMailAccount(id: number): Promise<MailAccount>; processMailAccount(id: number): Promise<void>; getMailRules(queryString?: string): Promise<GetMailRulesResponse>; getMailRule(id: number): Promise<MailRule>; createMailRule(data: Partial<MailRule>): Promise<MailRule>; updateMailRule(id: number, data: Partial<MailRule>): Promise<MailRule>; deleteMailRule(id: number): Promise<void>; getCustomFields(): Promise<GetCustomFieldsResponse>; getCustomField(id: number): Promise<CustomField>; createCustomField(data: Partial<CustomField>): Promise<CustomField>; updateCustomField(id: number, data: Partial<CustomField>): Promise<CustomField>; deleteCustomField(id: number): Promise<void>; bulkEditObjects(objects: any, objectType: any, operation: any, parameters?: {}): Promise<any>; }