物流电子邮件发票MCP服务器
模型上下文协议(MCP)服务器,旨在通过获取电子邮件、下载附件、解析PDF和存储结构化数据来帮助AI代理管理物流发票。
特性
- 获取电子邮件:通过IMAP从代理邮箱检索电子邮件。
- 下载附件:来自电子邮件的特定PDF发票。
- 解析发票:使用提取属性(发票号、金额、承运商等)
pdf-parse以及生成型人工智能(Gemini/OpenAI)。 - OCR支持:如果PDF是基于图像的,则回退到Tesseract.js。
- 结构化存储:将元数据和文件路径存储在PostgreSQL中。
- 安全:加密凭据和基于环境的配置。
先决条件
- Node.js>=18
- PostgreSQL数据库
- Gemini API密钥或OpenAI API密钥
设置
- 再进行
npm install- 环境配置
复制 .env.example 到 .env 并填写您的详细信息:
cp .env.example .env- 集 DATABASE_URL 对于您的Postgres实例。 - 集 GEMINI_API_KEY 或 OPENAI_API_KEY. - 集 ENCRYPTION_KEY (必须超过32个字符)。
- 数据库迁移
npx prisma migrate dev --name init- 种子经纪人数据
添加一个代理帐户以从以下位置获取电子邮件:
npx ts-node src/db/seed.ts
[imap_host]用法
构建与运行
npm run build
npm startMC协议工具
服务器公开了以下工具:
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。
许可证
国际学生中心
