邮件追踪查询服务

一个基于MongoDB的邮件追踪数据查询服务,支持通过客户ID、追踪号和递送状态查询邮件信息。

  • by koushikkarmakar99
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 koushikkarmakar99/mailtracking-mcp

使用说明

邮件跟踪MCP服务器

一个MCP服务器,允许您查询存储在MongoDB中的邮件跟踪数据。


此服务器的功能

它公开了这些工具:

  • 搜索_邮件_ by_cust_id:按客户ID查询邮件及其扫描件。
  • 搜索_邮件_送达_状态:查询扫描结果与递送状态匹配的邮件(例如。, DELIVERED, IN_TRANSIT;不区分大小写的精确匹配)。
  • 搜索_邮件_按_跟踪_编号:按跟踪号(IMB)查询邮件及其扫描件。
  • no_match_default_tool:当没有匹配的工具或在没有输入的情况下调用时,回退响应(简单的问候消息)。

快速入门(首次MCP用户)

按顺序执行以下步骤:

  • 要在本地测试此MCP服务器,请提取示例MongoDB迁移仓库并启动其Docker Compose文件:

    git pull https://github.com/koushikkarmakar99/mongodb-migration
    cd mongodb-migration
    docker compose up -d
    
  • 要插入现成的示例数据,请在终端上运行以下命令:

    Get-Content -Raw .\sql\seed_sample_data.sql | podman exec -i mongodb-migration-sqlserver-1 sqlcmd -S localhost -U sa -P <Password> -C -d master
    
  1. 安装依赖项并构建服务器

    npm install
    npm run build
    
  2. 配置Mongo连接(必需)

    服务器在启动之前需要这些环境变量:

    # PowerShell
    $env:MONGO_URL="mongodb://your-ip:27017"
    $env:MONGO_DB="mailtracking"
    $env:MONGO_COLLECTION="mailpieces_with_scans"
    
    # Bash
    export MONGO_URL="mongodb://your-ip:27017"
    export MONGO_DB="mailtracking"
    export MONGO_COLLECTION="mailpieces_with_scans"
    
  3. 在VS代码中使用MCP

    此仓库已包含VS Code MCP配置。您只需要MCP扩展:

    • 在VS Code中安装“MCP”扩展。
    • 在VS Code中打开此文件夹。
    • 服务器已在中配置 .vscode/mcp.json 并将使用 build/index.js.
    • 打开Copilot Chat并开始使用该工具。

如何查询

您可以使用以下工具查询邮件和扫描:

  • 搜索_邮件_ by_cust_id:提供客户ID(字符串或数字)以检索该客户的所有邮件及其扫描件。
  • 搜索_邮件_送达_状态:提供交付状态(例如 DELIVERED, RETURN_DELIVERED, IN_TRANSIT, RETURN_IN_TRANSIT, FORWARD_IN_TRANSIT, FORWARD_DELIVERED)获取扫描结果具有该状态的邮件(不区分大小写的精确匹配)。
  • 搜索_邮件_按_跟踪_编号:提供跟踪号(IMB字符串)以检索邮件及其对该IMB的扫描。

自由文本输入(包含空格)完全跳过MongoDB,并使用默认消息进行响应:客户ID请求返回不匹配通知,跟踪号请求返回hello回退。

支持的高级查询过滤器(如果您扩展了代码)包括:

  • imb (完全匹配)
  • cust_id (完全匹配)
  • delivery_sla_date (日期范围)
  • print_sla_date (日期范围)
  • scan_datetime (日期范围)
  • address.city (使用正则表达式进行部分匹配)
  • address.zip_code (使用正则表达式进行部分匹配)
  • address.state (缩写,例如CA)
  • scans.delivery_status (完全匹配)
  • scans.is_returned (布尔值)
  • scans.return_start_date (日期范围)
  • scans.is_forwarded (布尔值)
  • scans.forward_start_date (日期范围)

示例提示

在Copilot聊天中尝试这些:

  • “获取客户100001的跟踪详细信息”
  • “获取IMB 007001234560000008106202109999的跟踪详细信息”
  • “获取客户100084的最后一次扫描”
  • “列出所有投递状态为已送达的邮件”
  • “将客户100084的所有扫描导出为CSV”

备注

  • search_mailpieces_by_cust_id 和 search_mailpieces_by_tracking_number 将结果限制在50。默认情况下,交付状态工具会返回所有匹配项,因此对常见状态的响应如下 IN_TRANSIT 可能很大。
  • MongoDB必须可以从运行服务器的机器上访问。
  • 响应将删除内部ID并将扫描时间戳格式化为 MM/DD/YYYY hh:mm:ss AM/PM (UTC)。