使用说明
物流电子邮件发票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 <email> <password> [imap_host]
用法
构建与运行
npm run build
npm start
MC协议工具
服务器公开了以下工具:
fetch_emails:检查邮箱是否有新电子邮件。- Args:
{ "broker_id": "...", "since": "2023-01-01" }
- Args:
download_attachments:从特定电子邮件下载PDF。- Args:
{ "email_id": "..." }
- Args:
parse_invoice_pdf:从PDF文件中提取文本和数据。- Args:
{ "pdf_path": "..." }
- Args:
store_invoice:将提取的数据保存到数据库。- Args:
{ "broker_id": "...", "email_id": "...", "pdf_path": "...", "invoice_data": {...} }
- Args:
query_invoices:列出发票。- Args:
{ "broker_id": "..." }
- Args:
发展
在开发模式下运行并自动重新加载:
npm run dev
建筑
- 服务:
imapService,pdfService,aiExtractionService处理逻辑。 - 工具:MCP接口位于
src/tools. - 数据库:Prisma ORM与PostgreSQL。
许可证
国际学生中心
