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

Envia MCP

MCP Server

提供多国家物流服务的MCP服务器和TypeScript客户端,支持报价、标签生成、追踪和取消货运等功能。

工具数

11

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude云端部署Claude DesktopClaudeCursor

安装说明

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

作者 / 组织

amak07

提供方

amak07

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

envia-mcp

MCP server + TypeScript client for the Envia.com shipping API.

Quote, label, track, and cancel shipments across 170+ carriers in 18 countries — from AI agents or your own code.

______________________________________________________________________

里面有什么

两个出口,一个包装:

导出导入用例
MCP 服务器envia-mcpAI代理(Claude Code、Claude Desktop、Cursor)通过自然语言与Envia交互
客户端库envia-mcp/clientNode.js/TypeScript应用程序使用完全类型安全性直接调用Envia API
类型定义envia-mcp/types所有API实体的Zod架构和TypeScript类型

支持的国家

美洲

国家代码运营商知名运营商
墨西哥MX34DHL、联邦快递、Estafeta、Paquetexpress、UPS
美国美国33联邦快递、UPS、美国邮政、DHL、Sendle、LSO
哥伦比亚CO16联邦快递,DHL,协调员,服务交付,TCC
阿根廷AR12安德里亚尼,阿根廷邮政,联邦快递,DHL,OCA
巴西BR11科雷奥斯、联邦快递、DHL、Jadlog、Loggi
智利CL10智利快递、智利邮政、联邦快递、DHL、Starken
危地马拉GT7快递货物, DHL, Telomando
加拿大加利福尼亚州4加拿大邮政、Canpar、DHL、Purolator
乌拉圭UY3DHL,特雷戈
秘鲁PE1奥尔瓦

欧洲、亚洲和大洋洲

国家代码运营商知名运营商
西班牙ES16科雷奥斯、DHL、联邦快递、GLS、SEUR、UPS
印度IN9BlueDart、Delhivery、联邦快递、Aramex、Xpressbees
法国法国4Chronopost、Mondial Relay、UPS
意大利IT4意大利邮政、快速公交、InPost、UPS
澳大利亚澳大利亚3Aramex、联邦快递、Sendle
香港香港1联邦快递
日本日本1--
中国CN1--
Envia随着时间的推移增加了运营商和国家。使用 envia_get_carriers 以获取当前列表。

______________________________________________________________________

快速开始

作为MCP服务器

服务器连接到 发送沙箱 默认情况下,没有实际费用,可以安全地进行实验。

添加到您的Claude代码配置中(.mcp.json):

{
  "mcpServers": {
    "envia": {
      "command": "node",
      "args": ["/path/to/envia-mcp/dist/index.js"],
      "env": {
        "ENVIA_API_KEY": "your-sandbox-api-key"
      }
    }
  }
}

或者,如果通过npm全局安装:

{
  "mcpServers": {
    "envia": {
      "command": "npx",
      "args": ["envia-mcp"],
      "env": {
        "ENVIA_API_KEY": "your-sandbox-api-key"
      }
    }
  }
}

作为客户图书馆

import { EnviaClient } from 'envia-mcp/client';

// Sandbox (default — safe for testing)
const client = new EnviaClient({
  apiKey: process.env.ENVIA_API_KEY!,
  shippingUrl: 'https://api-test.envia.com',
  queriesUrl: 'https://queries-test.envia.com',
  geocodesUrl: 'https://geocodes.envia.com',
});

// Get rates from all carriers, sorted by price
const quotes = await client.getQuotesAllCarriers(origin, destination, packages);

// Purchase a label (charges your prepaid balance in USD)
const label = await client.createLabel(origin, destination, packages, 'fedex', 'ground');

// Track a shipment
const tracking = await client.trackShipments(['TRACK123']);

______________________________________________________________________

MCP工具

服务器暴露 11工具 AI代理可以调用:

工具描述破坏性
envia_quote从所有承运商处获取路线的运费
envia_create_label购买运输标签(收取美元余额)
envia_track按跟踪号跟踪一个或多个货物
envia_cancel取消发货并要求退款
envia_validate_zipcode验证邮政编码并获取地址信息
envia_get_carriers列出一个国家/地区的可用运营商
envia_get_services列出特定运营商的服务
envia_shipment_history获取给定月份/年份的发货历史记录
envia_schedule_pickup安排承运商提货
envia_classify_hscode将产品描述分类为海关的HS编码
envia_lookup_city按名称查找城市,获取邮政编码(无身份验证)

所有工具均已归还 标记语言 (用于展示)以及 结构化数据 (用于程序化使用)。

MCP资源

7文档资源为人工智能代理提供了关于Envia API的上下文:

URI内容
envia://docs/overviewAPI主机、身份验证模型、沙箱与生产
envia://docs/address-format-mx墨西哥地址字段、州代码、colonia映射
envia://docs/carriers34个承运商,服务数量,重量限制
envia://docs/rate-response价格明细、墨西哥比索货币、额外费用
envia://docs/label-response美元货币,永久标签URL,无幂等性
envia://docs/errors错误代码及其处理方法
envia://docs/international国际航运指南:HS编码、商业发票、货币、关税

MCP提示

4个工作流提示引导代理完成多步骤任务:

提示它做什么
diagnose-shipment调查跟踪状态,识别卡住/失败的货物
compare-rates为所有运营商提供路线报价,比较价格与速度
verify-address验证邮政编码,返回社区和坐标
prepare-international-shipment分步国际货运工作流程

______________________________________________________________________

客户端API

EnviaClient 类为每个Envia操作提供类型化方法:

import { EnviaClient } from 'envia-mcp/client';

const client = new EnviaClient({ apiKey, shippingUrl, queriesUrl, geocodesUrl });
方法返回描述
getQuotes(origin, dest, packages, carrier)RateQuoteItem[]价格从一个承运人
getQuotesAllCarriers(origin, dest, packages)RateQuoteItem[]按价格排序,分为所有运营商
createLabel(origin, dest, packages, carrier, service)LabelItem购买运输标签
trackShipments(trackingNumbers)TrackingItem[]跟踪一个或多个货物
cancelShipment(carrier, trackingNumber)CancellationItem取消并要求退款
validateZipCode(postalCode, countryCode?)PostalCodeItem[]验证邮政编码(无需身份验证)
getCarriers(countryCode?)Carrier[]列出可用的运营商
getServices(carrier, countryCode?)CarrierService[]列出运营商的服务
getShipmentHistory(month, year)ShipmentHistoryItem[]获取一个月的发货历史记录
schedulePickup(request)PickupResult安排承运人提货
classifyHsCode(description, options?)HsCodeClassification将产品分类为HS编码
generateCommercialInvoice(request)CommercialInvoiceResult为海关生成商业发票
lookupCity(city, countryCode?)CityLookupItem[]按名称查找城市,获取邮政编码
getAvailableCarriers(countryCode?, international?)AvailableCarrier[]列出运营商及其可用性详细信息

______________________________________________________________________

提交API Gotchas

如果你不小心,会咬你的东西:

Gotcha详细信息
phone_code 不同引号的国家代码字符串(例如。 "MX"),标签的拨号代码(例如。 "52")
报价为MXN,标签为USD预付余额以美元计价
标签不是幂等的重复通话=双重收费,不同的追踪号码
沙盒地理编码已关闭始终使用生产 geocodes.envia.com
每份报价都需要承运人客户端会自动扇出,但原始API每次调用需要一个运营商
按跟踪号跟踪shipmentId 不可用作跟踪密钥

______________________________________________________________________

配置

MCP服务器从环境变量中读取配置:

变量必填默认描述
ENVIA_API_KEY-您的Envia.com API密钥
ENVIA_SHIPPING_URLhttps://api-test.envia.com运输API基本URL
ENVIA_QUERIES_URLhttps://queries-test.envia.com查询API基本URL
ENVIA_GEOCODES_URLhttps://geocodes.envia.com地理代码API基本URL

沙盒vs生产

服务器默认为Envia的沙盒环境。 这是故意的。

envia_create_label 该工具购买真正的运输标签——它需要花钱,而且 非幂等 (调用两次会创建两个具有不同跟踪号的标签,并收取两次费用)。AI代理可以在对话中多次触发此工具,并且无法撤消。默认使用沙盒可以防止在开发、测试和实验过程中发生意外充电。

切换到生产

要使用实时Envia API,请将URL环境变量设置为生产主机:

{
  "mcpServers": {
    "envia": {
      "command": "node",
      "args": ["/path/to/envia-mcp/dist/index.js"],
      "env": {
        "ENVIA_API_KEY": "your-production-api-key",
        "ENVIA_SHIPPING_URL": "https://api.envia.com",
        "ENVIA_QUERIES_URL": "https://queries.envia.com"
      }
    }
  }
}

重要提示:

  • 沙箱和生产使用 单独的API密钥 --沙盒密钥在生产环境中不起作用,反之亦然
  • 地理代码(geocodes.envia.com)始终使用生产环境——沙盒地理编码端点已关闭(503)
  • 服务器日志 (sandbox)(PRODUCTION) 在创业时,你总是知道你所处的环境

______________________________________________________________________

货币

currency 请求中省略了字段。对于期待MXN(或其当地货币)的拉丁美洲用户来说,这是一个常见的困惑来源。官方的 @envia/envia-mcp 服务器继承了这种行为,默默地以美元报价和收费。

我们的实现默认为MXN。 您可以全局覆盖或每次调用覆盖此内容:

// Default: MXN
const client = new EnviaClient({ apiKey, shippingUrl, queriesUrl, geocodesUrl });

// Override globally (e.g., for Colombia)
const client = new EnviaClient({
  apiKey,
  shippingUrl,
  queriesUrl,
  geocodesUrl,
  defaultCurrency: 'COP',
});

// Override per call via the currency parameter
const quotes = await client.getQuotesAllCarriers(origin, destination, packages, {
  currency: 'USD',
});

MCP服务器也默认为MXN。集 ENVIA_DEFAULT_CURRENCY 改变它。

______________________________________________________________________

HTTP功能

客户端包括生产级HTTP处理:

  • SSRF保护 -主机名允许列表仅将请求限制到已知的Envia API域
  • 指数退避重试 --失败的请求最多重试3次,延迟逐渐增加
  • Retry-After 标头支持 --在重试之前遵守服务器请求的冷却期

______________________________________________________________________

与@envia/envia-mcp的比较

Envia在以下位置维护着一个官方MCP服务器 @envia/envia-mcp。以下是一个事实比较:

特性envia mcp(此项目)@envia/envia mcp(官方)
Typed TypeScript客户端库
可配置货币默认值是(MXN默认值)否(美元默认值)
Zod响应验证
结构化MCP输出(数据+Markdown)
沙盒地理编码回退
SSRF保护(主机名分配列表)
使用指数回退重试
Envia官方品牌
默认沙盒
10+MCP工具是(11)

官方服务器中的已知问题:

  • 缺失 settings 标签创建时的对象导致HTTP 400错误
  • 默认为美元而不是墨西哥比索,这对一级市场(墨西哥)来说是出乎意料的

______________________________________________________________________

发展

# Clone and install
git clone https://github.com/amak07/envia-mcp.git
cd envia-mcp
npm.cmd install

# Build
npm.cmd run build

# Type check
npm.cmd run typecheck

# Run tests (30 unit tests, mocked API)
npm.cmd run test:run

# Dev mode (watch + restart)
npm.cmd run dev

项目结构

src/
  index.ts          # MCP server entry point (shebang, stdio transport)
  client.ts         # EnviaClient class (standalone, no MCP dependency)
  types.ts          # Zod schemas + TypeScript types for all API entities
  utils.ts          # HTTP helpers, error handling, formatting
  constants.ts      # API URLs, character limits, response format
  tools/
    quote.ts        # envia_quote — fan-out rate quoting
    create-label.ts # envia_create_label — label purchase
    track.ts        # envia_track — shipment tracking
    cancel.ts       # envia_cancel — shipment cancellation
    validate-zipcode.ts  # envia_validate_zipcode — postal code lookup
    get-carriers.ts # envia_get_carriers — carrier directory
    get-services.ts # envia_get_services — service catalog
    index.ts        # Barrel — registerAllTools()
  resources/
    index.ts        # 6 inline documentation resources
  prompts/
    index.ts        # 3 workflow prompts
  client.test.ts    # 30 unit tests (mocked fetch)
tests/
  fixtures/         # Real API response snapshots (JSON)

______________________________________________________________________

技术栈

  • TypeScript 严格模式
  • MCP-SDK @modelcontextprotocol/sdk 1.27+
  • 黄道带 用于运行时模式验证
  • 本土的 fetch (内置Node.js 18+,无轴)
  • Vitest 用于单元测试
  • ESM ("type": "module")

______________________________________________________________________

许可证

麻省理工学院

______________________________________________________________________

Built for RefaccionesDirect — open-sourced for the MCP community.

目录标签

目录标签

TypeScriptClaude云端部署物流服务本地部署API集成货运管理多国家支持

支持客户端

Claude DesktopClaudeCursor

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP