Token导航 LogoToken导航TokenDH.com
Tracking MCP logo
运维云端stdio官方级别未说明来源级核验

Tracking MCP

MCP Server

一个支持FedEx、UPS、DHL和OnTrac API的包裹追踪服务器,为AI代理提供标准化的追踪工具。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
多平台支持PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GeigerAI

提供方

GeigerAI

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m src

详细介绍

包裹跟踪MCP服务器

一个模型上下文协议(MCP)服务器,使AI代理能够使用FedEx、UPS、DHL和OnTrac API跟踪包裹。该服务器提供标准化的跟踪工具,可供任何兼容MCP的AI代理或应用程序使用。

快速开始

要运行MCP服务器,请执行以下操作:

python -m src

要使用Claude Desktop进行配置,请将以下内容添加到MCP设置中:

{
  "mcpServers": {
    "tracking-rate-mcp": {
      "command": "python",
      "args": ["-m", "src"],
      "cwd": "/path/to/TrackingRateMCP"
    }
  }
}

特性

  • 🚚 联邦快递包裹追踪:通过OAuth2身份验证和自动刷新进行实时跟踪
  • 📦 UPS包裹追踪:使用OAuth2授权流提供完整的跟踪支持
  • 🟡 DHL包裹追踪:使用OAuth2客户端凭据流进行DHL电子商务跟踪
  • 🟠 OnTrac包裹跟踪:具有API密钥认证的区域运营商跟踪
  • 🤖 MCP协议:通过模型上下文协议为AI代理提供标准接口
  • 批处理:一次最多可追踪30个联邦快递包裹、10个UPS包裹或10个DHL包裹
  • 🔄 自动重试:速率限制和网络故障的自动重试逻辑
  • 📝 丰富的日志记录:具有可配置级别的全面日志记录
  • 🔒 安全认证:具有自动刷新功能的OAuth2令牌管理
  • 🎯 类型安全:完整的Pydantic模型验证和类型提示

安装

  1. 克隆存储库:
   git clone 
   cd TrackingRateMCP
  1. 创建并激活虚拟环境 (如CLAUDE.md中所述):
   python -m venv venv_linux
   source venv_linux/bin/activate  # On Linux/macOS
   # or
   venv_linux\\Scripts\\activate     # On Windows
  1. 安装依赖项:
   pip install -r requirements.txt
  1. 设置环境变量:
   cp .env.example .env
   # Edit .env with your API credentials

环境配置

创建一个 .env 文件基于 .env.example 具有以下设置:

所需的环境变量

# FedEx Configuration (Production)
FEDEX_CLIENT_ID=your_fedex_client_id
FEDEX_CLIENT_SECRET=your_fedex_client_secret
FEDEX_SANDBOX=false

# UPS Configuration  
UPS_CLIENT_ID=your_ups_client_id
UPS_CLIENT_SECRET=your_ups_client_secret
UPS_REDIRECT_URI=http://localhost:8000/callback
UPS_SANDBOX=false

# DHL Configuration
DHL_CLIENT_ID=your_dhl_client_id
DHL_CLIENT_SECRET=your_dhl_client_secret
DHL_SANDBOX=true

# OnTrac Configuration
ONTRAC_API_KEY=your_ontrac_api_key
ONTRAC_ACCOUNT_NUMBER=your_ontrac_account_number
ONTRAC_SANDBOX=false

# MCP Configuration
MCP_TRANSPORT=stdio
LOG_LEVEL=INFO

可选环境变量

# Custom timeout settings
REQUEST_TIMEOUT=30
TOKEN_REFRESH_BUFFER=60

API密钥设置

联邦快递API设置

  1. 访问 FedEx开发者门户
  2. 创建帐户和新项目
  3. 获取您的客户端ID和客户端密码
  4. 启用生产访问以进行实时跟踪

UPS API设置

  1. 访问 UPS开发人员门户
  2. 创建帐户和新应用程序
  3. 获取您的客户端ID和客户端密码
  4. 无需额外的OAuth设置-使用客户端凭据流

DHL API设置

  1. 访问 DHL开发者门户
  2. 为DHL电子商务创建帐户和新应用程序
  3. 获取您的客户端ID和客户端密码
  4. 使用OAuth2客户端凭据流

OnTrac API设置

  1. OnTrac需要一个活动帐户和API密码
  2. 获取API访问权限:

- 联系ont@ontrac.com请求API密码 - 在电子邮件请求中包含您的OnTrac帐号 - 等待OnTrac发出您的API密码

  1. 出于测试目的:

- API文件显示账户 37 带密码 testpass - 这些是示例凭据,可能不起作用

  1. 使用查询参数身份验证(pw 参数)

用法

作为MCP服务器(推荐)

启动MCP服务器以与AI代理一起使用:

python -m src

MCP服务器支持多种AI平台:

  • 克劳德桌面:通过配置提供原生MCP支持
  • 微软复制品工作室:通过自定义连接器(请参阅下面的集成指南)
  • GitHub Copilot:通过MCP扩展
  • 任何兼容MCP的客户端:使用标准MCP协议

通过添加到MCP配置中,使用Claude Desktop进行配置:

{
  "mcpServers": {
    "tracking-rate-mcp": {
      "command": "python",
      "args": ["-m", "src"],
      "cwd": "/path/to/TrackingRateMCP"
    }
  }
}

Microsoft Copilot Studio集成

此MCP服务器可以与Microsoft Copilot Studio集成,以在您的Copilot代理中启用包跟踪功能。

先决条件

  • 启用预览功能的Microsoft Copilot Studio帐户
  • Azure订阅(用于部署)
  • 启用“尽早获取新功能”的Power Apps环境
  • 定制连接器的基本知识

部署选项

选项1:使用公共URL进行本地开发

  1. 在本地启动MCP服务器:
   python -m src
  1. 暴露您的本地服务器 使用隧道服务:

- 使用ngrok: ngrok http 8000 - 使用VS代码:使用“端口”选项卡公开转发端口8000 - 注意公共URL(例如。, https://abc123.ngrok.io)

选项2:部署到Azure

  1. 为Azure部署准备MCP服务器:

- 创建一个 requirements.txt 所有依赖项 - 添加一个 app.py 或Azure应用服务的类似入口点 - 为API凭据配置环境变量

  1. 部署到Azure应用服务:
   # Using Azure CLI
   az webapp up --name tracking-mcp-server --resource-group your-rg --runtime "PYTHON:3.11"
  1. 配置环境变量 在Azure门户中:

- 导航到您的应用程序服务 - 转到配置→ 应用程序设置 - 添加所有必需的API密钥和设置

创建自定义连接器

  1. 导航到Power Apps (make.powerapps.com)
  1. 创建新的自定义连接器:

- 转到数据→ 自定义连接器→ 新的自定义连接器 - 选择“从空白创建”

  1. 配置连接器:

- 一般信息:

- 主机:您的服务器URL(不含https://) - 基本URL: / - 方案:HTTPS

- 安全:

- 身份验证类型:无身份验证(或根据需要配置)

- 定义:

- 添加操作:“调用MCP” - 请求: - 动词:POST - 网址: /mcp - 添加OpenAPI扩展:

       x-ms-agentic-protocol: mcp-streamable-1.0
  1. 导入OpenAPI规范:
   swagger: '2.0'
   info:
     title: Package Tracking MCP
     description: MCP server for package tracking via FedEx, UPS, DHL, and OnTrac
     version: 1.0.0
   host: your-server.azurewebsites.net
   basePath: /
   schemes:
     - https
   paths:
     /mcp:
       post:
         summary: Package Tracking MCP Server
         x-ms-agentic-protocol: mcp-streamable-1.0
         operationId: InvokeMCP
         responses:
           '200':
             description: Success
  1. 测试并创建连接器

添加到Copilot工作室

  1. 打开您的Copilot Studio代理
  1. 导航到操作:

- 点击“+添加操作” - 搜索您的自定义连接器 - 选择“包裹跟踪MCP”

  1. 配置操作:

- MCP工具将被自动发现 - 可用工具: - track_fedex_package - track_ups_package - track_dhl_package - track_ontrac_package - 以及每个运营商的验证工具

  1. Copilot Studio中的测试:

- 使用测试窗格 - 尝试:“追踪联邦快递包裹123456789012” - 代理应使用MCP服务器获取跟踪信息

故障排除

  • “MCP服务器没有响应”:确保您的服务器可公开访问
  • “身份验证失败”:检查环境变量中的API凭据
  • “工具未出现”:验证OpenAPI规范是否包括 x-ms-agentic-protocol
  • 预览功能:确保您的环境启用了预览功能

安全考虑

  • 使用Azure密钥保管库存储API凭据
  • 在Copilot Studio和MCP服务器之间实现正确的身份验证
  • 考虑生产部署的IP限制或API管理
  • 监控使用情况以防止API速率限制问题

作为HTTP服务器(可选)

启动HTTP服务器以进行REST API访问:

python -m src.server

命令行接口

该软件包包括一个用于测试和开发的CLI:

基本包裹跟踪

# Track a FedEx package
python main.py --fedex 123456789012

# Track a UPS package  
python main.py --ups 1Z12345E0123456789

# Track a DHL package
python main.py --dhl GM60511234500000001

# Track an OnTrac package
python main.py --ontrac C10000012345678

# Track multiple packages
python main.py --fedex 123456789012 987654321098
python main.py --ups 1Z12345E0123456789 1Z12345E9876543210
python main.py --dhl GM60511234500000001 GM60511234500000002
python main.py --ontrac C10000012345678 D10000012345678

验证和测试

# Validate tracking numbers without tracking
python main.py --validate --fedex 123456789012
python main.py --validate --ups 1Z12345E0123456789
python main.py --validate --dhl GM60511234500000001
python main.py --validate --ontrac C10000012345678

# Run test mode with sample tracking numbers
python main.py --test-mode

# Start MCP server
python main.py --server

与AI代理集成

Pydantic AI代理示例

from pydantic_ai import Agent
from mcp import Client

# Configure MCP client to use tracking server
mcp_client = Client("stdio", command=["python", "-m", "src.server"])

# Create agent with tracking capabilities
agent = Agent(
    "gpt-4",
    tools=[mcp_client],
    system_prompt="You can track packages using FedEx and UPS."
)

# Use the agent
result = await agent.run("Track FedEx package 123456789012")

可用的MCP工具

服务器向AI代理公开以下工具:

  • track_fedex_package(tracking_number: str) -跟踪单个FedEx包裹
  • track_multiple_fedex_packages(tracking_numbers: List[str]) -跟踪多个FedEx包裹
  • validate_fedex_tracking_number(tracking_number: str) -验证FedEx跟踪号格式
  • track_ups_package(tracking_number: str) -跟踪单个UPS包
  • track_multiple_ups_packages(tracking_numbers: List[str]) -跟踪多个UPS包裹
  • validate_ups_tracking_number(tracking_number: str) -验证UPS跟踪号格式
  • track_dhl_package(tracking_number: str) -追踪单个DHL包裹
  • track_multiple_dhl_packages(tracking_numbers: List[str]) -追踪多个DHL包裹
  • validate_dhl_tracking_number(tracking_number: str) -验证DHL跟踪号格式
  • track_ontrac_package(tracking_number: str) -跟踪单个OnTrac包
  • track_multiple_ontrac_packages(tracking_numbers: List[str]) -跟踪多个OnTrac包
  • validate_ontrac_tracking_number(tracking_number: str) -验证OnTrac跟踪号格式

可用MCP资源

  • tracking://server/info -服务器功能和配置
  • tracking://carriers/{carrier}/capabilities -运营商特定功能

项目结构

TrackingRateMCP/
├── src/
│   ├── __init__.py                    # Package initialization
│   ├── server.py                      # Main MCP server implementation
│   ├── models.py                      # Pydantic models for tracking data
│   ├── config.py                      # Configuration and environment management
│   ├── auth/
│   │   ├── __init__.py               # Auth package init
│   │   ├── fedex_auth.py             # FedEx OAuth token management
│   │   ├── ups_auth.py               # UPS OAuth token management
│   │   ├── dhl_auth.py               # DHL OAuth token management
│   │   └── ontrac_auth.py            # OnTrac API key authentication
│   ├── tracking/
│   │   ├── __init__.py               # Tracking package init
│   │   ├── fedex_tracker.py          # FedEx tracking implementation
│   │   ├── ups_tracker.py            # UPS tracking implementation
│   │   ├── dhl_tracker.py            # DHL tracking implementation
│   │   ├── ontrac_tracker.py         # OnTrac tracking implementation
│   │   └── base_tracker.py           # Abstract tracking interface
│   └── tools/
│       ├── __init__.py               # Tools package init
│       ├── fedex_tools.py            # FedEx MCP tools
│       ├── ups_tools.py              # UPS MCP tools
│       ├── dhl_tools.py              # DHL MCP tools
│       └── ontrac_tools.py           # OnTrac MCP tools
├── tests/                             # Comprehensive test suite
├── venv_linux/                       # Virtual environment
├── requirements.txt                   # Python dependencies
├── pyproject.toml                     # Project configuration
├── .env.example                       # Environment variables template
├── README.md                          # This documentation
└── main.py                           # CLI entry point for testing

测试

运行综合测试套件:

# Activate virtual environment
source venv_linux/bin/activate

# Run all tests with coverage
pytest tests/ -v --cov=src --cov-report=term-missing

# Run specific test modules
pytest tests/test_models.py -v
pytest tests/test_fedex_auth.py -v
pytest tests/test_fedex_tracking.py -v

# Run with detailed output
pytest tests/ -v -s

发展

代码质量

该项目包括在中配置的代码质量工具 pyproject.toml:

# Format and lint code
ruff check src/ tests/ --fix

# Type checking
mypy src/ tests/

# Run all quality checks
ruff check src/ tests/ --fix && mypy src/ tests/

添加新运营商

要添加对其他运营商的支持:

  1. 在中创建身份验证模块 src/auth/
  2. 实施跟踪服务扩展 BaseTracker
  3. 在中创建MCP工具 src/tools/
  4. 在中注册工具 src/server.py
  5. 添加综合测试

API文档

跟踪结果模型

class TrackingResult(BaseModel):
    tracking_number: str              # Package tracking number
    carrier: TrackingCarrier          # Shipping carrier (fedex/ups/dhl/ontrac)
    status: TrackingStatus           # Current package status
    estimated_delivery: Optional[datetime]  # Estimated delivery time
    delivered_at: Optional[datetime]  # Actual delivery time
    events: List[TrackingEvent]      # Tracking history
    origin: Optional[PackageLocation]  # Origin location
    destination: Optional[PackageLocation]  # Destination location
    delivery_address: Optional[str]  # Delivery location
    service_type: Optional[str]      # Shipping service type
    weight: Optional[str]            # Package weight
    reference_numbers: List[str]     # Reference numbers
    error_message: Optional[str]     # Error details if tracking failed

跟踪状态值

  • in_transit -包裹正在运输中
  • out_for_delivery -包裹已准备好发货
  • delivered -包裹已送达
  • exception -发生交付异常
  • pending -包裹处理待定
  • not_found -找不到跟踪号
  • label_created -已创建发货标签
  • unknown -状态未知
  • error -发生跟踪错误

故障排除

常见问题

  1. 身份验证失败:

- 在中验证API凭据 .env 文件 - 检查是否使用了正确的沙盒/生产端点 - 确保UPS的OAuth流程已完成 - OnTrac:“无效用户名或密码”错误表示: - 您需要联系ont@ontrac.com用于API访问 - 在请求中包含您的帐号 - 文档中的测试证书可能不起作用

  1. 跟踪失败:

- 验证跟踪号格式 - 检查API费率限制 - 验证网络连接

  1. MCP集成问题:

- 确保MCP客户端配置正确 - 检查服务器日志以获取详细的错误信息 - 验证MCP客户端中的工具注册

日志记录

启用调试日志记录以进行详细的故障排除:

LOG_LEVEL=DEBUG

查看日志以了解特定的错误详细信息和API响应信息。

费率限制和最佳实践

联邦快递API

  • 每个请求最多30个跟踪号码
  • 令牌每60分钟过期一次(自动刷新)
  • 遵守速率限制,避免429个错误

UPS API

  • 对每个跟踪号的单独请求
  • OAuth令牌的有效期可能更长
  • 实现重试的指数回退

DHL API

  • 每个请求最多10个跟踪号
  • OAuth令牌基于API设置过期
  • 支持批量和单独跟踪

OnTrac API

  • 不支持批处理跟踪(使用并发请求)
  • API密钥身份验证(无令牌过期)
  • 专注于美国西部各州的区域性航空公司

最佳实践

  • 尽可能使用批量跟踪
  • 缓存结果以最小化API调用
  • 实施适当的错误处理
  • 监控API的使用情况和成本

贡献

  1. 遵循以下项目结构和编码约定 CLAUDE.md
  2. 使用pytest为新功能添加单元测试
  3. 根据需要更新文档
  4. 在提交更改之前,确保所有测试都通过
  5. 使用类型提示和Pydantic模型进行验证

许可证

该项目旨在教育和发展。使用跟踪功能时,请确保遵守联邦快递和UPS API的服务条款。

支持

对于问题和疑问:

  • 检查上面的故障排除部分
  • 查看测试文件以获取使用示例
  • 检查日志文件以获取详细的错误信息

目录标签

目录标签

多平台支持PythonClaude包裹追踪本地部署物流管理AI集成API集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP