Skip to main content

寄件服务MCP Server - 提供寄件订单管理、地址簿查询等功能

Project description

寄件服务MCP Server

提供寄件订单管理、地址簿查询等功能的Model Context Protocol (MCP) Server,支持通过HTTP API对接远程寄件服务。

功能特性

🏠 地址簿管理

  • 查询用户保存的地址簿数据
  • 支持关键词搜索(姓名、电话、地址)
  • 标识默认地址

📦 寄件订单管理

  • 创建新的寄件订单
  • 分页查询订单列表
  • 查询订单详细信息
  • 支持多种服务类型(标准/快速/经济)
  • 订单状态追踪

🔍 高级查询

  • 按日期范围过滤订单
  • 按订单状态过滤
  • 分页浏览订单列表
  • 完整物流追踪记录

🌐 API集成

  • 支持HTTP API对接真实寄件服务
  • 灵活的配置管理(命令行参数/环境变量)
  • Mock模式用于开发和测试
  • 完善的错误处理和重试机制

安装

使用 uv(推荐)

uv init shipping-mcp-server
cd shipping-mcp-server
uv add "mcp[cli]>=1.0.0"

使用 pip

pip install "mcp[cli]>=1.0.0"

使用方法

配置API参数

方法1: 通过命令行参数

# 使用真实API
python src/guoguo_mcp/__init__.py --api-url https://api.sf-express.com --token your_access_token --no-mock

# 使用模拟数据(开发测试)
python src/guoguo_mcp/__init__.py --use-mock

方法2: 通过环境变量

export SHIPPING_API_BASE_URL="https://api.sf-express.com"
export SHIPPING_API_TOKEN="your_access_token"
export SHIPPING_USE_MOCK="false"
python src/guoguo_mcp/__init__.py

方法3: 在Claude Desktop中配置

{
  "mcpServers": {
    "guoguo-shipping": {
      "command": "python",
      "args": [
        "/path/to/guoguo_mcp/src/guoguo_mcp/__init__.py",
        "--api-url", "https://api.sf-express.com",
        "--token", "your_access_token",
        "--no-mock"
      ],
      "env": {
        "PATH": "/path/to/venv/bin:/usr/bin:/bin"
      }
    }
  }
}

开发模式运行

# 使用模拟数据(默认)
python src/guoguo_mcp/__init__.py

# 使用 mcp 开发工具
mcp dev src/guoguo_mcp/__init__.py -- --use-mock

# 使用 uv
uv run python src/guoguo_mcp/__init__.py --use-mock

生产模式运行

# 连接真实API
python src/guoguo_mcp/__init__.py \
  --api-url https://api.your-shipping-provider.com \
  --token your_production_token \
  --no-mock

工具列表

1. 地址簿查询 (query_address_book)

查询用户的地址簿信息

参数:

  • search_key (可选): 搜索关键词,可以搜索姓名、电话或地址

返回:

{
  "status": "success",
  "total_count": 4,
  "addresses": [
    {
      "name": "张三",
      "phone": "13800138000",
      "address": "北京市朝阳区中关村大街1号",
      "is_default": true
    }
  ]
}

2. 创建寄件订单 (create_shipping_order)

创建新的寄件订单

参数:

  • sender_name: 寄件人姓名
  • sender_phone: 寄件人电话
  • sender_address: 寄件人地址
  • receiver_name: 收件人姓名
  • receiver_phone: 收件人电话
  • receiver_address: 收件人地址
  • package_type: 物品类型
  • package_weight: 重量(kg)
  • package_size: 尺寸(长x宽x高,cm)
  • service_type: 服务类型(标准/快速/经济)

返回:

{
  "status": "success",
  "order_id": "SF2024003",
  "estimated_cost": 18.4,
  "estimated_delivery": "2024-01-15 14:30:00",
  "pickup_time": "24小时内安排取件"
}

3. 查询订单列表 (list_shipping_orders)

分页查询寄件订单列表

参数:

  • page_size: 每页数量(默认10)
  • page_number: 页码,从1开始(默认1)
  • start_date: 开始日期(YYYY-MM-DD格式)
  • end_date: 结束日期(YYYY-MM-DD格式)
  • status: 订单状态过滤

返回:

{
  "status": "success",
  "orders": [...],
  "pagination": {
    "total_count": 2,
    "total_pages": 1,
    "current_page": 1,
    "page_size": 10,
    "has_next": false,
    "has_prev": false
  }
}

4. 查询订单详情 (get_order_detail)

获取订单详细信息

参数:

  • order_id: 订单号
  • detail_level: 详情级别(basic/full)

返回:

{
  "status": "success",
  "order_info": {
    "order_id": "SF2024001",
    "status": "已签收",
    "create_time": "2024-01-13 10:30:00",
    "service_type": "快速"
  },
  "sender_info": {...},
  "receiver_info": {...},
  "package_info": {...},
  "tracking_history": [...]
}

订单状态说明

  • 待取件: 订单已创建,等待快递员取件
  • 运输中: 包裹正在运输途中
  • 派送中: 包裹已到达目的地,正在派送
  • 已签收: 包裹已成功签收
  • 已退回: 包裹已退回寄件人
  • 已取消: 订单已取消

服务类型说明

  • 标准: 48小时送达,费用标准
  • 快速: 24小时送达,费用1.5倍
  • 经济: 72小时送达,费用0.8倍

开发

项目结构

guoguo-mcp-server/
├── src/
│   └── guoguo_mcp/
│       └── __init__.py      # 主服务器代码
├── requirements.txt         # Python依赖
├── pyproject.toml          # 项目配置
├── test_client.py          # 测试客户端
├── run_server.py           # 启动脚本
└── README.md               # 说明文档

代码说明

服务器使用了以下主要组件:

  • FastMCP: MCP协议的Python实现
  • 数据模型: 使用dataclass定义订单、地址等数据结构
  • 枚举类型: 定义订单状态和服务类型
  • 模拟数据: 内存中存储示例数据,实际应用中可替换为数据库

扩展功能

可以进一步扩展的功能:

  • 集成真实的快递API
  • 添加数据库持久化
  • 实现用户认证
  • 添加订单状态更新功能
  • 集成支付功能
  • 添加物流追踪API

许可证

MIT License

贡献

欢迎提交Issue和Pull Request来改进这个项目。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

guoguo_mcp_server-1.0.0.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

guoguo_mcp_server-1.0.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file guoguo_mcp_server-1.0.0.tar.gz.

File metadata

  • Download URL: guoguo_mcp_server-1.0.0.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for guoguo_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 af2f7856afe0e5ac6d2863a2be8ac84a323c300f54d2eddfd1b17eff6a78d453
MD5 4e67f830beada0032eb65ce3d38db9ac
BLAKE2b-256 49e99b170498378d09bdd4cfa5b9c11a1a88dd257e762cc63101b436cd9902a1

See more details on using hashes here.

File details

Details for the file guoguo_mcp_server-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for guoguo_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45c82d9e65080eb516e95805a979b9eafdff597fad6de1d0bfa3b30d9118089a
MD5 4dbd83b5f7044f7a77ae22895fd743a7
BLAKE2b-256 85d8ed689d2d78925f36578cf44efbec5f74c40b8ab7a582f5689bf3c41bec3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page