mcpField
P
pingpoint

pingpoint

本地服务
pingpoint.suverse.io地图与出行13 天前更新

关于 pingpoint

pingpoint 是面向货运运营和 AI Agent 的卡车 GPS 跟踪 MCP 服务,可创建货运任务并读取实时位置、ETA 与行程统计。它还支持按调用使用 USDC 结算。

主要功能

  1. 01创建含多个停靠点的货运任务
  2. 02查询实时位置、GPS 轨迹和 ETA
  3. 03查看司机定位共享状态
  4. 04获取行程距离、时长和速度统计
  5. 05取消任务并查询价格或余额

适用场景

  1. 01创建任务并向司机发送跟踪链接
  2. 02检查在途卡车位置及预计到达时间
  3. 03交付后查看完整行程统计

MCP 相关

向 MCP 客户端提供货运任务创建、位置查询、行程统计、取消及价格和余额查询工具。支持本地 stdio 运行,也提供托管 Streamable HTTP 端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sudzikcoin-pingpoint": {
"command": "npx",
"args": [
"-y",
"@suverselabs/pingpoint-mcp"
],
"env": {
"PINGPOINT_AGENT_KEY": "<PINGPOINT_AGENT_KEY>",
"PINGPOINT_WALLET_KEY_FILE": "<PINGPOINT_WALLET_KEY_FILE>",
"PINGPOINT_NETWORK": "<PINGPOINT_NETWORK>",
"PINGPOINT_BASE_URL": "<PINGPOINT_BASE_URL>",
"PINGPOINT_RPC_URL": "<PINGPOINT_RPC_URL>"
}
}
}
}
启动命令npx -y @suverselabs/pingpoint-mcp
需要配置的环境变量
PINGPOINT_AGENT_KEY密钥PingPoint Agent API key (sup_agent_...), issued in the cabinet: Integrations -> Agent API. Either this or PINGPOINT_WALLET_KEY_FILE.
PINGPOINT_WALLET_KEY_FILE密钥Pay per call with USDC (x402) instead of a key: path to a file holding the wallet key - EVM private key (0x + 64 hex) for arc-mainnet/arc-testnet/base-mainnet, solana-keygen JSON or base58 secret for solana-mainnet. Either this or PINGPOINT_AGENT_KEY.
PINGPOINT_NETWORKNetwork for wallet mode: arc-testnet (default), arc-mainnet, base-mainnet or solana-mainnet
PINGPOINT_BASE_URLOverride for the PingPoint API base URL (default https://api.suverse.io with a key, https://pingpoint.suverse.io with a wallet)
PINGPOINT_RPC_URLWallet mode only: JSON-RPC URL of the chosen chain for get_balance and, on Solana, the blockhash read each payment needs (default: the public RPC, which rate-limits)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@suverselabs/pingpoint-mcp0.5.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@suverselabs/pingpoint-mcp

为 AI Agent 提供实时卡车 GPS 位置的 MCP 服务:创建货运订单后,PingPoint 会向司机发送包含应用链接的短信(约一分钟即可完成注册——无需 ELD 提供商、企业账户或年度合同),之后即可读取实时位置、GPS 轨迹、停靠点时间线和预计到达时间(ETA),并取消不再需要的订单。

还没有账户?https://pingpoint.suverse.io/docs/#sandbox 上提供了沙盒密钥:接口相同,无需注册,订单会在约 20 分钟内自动完成整个流程。也可以完全跳过密钥,通过 Arc、Base 或 Solana 钱包使用 USDC 按次付费。

安装

Claude Code,只需一行:

claude mcp add pingpoint --env PINGPOINT_AGENT_KEY=sup_agent_… -- npx -y @suverselabs/pingpoint-mcp

或者添加到 MCP 配置中(Claude Desktop:claude_desktop_config.json;Claude Code:.mcp.json;任何支持 MCP 的 Agent 都可以采用相同方式):

{
  "mcpServers": {
    "pingpoint": {
      "command": "npx",
      "args": ["-y", "@suverselabs/pingpoint-mcp"],
      "env": {
        "PINGPOINT_AGENT_KEY": "sup_agent_…"
      }
    }
  }
}

重启 Agent 后即可看到这些工具。

托管端点(无需安装)

支持 MCP Streamable HTTP 的客户端可以直接连接到

https://pingpoint.suverse.io/mcp
Authorization: Bearer sup_agent_…

Claude Code:claude mcp add --transport http pingpoint https://pingpoint.suverse.io/mcp --header "Authorization: Bearer sup_agent_…"。

该服务是无状态的,不保存任何凭据:每个请求都使用其携带的密钥执行。无需密钥即可列出工具;不带密钥调用工具会返回 HTTP 401。工具相同,价格相同。钱包模式(使用 USDC 按次付费)仅在自行运行此软件包时可用。

工具

工具功能返回内容价格
create_load创建货运订单(支持多个停靠点);PingPoint 会向 driverPhone 发送包含司机应用链接的短信loadNumber、公开的 trackingLink、司机网页/应用链接、去重标记$0.65
get_load_position按订单编号获取订单实时状态状态、司机跟踪状态(driverTracking),包含邀请/打开/拒绝时间戳、GPS 轨迹(最近 500 个点)、包含到达/离开时间戳的停靠点、已行驶距离、准时标记、停留时间、ETA 信息块$0.02
get_trip_stats汇总整个 GPS 行程的行程后数据(最适用于状态为 DELIVERED 的订单)stats,包含距离、时长、平均/最高速度、急加速/急刹车次数、市区/高速/停车/夜间占比、GPS 覆盖率、首次/最后一次定位时间$0.02
cancel_load取消订单:状态变为 CANCELLED,停止跟踪,不删除任何内容,也不退款{ ok, loadNumber, previousStatus, status, cancelledAt, trackingEndedAt }免费
update_load_statusAPI 不支持此操作——状态由 GPS 验证,见下文HTTP 501 OPERATION_NOT_AVAILABLE—
get_pricingAgent 操作当前的美元价格列表{ currency, prices }免费
get_balance用于支付创建订单和读取位置费用的预付余额{ currency, balanceUsd }免费

为什么 update_load_status 会返回 501。 PingPoint 会根据司机 GPS 和地理围栏事件自行更新订单状态,因此不支持外部状态写入。这可视为数据完整性保证:读取到的状态从未由任何人手动设置,而是基于实际记录的位置。保留此工具只是为了让尝试调用它的 Agent 得到明确答复,而不是一头雾水。同样,确认交付也不属于服务商操作——这由承运商流程负责,承运商会通过 Telegram 提交 BOL。

停靠点。 一个订单包含 1–2 个提货点和 1–3 个送货点;数组顺序即停靠顺序。每个停靠点可设置时间窗口:date(开始时间)和 dateTo(结束时间)。onTime 根据最后一个送货点的 dateTo 计算;若未设置该字段,onTime 将保持为 null。订单创建后停靠点即固定——没有添加停靠点的工具。

创建订单时必填:driverPhone(E.164 格式——司机应用链接会发送至该号码)以及 pickups 和 deliveries 数组;每个停靠点都必须包含 address、city、state、zip。其他内容均为可选项。customerRef 也可用作去重键;重试时传入相同的 idempotencyKey,即可确保余额最多只扣除一次。

示例 —“我的货物在哪里?”

使用 { "loadNumber": "LD-2026-042317" } 调用 get_load_position 会返回:

{
  "loadNumber": "LD-2026-042317",
  "pingpointLoadId": "6f1c2d3e-8a45-4b9c-9d10-2e5f7a8b9c01",
  "status": "IN_TRANSIT",
  "createdAt": "2026-08-18T14:02:11.000Z",
  "deliveredAt": null,
  "driverTracking": "REPORTING",
  "inviteSentAt": "2026-08-18T14:02:12.000Z",
  "linkOpenedAt": null,
  "declinedAt": null,
  "distanceMiles": 412.7,
  "onTime": null,
  "delayMinutes": null,
  "pickupDwellMinutes": 38,
  "deliveryDwellMinutes": null,
  "stops": [
    { "type": "PICKUP", "sequence": 1, "city": "Claremore", "state": "OK",
      "windowFrom": "2026-08-18T15:00:00.000Z", "windowTo": "2026-08-18T19:00:00.000Z",
      "arrivedAt": "2026-08-18T15:47:31.000Z", "departedAt": "2026-08-18T16:25:09.000Z" },
    { "type": "DELIVERY", "sequence": 2, "city": "Charlotte", "state": "NC",
      "windowFrom": "2026-08-20T12:00:00.000Z", "windowTo": "2026-08-20T16:00:00.000Z",
      "arrivedAt": null, "departedAt": null }
  ],
  "gpsTrack": [
    { "lat": 36.3126, "lng": -95.6161, "speed": null, "heading": null, "ts": "2026-08-18T16:25:09.000Z" },
    { "lat": 35.4676, "lng": -94.3579, "speed": null, "heading": null, "ts": "2026-08-18T18:55:42.000Z" }
  ],
  "pingCount": 214,
  "eta": {
    "nextStop": { "type": "DELIVERY", "sequence": 2, "city": "Charlotte", "state": "NC" },
    "receivingWindow": { "from": "2026-08-20T12:00:00.000Z", "to": "2026-08-20T16:00:00.000Z" },
    "distanceToNextStopMi": 611.4,
    "driveTimeHours": 11.2,
    "moving": true,
    "stoppedForMinutes": null,
    "etaWindow": { "from": "2026-08-20T13:05:00.000Z", "to": "2026-08-20T15:40:00.000Z" },
    "tracking": { "state": "pinging", "noDataForMinutes": null },
    "reason": null
  }
}

(此处缩短了 gpsTrack;API 最多返回最近 500 个点。)

示例 —“这趟行程怎么样?”

get_load_position 回答“卡车现在在哪里”;get_trip_stats 回答“这趟已完成的行程怎么样”。对于状态为 DELIVERED 的货物,使用 { "loadNumber": "LD-2026-648319" } 调用 get_trip_stats 会返回:

{
  "loadNumber": "LD-2026-648319",
  "loadId": "927741bc-dfd0-41ba-9e99-5c5031c756f9",
  "stats": {
    "dataPoints": 4785,
    "durationSeconds": 69329,
    "estimatedDistanceMiles": 486.591,
    "avgSpeedMph": 25.27,
    "maxSpeedMph": 88.22,
    "hardAccelCount": 280,
    "hardBrakeCount": 168,
    "cityMilesPct": 9.96,
    "highwayMilesPct": 88.65,
    "parkedTimePct": 53.65,
    "nightPct": 44.7,
    "coveragePct": 100,
    "firstAt": "2026-08-18T16:53:25.000Z",
    "lastAt": "2026-08-19T12:08:54.000Z"
  }
}

距离单位为英里,速度单位为英里/小时,百分比范围为 0–100,时间戳为 UTC。

司机真的在共享位置吗?

get_load_position 返回结果中的 driverTracking 与 PingPoint 管理界面显示的词语相同,因此 Agent 无需根据空轨迹猜测,就能解释为什么货物没有位置更新:

driverTracking含义查看
NOT_BOUND司机从未在应用中打开链接inviteSentAt(是否已发送短信?)、linkOpenedAt(已在浏览器中打开,但未安装应用)
BOUND_SILENT应用已绑定到货物,但尚无位置等待首次位置更新
DECLINED司机在位置授权屏幕上点了“暂不”declinedAt;司机同意后会清除
REPORTING正在接收位置gpsTrack、eta
PAUSED_BY_DRIVER司机已在应用中暂停共享eta.tracking.state === "driver_paused"

null 表示货物尚未分配司机。

Webhook

推送通知(pingpoint.load.created、pingpoint.load.updated、pingpoint.status.changed、pingpoint.load.completed、pingpoint.exception.raised、pingpoint.exception.resolved — 后两项用于 LATE / NO_SIGNAL / LONG_DWELL)需在管理界面中配置,不能通过 MCP 工具配置:https://pingpoint.suverse.io/docs/webhooks

使用 USDC 按次付费

无需账户或密钥:将服务指向一个钱包,每次付费工具调用都会通过 x402(HTTP 402 + 已签名的 USDC 转账)从该钱包结算。PingPoint 的中继器会提交转账并支付 Gas;服务只需签名。使用 PINGPOINT_NETWORK 选择链:

PINGPOINT_NETWORK密钥文件内容USDC
arc-mainnetEVM 私钥,0x + 64 位十六进制字符Arc 上的 USDC 0x3600…0000
arc-testnet(默认)EVM 私钥,0x + 64 位十六进制字符Arc 测试网 USDC 0x3600…0000(水龙头)
base-mainnetEVM 私钥,0x + 64 位十六进制字符Base 上的 Circle USDC 0x8335…2913
solana-mainnetSolana 秘密密钥——由 solana-keygen 写入的 64 字节 JSON 数组,或 base58Circle USDC 铸币地址 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
# EVM (Arc testnet / Base)
echo "0x<64 hex private key>" > ~/.pingpoint-wallet.key && chmod 600 ~/.pingpoint-wallet.key
claude mcp add pingpoint --env PINGPOINT_WALLET_KEY_FILE=$HOME/.pingpoint-wallet.key --env PINGPOINT_NETWORK=base-mainnet -- npx -y @suverselabs/pingpoint-mcp

# Solana
solana-keygen new --outfile ~/.pingpoint-wallet.json   # or point at an existing keypair file
claude mcp add pingpoint --env PINGPOINT_WALLET_KEY_FILE=$HOME/.pingpoint-wallet.json --env PINGPOINT_NETWORK=solana-mainnet -- npx -y @suverselabs/pingpoint-mcp
{
  "mcpServers": {
    "pingpoint": {
      "command": "npx",
      "args": ["-y", "@suverselabs/pingpoint-mcp"],
      "env": {
        "PINGPOINT_WALLET_KEY_FILE": "/home/me/.pingpoint-wallet.json",
        "PINGPOINT_NETWORK": "solana-mainnet",
        "PINGPOINT_RPC_URL": "https://<your-solana-rpc>"
      }
    }
  }
}

在该网络的钱包中存入 USDC(询问 get_balance——它会返回地址和余额),然后照常使用工具。在 Solana 上,钱包无需 SOL:PingPoint 的中继器会支付交易费用。付费结果会包含一个 payment 块,其中有交易哈希(EVM)或签名(Solana),以及区块浏览器链接:

{ "loadNumber": "LD-2026-111417", "trackingLink": "https://pingpoint.suverse.io/track/…",
  "payment": { "transaction": "0x97f738e3…", "network": "base-mainnet", "payer": "0xE958…dB2E",
               "amountUsdc": "0.65", "explorerUrl": "https://basescan.org/tx/0x97f738e3…" } }
工具价格(USDC)备注
create_load0.65每个钱包和网络:测试网上每 24 小时 2 次,主网上 20 次;一小时内被另一个钱包使用过的司机电话将被拒绝
get_load_position每次调用 0.02仅限此钱包创建的货载(其他钱包的货载 → 403)
get_trip_stats每次调用 0.02同样遵循所有权规则
cancel_load免费零金额签名可证明所有权,无需交易
get_pricing免费读取服务的 402 报价,不签名
get_balance免费对钱包的 USDC 进行一次 RPC 读取(ERC-20 balanceOf 或 Solana 代币账户);PINGPOINT_RPC_URL 可覆盖公共 RPC

被拒绝的调用(403、404、429、无效输入、PaymentFailed INSUFFICIENT_BALANCE、503 X402_RELAYER_LOW_GAS)不收费:结算前会检查所有权、限额、余额和中继器的 Gas。EVM 报价有效期为 300 s,每个签名使用一次性 nonce;Solana 交易的有效期与其区块哈希相同(约一分钟)。SDK 会在签名前拒绝超过 1 USDC 或使用其他资产或网络的报价。请妥善保管密钥文件(chmod 600)——钱包只存入当天所需的 USDC 是合理的设置。公共 RPC 端点(Base、Solana)会进行速率限制;如需稳定使用,请将 PINGPOINT_RPC_URL 设置为你的服务提供商。

获取密钥

  1. 在 pingpoint.suverse.io 注册(电子邮件或 Google/GitHub)。
  2. 在控制台中打开 Integrations → Agent API,然后点击 Issue key。
  3. sup_agent_… 密钥会通过电子邮件发送。PingPoint 不会存储密钥;如果密钥丢失,请从同一页面重新签发。

余额为零时,免费操作仍可使用。付费操作会从预付余额中扣款(在控制台的 Billing 中充值);余额不足以支付调用时,你会收到 402 INSUFFICIENT_FUNDS,且不会产生扣款。

价格

操作价格
创建货载$0.65
读取货载位置每次请求 $0.02
行程摘要统计每次请求 $0.02
取消货载免费
更新货载状态不可用(501)
价格 / 余额免费

使用钱包按次付费时,价格同样以 USDC 计价。

环境

变量含义
PINGPOINT_AGENT_KEY你的 sup_agent_… 密钥。此项和 PINGPOINT_WALLET_KEY_FILE 必须且只能设置一项。
PINGPOINT_WALLET_KEY_FILE保存付款钱包私钥的文件路径 — 使用 USDC 按次付费,而不是使用密钥。EVM 网络:0x + 64 位十六进制数。Solana:solana-keygen JSON 数组(64 字节)或 base58。
PINGPOINT_NETWORK钱包模式:arc-testnet(默认)、arc-mainnet、base-mainnet 或 solana-mainnet。
PINGPOINT_RPC_URL钱包模式下可选:该链的 JSON-RPC URL,用于 get_balance(在 Solana 上还用于读取每次付款都需要的区块哈希)。默认使用公共 RPC,该服务会限制请求频率。
PINGPOINT_HTTP_PORT可选,自托管时使用:在此端口的 POST /mcp 上提供 Streamable HTTP 服务,而不是使用 stdio(PINGPOINT_HTTP_HOST 默认为 127.0.0.1)。客户端发送自己的 Authorization: Bearer 密钥;服务端不得持有自己的密钥或钱包。
PINGPOINT_BASE_URL可选。使用密钥时默认为 https://api.suverse.io,使用钱包时默认为 https://pingpoint.suverse.io。

基于 @suverselabs/pingpoint-sdk 构建 — 使用相同的合约,仅有一种实现。Node ≥ 18。运行时依赖:MCP SDK、zod、viem(EVM 钱包签名和余额读取)以及 @solana/web3.js(Solana 密钥对签名)。

完整 API 文档:https://pingpoint.suverse.io/docs

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。