物流发票管理服务器

一个帮助AI代理管理物流发票的MCP服务器,功能包括获取邮件、下载附件、解析PDF并存储结构化数据。

  • by Subhan696
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Subhan696/Logistic-MCP-server

使用说明

物流电子邮件发票MCP服务器

模型上下文协议(MCP)服务器,旨在通过获取电子邮件、下载附件、解析PDF和存储结构化数据来帮助AI代理管理物流发票。

特性

  • 获取电子邮件:通过IMAP从代理邮箱检索电子邮件。
  • 下载附件:来自电子邮件的特定PDF发票。
  • 解析发票:使用提取属性(发票号、金额、承运商等) pdf-parse 以及生成型人工智能(Gemini/OpenAI)。
  • OCR支持:如果PDF是基于图像的,则回退到Tesseract.js。
  • 结构化存储:将元数据和文件路径存储在PostgreSQL中。
  • 安全:加密凭据和基于环境的配置。

先决条件

  • Node.js>=18
  • PostgreSQL数据库
  • Gemini API密钥或OpenAI API密钥

设置

  1. 再进行

    npm install
    
  2. 环境配置 复制 .env.example 到 .env 并填写您的详细信息:

    cp .env.example .env
    
    • 集 DATABASE_URL 对于您的Postgres实例。
    • 集 GEMINI_API_KEY 或 OPENAI_API_KEY.
    • 集 ENCRYPTION_KEY (必须超过32个字符)。
  3. 数据库迁移

    npx prisma migrate dev --name init
    
  4. 种子经纪人数据 添加一个代理帐户以从以下位置获取电子邮件:

    npx ts-node src/db/seed.ts <email> <password> [imap_host]
    

用法

构建与运行

npm run build
npm start

MC协议工具

服务器公开了以下工具:

  • fetch_emails:检查邮箱是否有新电子邮件。
    • Args: { "broker_id": "...", "since": "2023-01-01" }
  • download_attachments:从特定电子邮件下载PDF。
    • Args: { "email_id": "..." }
  • parse_invoice_pdf:从PDF文件中提取文本和数据。
    • Args: { "pdf_path": "..." }
  • store_invoice:将提取的数据保存到数据库。
    • Args: { "broker_id": "...", "email_id": "...", "pdf_path": "...", "invoice_data": {...} }
  • query_invoices:列出发票。
    • Args: { "broker_id": "..." }

发展

在开发模式下运行并自动重新加载:

npm run dev

建筑

  • 服务: imapService, pdfService, aiExtractionService 处理逻辑。
  • 工具:MCP接口位于 src/tools.
  • 数据库:Prisma ORM与PostgreSQL。

许可证

国际学生中心