UNPKG

dbx-mcp-server

Version:

A Model Context Protocol server for Dropbox integration with AI-powered PDF analysis, multi-directory indexing, and parallel processing

139 lines (138 loc) 4 kB
export interface Document { id: number; dropbox_path: string; name: string; mime_type: string; size: number; created_time: string; modified_time: string; ai_model: string; ai_processing_time_ms?: number; doc_type: string; synopsis: string; confidence_score: number; indexed_at: string; updated_at: string; } export interface DocumentInsert { dropbox_path: string; name: string; mime_type: string; size: number; created_time: string; modified_time: string; ai_model: string; ai_processing_time_ms?: number; doc_type: string; synopsis: string; confidence_score: number; } export interface Contract { id: number; document_id: number; contract_number?: string; contract_type?: string; effective_date?: string; expiration_date?: string; auto_renewal?: boolean; notice_period_days?: number; total_value?: number; currency?: string; payment_terms?: string; governing_law?: string; created_at: string; } export interface ContractParty { id: number; contract_id: number; party_name: string; party_role: string; created_at: string; } export interface Invoice { id: number; document_id: number; invoice_number?: string; invoice_date?: string; due_date?: string; supplier_name?: string; supplier_address?: string; customer_name?: string; customer_address?: string; subtotal?: number; tax_amount?: number; total_amount?: number; currency?: string; payment_status?: string; payment_method?: string; created_at: string; } export interface InvoiceItem { id: number; invoice_id: number; description?: string; quantity?: number; unit_price?: number; total_price?: number; created_at: string; } export interface Proposal { id: number; document_id: number; proposal_number?: string; proposal_date?: string; client_name?: string; project_title?: string; total_value?: number; currency?: string; validity_period?: string; timeline?: string; created_at: string; } export interface Report { id: number; document_id: number; report_title?: string; report_date?: string; report_type?: string; author?: string; period_covered?: string; created_at: string; } export declare class DocumentDatabase { private db; private dbPath; constructor(dbPath?: string); private initializeSchema; private createLegacyTables; getDocumentByDropboxPath(path: string): Promise<Document | null>; insertDocument(doc: DocumentInsert): Promise<number>; insertDocumentsBatch(docs: DocumentInsert[]): Promise<number[]>; batchStoreTypeSpecificData(dataEntries: Array<{ docId: number; analysisResult: any; }>): Promise<void>; private batchInsertDocumentType; private getTableNameForType; private batchInsertInvoices; private batchInsertContracts; private batchInsertProposals; private batchInsertReports; searchDocuments(query: string, docType?: string, limit?: number): Promise<Document[]>; deleteDocument(id: number): Promise<void>; insertContract(documentId: number, contract: Partial<Contract>): Promise<number>; insertContractParties(contractId: number, parties: Array<{ party_name: string; party_role: string; }>): Promise<void>; getExpiringContracts(days?: number): Promise<any[]>; insertInvoice(documentId: number, invoice: Partial<Invoice>): Promise<number>; insertInvoiceItems(invoiceId: number, items: Array<Partial<InvoiceItem>>): Promise<void>; getOverdueInvoices(): Promise<any[]>; insertProposal(documentId: number, proposal: Partial<Proposal>): Promise<number>; insertReport(documentId: number, report: Partial<Report>): Promise<number>; getDocumentStats(): Promise<any>; close(): void; } declare let documentDb: DocumentDatabase; export { documentDb };