DEVELOPER

开发者中心

集成平台所需的一切 — REST、GraphQL 和 MCP。

REST /api/v1/orders JSON
GQL query { orders { id } } GraphQL
MCP track_package(number) Tool
开发者中心

REST API 文档

探索、测试并集成我们的 RESTful 接口。完整的 Swagger UI,支持交互式请求构建和身份验证。

GraphQL API 文档

通过 GraphQL API 精确查询所需数据。交互式 Playground,支持 Schema 浏览和操作测试。

MCP 专栏

AI 智能体与 MCP 客户端:配置、安全 profile、审批以及 User + Developer 服务的实时工具。

对接专题

四条各自闭环的路径。打开哪一条就只做哪一条:鉴权、询价、下单、打标或支付、追踪,以及测试清单。

发运对接

自有车队取件与配送

创建取件或配送订单、打印本地面单、追踪并接收事件——自有车队,从头做到尾。询价为可选步骤。

取件或配送 → 本地面单 → 追踪 → 事件

承运商打单

获取运输方式、询价、购买承运商面单、下载 PDF,并追踪该票。

运输方式 → 询价 → 打单 → PDF → 追踪

运输服务

列出物流公司自有运输服务、估价、下单、支付并追踪——从头做到尾。

服务列表 → 估价 → 下单 → 支付 → 追踪

仓储与出库

先把货物入库存储并支付,再在本路径上把在库件出库发走。

入库 → 支付 → 选货 → 出库 → 追踪

MCP 专栏

MCP 47 tools

面向 AI 智能体与 MCP 客户端的专项指南:User / Developer 服务、最小权限 profile、dry-run、人工审批与实时工具目录。

Profile 与 scopes 人工审批 写操作 dry-run Developer MCP

网络钩子 — Webhook 集成指南

实时接收 Superroute 事件 — 订单、状态变更、跟踪更新。带签名校验、自动重试和内置调试工具。

WEBHOOKS

OTEP — 开放跟踪事件协议

一次事件,无限旅程。 — 自配送、第三方配送和承运商运单合并为每个跟踪号一条有序的事件时间线。

OTEP

集成更新指南

API 与 Webhook 的全部新能力——幂等取消、对账拉取、v2 签名、新事件——附可直接复制的示例,全部向前兼容。

NEW

Postman Collection

从 API 文档实时生成的最新集合——导入 Postman 即可开始调用 API。

JSON

订单状态字典与流转图

完整的订单状态字典与流转图,由部署代码实时生成。

MARKDOWN

运单事件代码

取件侧与配送侧运单事件代码、OTEP 映射、常见流转,以及用公开 API 自建跟踪页的说明。

TRACKING

快速入门

1
获取 API Token

登录后进入 设置 → API 密钥,生成您的个人访问令牌。

2
选择 API 类型

标准增删改查操作使用 REST,灵活数据查询使用 GraphQL,将 AI 助手直接接入物流数据使用 MCP。

3
开始开发

打开交互式文档,直接在浏览器中测试接口,然后将代码示例复制到您的应用中。

身份认证

三种API使用相同的Bearer令牌(通过登录端点获取)。部分端点无需认证即可使用——包括登录、公开追踪和司机自助注册。

通过登录接口获取 Token:

# POST /api/v1/user/login
{ "email": "you@example.com", "password": "••••••••" }

请求头

Authorization: Bearer YOUR_ACCESS_TOKEN
REST 大多数端点需要认证。登录、公开追踪和司机自助注册为公开端点(无需令牌)。
GQL 已认证的操作需要 Token;登录、追踪等公开操作无需 Token。
MCP 可选。公开工具无需 Token;携带有效 Token 后可访问个人数据。
接口基础地址

 

  • REST API https://api.superlabel.ca/api
  • GraphQL https://api.superlabel.ca/api/graphql
  • MCP https://api.superlabel.ca/mcp

应该选哪种 API?

REST API

标准增删改查、Webhook、订单/路线管理

GraphQL

灵活取数、自定义报表、嵌套查询

MCP

AI 助手集成(Claude、Cursor、Copilot 等)

AI 集成

赋予您的 AI 助手物流超能力。通过 MCP 实现零代码配置,从您的 AI 代理直接调用我们的 API,或下载技能文件获取完整的语义指导。

可用能力
公开追踪

通过追踪号码查询任何包裹的配送状态、事件时间线和签收证明(签名/照片)。

公开
操作事件

获取订单的完整审计记录——谁更改了什么状态、何时、何地,包含 GPS 坐标和附件照片。

需要认证
标签服务

从承运商获取运费报价、创建运输标签、下载标签 PDF、取消运输和提交日终清单。

需要认证
本地配送

创建配送/取件订单、构建优化的多司机路线,并管理完整的最后一公里配送流程。

需要认证
END USER 用户 MCP 服务器

适用于您客户使用的 AI 助手。粘贴配置后,您的 AI 即可即时追踪包裹——无需编码。

ENDPOINT
https://api.superlabel.ca/mcp
可用工具 (47 个实时工具)
track_package Track a package by its tracking number. Returns delivery status, trackin... 公开
otep_tracking Get the unified OTEP (Open Tracking Event Protocol) timeline for a track... 公开
get_capabilities List MCP tools available to the current connection, with risk level, req... 公开
get_orders List orders with filtering and pagination. Returns order details includi... 认证
get_order_detail Get full details of a specific order by ID, including address, status, p... 认证
find_order Fuzzy-find orders across tracking number, external tracking, ref, recipi... 认证
get_operation_events Get the full audit trail for orders — every status change, who performed... 认证
create_order Create a delivery/pickup order. D=delivery (warehouse→customer), P=picku... 认证
cancel_order Cancel an existing order by order ID. Only works for orders not yet deli... confirm
bulk_create_orders Create up to 100 delivery orders in one call. Returns a per-order succes... confirm
reroute_to_address Change the delivery address of an order that has not been picked up yet:... confirm
update_delivery_instruction Update only the delivery_instruction field on an existing order (PATCH).... 认证
update_order_note Update only the internal note field on an existing order (PATCH). 认证
update_time_window_by_refs Bulk-update delivery time windows (and optional schedule_date) for order... 认证
hold_order Put an order on HOLD so it is not dispatched until release_order. HIGH-R... confirm
release_order Release an order from HOLD back to NEW_ORDER. HIGH-RISK: requires confir... confirm
propose_write Queue a write/high-risk tool for human approval instead of executing it.... 认证
list_pending_approvals List pending MCP write approvals for this business (or mine_only). 认证
approve_pending_write Approve and execute a pending write proposal. HIGH-RISK: requires confir... confirm
reject_pending_write Reject a pending write proposal without executing it. 认证
get_routes List delivery routes with their status, assigned driver, and order count... 认证
get_route_detail Get one route with its stop/order list. Prefer this over get_routes when... 认证
get_drivers List drivers for the authenticated business (ids, names, capacity defaul... 认证
get_driver_routes_today Orders assigned to a driver on a given date (defaults to today). Useful... 认证
get_build_route_options List routing engines, balance modes, capacity types, and defaults before... 认证
build_route Build/optimize a delivery route (POST /api/v3/client/build-route). HIGH-... confirm
order_snapshot One-call order context for support: order detail + operation events + pu... 认证
list_exceptions List failed/returned/exception-like orders for a schedule date (default... 认证
get_shipping_methods List available shipping carriers/methods. Returns IDs and names — use th... 认证
get_shipping_rate Get a shipping cost quote. Dry-run — no label created. Returns rate opti... 认证
create_shipping_label Book a shipment with a carrier and generate a shipping label with tracki... 认证
quote_and_ship One-shot: rate across all enabled carriers, pick the best one by strateg... 认证
compare_all_carriers Get rate quotes from every enabled carrier for the same shipment, in one... 认证
search_address Search and resolve addresses by postal code or free-text query. Returns... 认证
daily_digest One-call summary of today's logistics activity: total orders, by status,... 认证
get_orders_summary Aggregate order metrics over a time window: counts by status, top carrie... 认证
get_account_credits Get the authenticated customer's wallet balance, currency, and recent to... 认证
get_warehouses List WMS warehouses available to the authenticated business. 认证
get_inventory Query WMS inventory (POST /api/v1/wms/inventory). Pass filters supported... 认证
list_datasets List custom datasets available to the business. 认证
get_dataset Get one dataset by id (metadata/columns). 认证
list_dataset_groups List groups inside a dataset. 认证
search_dataset_records Search records across groups in a dataset (POST .../search). 认证
list_alliances List alliances the authenticated business belongs to. 认证
get_alliance Get one alliance by id. 认证
list_alliance_members List members of an alliance. 认证
list_accessible_clients List clients accessible via alliance partnerships. 认证
// .mcp.json — 窄权限运营智能体配置 { "mcpServers": { "superroute": { "type": "url", "url": "https://api.superlabel.ca/mcp", "headers": { "Authorization": "Bearer <token>", "X-MCP-Profile": "ops-readonly" } } } }
DEVELOPER 开发者 MCP 服务器

适用于帮助您构建 Superroute 集成的 AI 编码助手(Claude Code、Cursor 等)。您的 AI 可以直接调用 API、测试端点并生成集成代码。

ENDPOINT
https://api.superlabel.ca/mcp/developer
可用工具 (25 个实时工具)
track_package 通过追踪号追踪包裹 公开
get_operation_events 获取订单审计记录 认证
get_shipping_methods 列出可用承运商 认证
get_shipping_rate 获取运费报价 认证
create_shipping_label 创建运输标签 认证
get_shipping_label 获取面单详情及下载信息 认证
create_order 创建配送/取件订单 认证
build_route 构建优化配送路线 认证
get_build_route_options Get available options for building routes: routing engines with their balance modes, capacity ty... 认证
get_api_endpoints Search the complete Superroute REST API catalog (the same OpenAPI spec that powers /api/document... 公开
get_graphql_operations Search the Superroute GraphQL catalog — every query and mutation, grouped by category, each with... 公开
run_graphql_query Execute a query or mutation against the Superroute GraphQL endpoint (POST /api/graphql) and retu... 认证
get_otep_tracking Get a package's tracking history as an OTEP (Open Tracking Event Protocol) document — the normal... 公开
validate_otep_payload Run an OTEP document or event through the live conformance validator (POST /api/v1/otep/validate... 公开
check_skill_update Check if a newer version of the Superroute AI integration skill file is available. Returns curre... 公开
get_integration_guide 获取集成指南 公开
get_otep_guide Get the OTEP (Open Tracking Event Protocol) development guide — the What/When/Where/Why event mo... 公开
get_webhook_guide Webhook 集成指南 公开
verify_webhook_signature Verify whether an incoming webhook signature is valid. Pass the raw payload (string or JSON obje... 公开
test_webhook_delivery Fire a real, properly-signed test webhook from Superroute servers to a URL the developer provide... 认证
get_webhook_settings Read the caller's own webhook configuration — every per-event callback URL, the behaviour flags,... 认证
update_webhook_settings Self-serve update of the caller's webhook configuration (PUT /api/v1/webhook-settings). Partial:... 认证
get_order_audit_timeline Chronological audit timeline of ONE order across every source: web actions, driver app scans, wa... 认证
get_webhook_delivery_logs List recorded webhook delivery attempts for the caller — event type, target URL, HTTP status, at... 认证
replay_webhook_delivery Re-send a webhook that was already logged, by delivery-log id (get the id from get_webhook_deliv... 认证
// .mcp.json — 优先连接级 Bearer { "mcpServers": { "superroute-dev": { "type": "url", "url": "https://api.superlabel.ca/mcp/developer", "headers": { "Authorization": "Bearer <token>" } } } }

2026-12-31 之后请勿在工具参数中传 api_token,请使用 MCP 连接的 Authorization。

User MCP 用于智能体管理 Superroute;Developer MCP 用于构建集成。完整安全模型、profile 与实时工具列表见 MCP 专栏。 打开 MCP 专栏 →
AI 工具发现端点

为 AI 代理、LLM 工具调用系统和 MCP 客户端提供的结构化能力描述。所有端点均公开,无需认证。

PRIMARY AI 工具清单

完整清单,包含工具定义、Schema、认证信息和工作流。

GET https://api.superlabel.ca/api/.well-known/ai-tools.json
还可用: /llms.txt
FORMAT 多格式导出

获取适配您 AI 平台原生格式的工具定义。

# OpenAI function calling GET https://api.superlabel.ca/api/ai/tools?format=openai # Anthropic Claude tool_use GET https://api.superlabel.ca/api/ai/tools?format=anthropic # MCP tools/list GET https://api.superlabel.ca/api/ai/tools?format=mcp # LangChain StructuredTool GET https://api.superlabel.ca/api/ai/tools?format=langchain
REST OpenAPI + AI 扩展

OpenAPI 规范,增加了 x-ai-* 扩展(工具名称、使用场景、分类)。

GET https://api.superlabel.ca/api/ai/tools/openapi
GQL GraphQL + AI 提示

GraphQL 文档,每个操作增加了 aiHints(使用场景、关联工作流)。

GET https://api.superlabel.ca/api/ai/tools/graphql
快速集成
Python(OpenAI SDK )
import requests, json tools = requests.get( "https://api.superlabel.ca/api/ai/tools?format=openai" ).json()["tools"] # Pass to OpenAI response = client.chat.completions.create( model="gpt-4", messages=messages, tools=tools )
Python(克劳德 SDK )
import requests, anthropic tools = requests.get( "https://api.superlabel.ca/api/ai/tools?format=anthropic" ).json()["tools"] # Pass to Claude response = client.messages.create( model="claude-sonnet-4-20250514", messages=messages, tools=tools )
Node.js(获取)
const res = await fetch( "https://api.superlabel.ca/api/ai/tools?format=openai" ); const { tools } = await res.json(); // Use with any LLM SDK console.log(`Loaded ${tools.length} tools`);
能力概览: 获取轻量级概览(仅类别和工具名称),请使用 GET https://api.superlabel.ca/api/ai/capabilities
AI 工具 Playground

直接在浏览器中测试 Superroute AI 工具。选择一个工具,填写参数,查看实时 API 响应。

选择工具
track_package
响应
点击"运行"执行工具...
使用 REST 或 GraphQL 构建

适用于构建自定义 AI 代理、聊天机器人或程序化集成的开发者。从您的代码中直接调用我们的 API,全面访问所有物流功能。

REST REST API 端点
# 追踪包裹(公开) GET https://api.superlabel.ca/api/v1/tracking/{number} # 操作事件 POST https://api.superlabel.ca/api/v1/tracking/operationevents # 获取运费报价 POST https://api.superlabel.ca/api/v1/labelservice/rate # 创建运输标签 POST https://api.superlabel.ca/api/v1/labelservice/submitOrder # 创建配送订单 POST https://api.superlabel.ca/api/v1/client/orderCreate # 构建优化路线 POST https://api.superlabel.ca/api/v3/client/build-route # 配置 Webhook PUT https://api.superlabel.ca/api/v1/webhook-settings # 开放追踪时间线(OTEP) GET https://api.superlabel.ca/api/v1/otep/trackings/{number}
完整文档
GQL GraphQL 操作
# 单一端点 POST https://api.superlabel.ca/api/graphql # 可用操作 trackingPublic ← 追踪包裹(公开) trackingOperationevents ← 操作事件 labelserviceRate ← 获取运费报价 labelserviceSubmitOrder ← 创建运输标签 clientOrderCreate ← 创建配送订单 clientBuildRoute ← 构建优化路线 webhookSettingsUpdate ← 配置 Webhook otepTracking ← 开放追踪时间线(OTEP)
完整文档
我们推荐大多数 AI 集成使用 REST API——它更易于调试,每个端点都是独立的。当您需要灵活查询或想在单次请求中获取嵌套数据时,请使用 GraphQL。
Superroute AI 集成技能

一个全面的技能文件,包含深度物流领域知识——每个 API 的功能、使用时机、参数在实际业务场景中的含义、如何解读结果,以及各功能如何组合使用。

下载技能文件 (.md)
如何使用技能文件
Claude Code
  • 1 下载上述文件
  • 2 将其放置在项目的 .claude/skills/ 目录中
  • 3 在 Claude Code 中输入 /integrate 启动交互式向导
mkdir -p .claude/skills cp superroute-ai-integration.md .claude/skills/
Cursor
  • 1 下载上述文件
  • 2 将其放置在项目的 .cursor/rules/ 目录中
  • 3 Cursor 将在您询问 Superroute 集成时自动将其用作上下文
mkdir -p .cursor/rules cp superroute-ai-integration.md .cursor/rules/
其他 AI 工具
  • 1 下载上述文件
  • 2 将内容粘贴到您 AI 工具的系统提示或知识库中
  • 3 AI 将使用语义描述来指导集成
# 或粘贴到系统提示中 cat superroute-ai-integration.md
保持技能文件为最新版本
快速 一键升级

直接从服务器下载最新的技能文件,覆盖本地副本。

# Claude Code curl -sS https://api.superlabel.ca/api/ai-skill -o .claude/skills/superroute-ai-integration.md # Cursor curl -sS https://api.superlabel.ca/api/ai-skill -o .cursor/rules/superroute-ai-integration.md
API 版本检查 API

下载前先检查服务器上的最新版本。将哈希值与本地文件对比,判断是否需要更新。

GET https://api.superlabel.ca/api/ai-skill/version 响应: { "version": "1.0.0", "hash": "abc123...", "download_url": "..." }
MCP 通过 MCP 自动更新

如果您已连接开发者 MCP 服务器,AI 助手可以使用 check_skill_update 工具检查更新。传入本地文件的 MD5 哈希值即可获取 update_available 布尔值。

// 通过开发者 MCP 服务器调用 { "method": "tools/call", "params": { "name": "check_skill_update", "arguments": { "current_hash": "your_local_file_md5_hash" } } }
CRON 自动更新脚本 (Cron / CI)

将此脚本添加到 CI 流水线或 cron 任务中,自动保持技能文件始终为最新版本。

#!/bin/bash # auto-update-skill.sh SKILL_FILE=".claude/skills/superroute-ai-integration.md" BASE_URL="https://api.superlabel.ca" mkdir -p "$(dirname "$SKILL_FILE")" LOCAL_HASH=$(md5sum "$SKILL_FILE" 2>/dev/null | cut -d' ' -f1) SERVER_HASH=$(curl -s "$BASE_URL/api/ai-skill/version" | python3 -c "import sys,json; print(json.load(sys.stdin)['hash'])") if [ "$LOCAL_HASH" != "$SERVER_HASH" ]; then curl -sS "$BASE_URL/api/ai-skill" -o "$SKILL_FILE" echo "Updated!" fi
技能文件不仅仅是 API 文档——它教会您的 AI 助手每个参数的业务含义、如何解读响应,以及如何组合功能以处理复杂的物流工作流。

代码示例

REST REST API — 追踪包裹
追踪包裹(无需令牌)
curl https://api.superlabel.ca/api/v1/tracking/SR123456
追踪包裹(无需令牌)
<?php $res = (new \GuzzleHttp\Client())->get('https://api.superlabel.ca/api/v1/tracking/SR123456'); print_r(json_decode($res->getBody(), true));
追踪包裹(无需令牌)
import requests res = requests.get('https://api.superlabel.ca/api/v1/tracking/SR123456') print(res.json())
追踪包裹(无需令牌)
resp, _ := http.Get("https://api.superlabel.ca/api/v1/tracking/SR123456") var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result)
追踪包裹(无需令牌)
const res = await fetch('https://api.superlabel.ca/api/v1/tracking/SR123456'); const data = await res.json();
追踪包裹(无需令牌)
HttpClient client = HttpClient.newHttpClient(); HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superlabel.ca/api/v1/tracking/SR123456")) .build(); HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.body());
追踪包裹(无需令牌)
require 'net/http' puts Net::HTTP.get(URI('https://api.superlabel.ca/api/v1/tracking/SR123456'))
GQL GraphQL — 查询订单
查询订单
curl -X POST https://api.superlabel.ca/api/graphql \ -H "Content-Type: application/json" \ -d '{"query":"query { trackingPublic(trackingNumber: \"SR123456\") { trackingNumber status events { timestamp description } } }"}'
查询订单
$query = 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }'; $res = (new \GuzzleHttp\Client())->post('https://api.superlabel.ca/api/graphql', [ 'json' => ['query' => $query, 'variables' => []], ]); print_r(json_decode($res->getBody(), true));
查询订单
import requests query = 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }' res = requests.post('https://api.superlabel.ca/api/graphql', json={'query': query, 'variables': {}}) print(res.json())
查询订单
payload, _ := json.Marshal(map[string]interface{}{ "query": `query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }`, "variables": map[string]interface{}{}, }) req, _ := http.NewRequest("POST", "https://api.superlabel.ca/api/graphql", bytes.NewBuffer(payload)) req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req)
查询订单
const res = await fetch('https://api.superlabel.ca/api/graphql', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: `query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }` }), }); const data = await res.json();
查询订单
String body = "{\"query\":\"query { trackingPublic(trackingNumber: \\\"SR123456\\\") { trackingNumber status } }\"}"; HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superlabel.ca/api/graphql")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)).build(); HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
查询订单
require 'net/http'; require 'json' uri = URI('https://api.superlabel.ca/api/graphql') req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json') req.body = JSON.dump({ query: 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }' }) puts Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }.body
MCP MCP — 追踪包裹
追踪包裹(无需 Token)
curl -X POST https://api.superlabel.ca/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"track_package","arguments":{"tracking_number":"SR123456"}}}'
追踪包裹(无需 Token)
$payload = [ 'jsonrpc' => '2.0', 'id' => 1, 'method' => 'tools/call', 'params' => ['name' => 'track_package', 'arguments' => ['tracking_number' => 'SR123456']], ]; $res = (new \GuzzleHttp\Client())->post('https://api.superlabel.ca/mcp', ['json' => $payload]); print_r(json_decode($res->getBody(), true));
追踪包裹(无需 Token)
import requests payload = { 'jsonrpc': '2.0', 'id': 1, 'method': 'tools/call', 'params': {'name': 'track_package', 'arguments': {'tracking_number': 'SR123456'}}, } res = requests.post('https://api.superlabel.ca/mcp', json=payload) print(res.json())
追踪包裹(无需 Token)
payload, _ := json.Marshal(map[string]interface{}{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": map[string]interface{}{ "name": "track_package", "arguments": map[string]interface{}{"tracking_number": "SR123456"}, }, }) req, _ := http.NewRequest("POST", "https://api.superlabel.ca/mcp", bytes.NewBuffer(payload)) req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req)
追踪包裹(无需 Token)
const res = await fetch('https://api.superlabel.ca/mcp', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/call', params: { name: 'track_package', arguments: { tracking_number: 'SR123456' } }, }), }); const data = await res.json();
追踪包裹(无需 Token)
String body = "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"track_package\",\"arguments\":{\"tracking_number\":\"SR123456\"}}}"; HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superlabel.ca/mcp")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)).build(); HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
追踪包裹(无需 Token)
require 'net/http'; require 'json' uri = URI('https://api.superlabel.ca/mcp') req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json') req.body = JSON.dump({ jsonrpc: '2.0', id: 1, method: 'tools/call', params: { name: 'track_package', arguments: { tracking_number: 'SR123456' } } }) puts Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }.body