邮件跟踪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
-C -d master- 安装依赖项并构建服务器
npm install
npm run build- 配置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"- 在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)。
