# 全球海关贸易数据 MCP 官网 PyPI Python 全球海关贸易数据 MCP 服务 — 覆盖 238 个国家/地区,一站式查询进出口贸易明细与采购商、供应商企业画像分析。 ## 简介 `全球海关贸易数据 MCP` 是一个 MCP(Model Context Protocol)服务器,对接 [tradee.topease.net](https://tradee.topease.net/) 海关智能体贸易数据平台。内置 **15 个工具**:海关贸易明细查询、采购商(Importer)/供应商(Exporter)企业搜索,以及围绕两大主体的关键字、贸易角色、HS 编码、贸易港口、贸易趋势、交易对手等多维度分析能力,帮助大模型快速获取真实的全球贸易情报数据。 > 使用前需在 注册并获取 API Key。 ## 特性 - 🌍 **全球覆盖**:支持 238 个国家/地区的贸易数据查询 - 🔍 **多维度查询**:企业名称、产品关键字、HS 编码、贸易时间、进出口类型、国家联合筛选 - 🔐 **安全认证**:支持 API Key 认证,保护数据访问安全 - 🚀 **两种传输模式**:支持 stdio(桌面客户端)和 streamable-http(Web 应用)两种运行模式 - 📊 **丰富的返回字段**:包含企业信息、产品详情、贸易金额、数量、重量等完整数据 - 🧭 **双主体多维分析**:围绕采购商(importer)与供应商(exporter)各提供 7 个分析工具,覆盖关键字、贸易角色、HS 编码、港口、趋势、交易对手等维度 ## 安装 ### 使用 pip ```bash pip install topease-mcp ``` ### 使用 uv ```bash uv add topease-mcp ``` ### 使用 uvx(免安装,直接运行) ```bash uvx topease-mcp ``` ### 从源码安装 ```bash git clone https://github.com/topease020/topease-customs-mcp-server.git cd topease-customs-mcp-server uv pip install -e . ``` ## 快速开始 ### 方式一:stdio 模式(推荐用于 Claude Desktop、Trae 等桌面客户端) 在 Claude Desktop、Trae 等 MCP 客户端的配置文件中添加: ```json { "mcpServers": { "topease-customs-data": { "command": "uvx", "args": ["topease-mcp"], "env": { "TOPEASE_MCP_API_KEY": "" } } } } ``` 或使用 pip 安装的版本: ```json { "mcpServers": { "topease-customs-data": { "command": "python", "args": ["-m", "topease-mcp"], "env": { "TOPEASE_MCP_API_KEY": "" } } } } ``` ### 方式二:streamable-http 模式(推荐用于 Web 应用) #### 公共服务地址 我们提供了公共的 streamable-http 服务,您可以直接使用以下配置: | 配置项 | 值 | | ---------- | ------------------------------------- | | **服务类型** | 可流式传输的 HTTP (streamableHttp) | | **服务 URL** | `https://mcp.topease.net/mcp` | | **请求头** | `Authorization=Bearer ` | #### 在大模型客户端中配置 在 Claude Desktop、Trae 等支持 streamable-http 的客户端中添加配置: ```json { "mcpServers": { "【PRO】TOPEASE 贸易数据查询 stream http": { "type": "streamableHttp", "url": "https://mcp.topease.net/mcp", "headers": { "Authorization": "Bearer " } } } } ``` ## API Key 配置说明 本服务支持两种 API Key 配置方式(按优先级排序): 1. **环境变量**(推荐):设置 `TOPEASE_MCP_API_KEY` 环境变量 2. **HTTP 请求头**(streamable-http 模式):通过 `Authorization: Bearer ` 请求头传递 ## 可用工具 当前共注册 **15 个工具**: | 分类 | 工具 | 说明 | | -------- | ---------------------------- | --------------- | | 海关贸易数据查询 | `search_customs_data` | 海关贸易明细查询 | | 采购商搜索 | `search_importer_data` | 采购商(进口商)企业搜索 | | 采购商分析 | `importer_keyword_analysis` | 贸易关键字统计 | | 采购商分析 | `importer_role_analysis` | 贸易角色分布 | | 采购商分析 | `importer_hscode_analysis` | 贸易编码(HS Code)统计 | | 采购商分析 | `importer_port_analysis` | 贸易港口统计 | | 采购商分析 | `importer_cycle_analysis` | 贸易趋势(按月统计) | | 采购商分析 | `importer_exporter_analysis` | 贸易供应商(上游)列表 | | 供应商搜索 | `search_exporter_data` | 供应商(出口商)企业搜索 | | 供应商分析 | `exporter_keyword_analysis` | 贸易关键字统计 | | 供应商分析 | `exporter_role_analysis` | 贸易角色分布 | | 供应商分析 | `exporter_hscode_analysis` | 贸易编码(HS Code)统计 | | 供应商分析 | `exporter_port_analysis` | 贸易港口统计 | | 供应商分析 | `exporter_cycle_analysis` | 贸易趋势(按月统计) | | 供应商分析 | `exporter_importer_analysis` | 贸易采购商(客户)列表 | ### search\_customs\_data 查询海关贸易数据。支持多维度联合过滤。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ----------------- | ------ | -- | ------------------------------------------- | ----------- | | `company_name` | string | 否 | 企业名称(模糊匹配进口商/出口商) | - | | `product_keyword` | string | 否 | 产品描述关键字,如 "led"、"valve" | - | | `hs_code` | string | 否 | HS 海关编码(前缀匹配),如 "8415" | - | | `trade_type` | string | 否 | 贸易类型:`import`(进口)、`export`(出口)、`all`(全部) | `all` | | `country` | string | 否 | 国家/地区名称(中文/英文/ISO编码均可),如 "China"、"美国"、"JP" | - | | `date_from` | string | 否 | 起始日期,格式 YYYY-MM-DD | - | | `date_to` | string | 否 | 结束日期,格式 YYYY-MM-DD | - | | `page_index` | int | 否 | 页码 | `1` | | `page_size` | int | 否 | 每页记录数(最大 20) | `20` | | `sort_by` | string | 否 | 排序字段:`tradedate`、`quantity`、`weight`、`uusd` | `tradedate` | | `sort_order` | string | 否 | 排序方向:`asc` / `desc` | `desc` | > **注意**: > > 1. `company_name`、`product_keyword`、`hs_code`、`country` 至少填写一个 > 2. `page_size` 最大值为 20,超出会自动截断 > 3. `trade_type` 映射:`import`→1, `export`→0, `all`→2 > >
## 返回字段说明 每条记录包含以下字段(中文键名,便于大模型理解): | 字段 | 说明 | | :-------- | :---------------- | | `单据ID` | 单据编号 | | `海关编码` | HS 海关编码 | | `产品描述` | 产品描述 | | `贸易类型` | 贸易类型(`进口` / `出口`) | | `进口商` | 进口商名称 | | `出口商` | 出口商名称 | | `数量` | 数量 | | `数量单位` | 数量单位 | | `重量` | 重量 | | `金额(USD)` | 金额(USD),保留 4 位小数 | | `贸易日期` | 贸易日期 | | `原产国` | 原产国 | | `原产国ID` | 原产国 ID | 同时包含分页信息: | 字段 | 说明 | | :------------ | :---- | | `total` | 总记录数 | | `page_index` | 当前页码 | | `page_size` | 每页记录数 | | `total_pages` | 总页数 |
### search\_importer\_data 查询海关数据中的**采购商(进口商)企业**。支持按产品关键字、HS 编码、企业名称、国家等多维度检索,返回采购商 TCode,可作为后续各 `importer_*` 分析工具的入参。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | -------------- | ------ | -- | ------------------------------------------------ | ---------- | | `prodesc` | string | 否 | 产品描述关键字,如 "led" | - | | `hs_code` | string | 否 | HS 海关编码 | - | | `company_name` | string | 否 | 采购商企业名称关键字 | - | | `country` | string | 否 | 企业所在国家(中文名/英文名/ISO 编码均可) | - | | `from_country` | string | 否 | 采购来源国,如 "China" 表示筛选从中国采购过的采购商 | - | | `recent_years` | string | 否 | 查询近几年的交易数据,范围 1-5 | `"1"` | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`amount`、`count`、`quantity`、`weight`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | > **注意**:`prodesc`、`hs_code`、`company_name` 至少填写一项。 **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | ---------------- | ---------- | ------------------------ | | `TCode` | Encryption | 采购商 TCode(唯一标识,用于后续分析工具) | | `name` | String | 企业名称 | | `countryId` | Long | 企业所在国家 ID | | `relatedCount` | Long | 相关交易单数 | | `totalCount` | Long | 总交易单数 | | `maxTradeDate` | String | 企业最近贸易时间 | | `relatedHsCode` | String | 关联产品编码 | | `relatedProduct` | String | 关联产品描述 | 附加注入字段:`countryCnName` / `countryName`(企业所在国家中英文名)、`fromCountryCnName` / `fromCountryName`(采购来源国中英文名)。 ### search\_exporter\_data 查询海关数据中的**供应商(出口商)企业**。参数结构与 `search_importer_data` 一致,差异点:`to_country` 为销售目的国。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | -------------- | ------ | -- | ------------------------------------------------ | ---------- | | `prodesc` | string | 否 | 产品描述关键字,如 "led" | - | | `hs_code` | string | 否 | HS 海关编码 | - | | `company_name` | string | 否 | 供应商企业名称关键字 | - | | `country` | string | 否 | 企业所在国家(中文名/英文名/ISO 编码均可) | - | | `to_country` | string | 否 | 销售目的国,如 "United States" 表示筛选销售到美国的供应商 | - | | `recent_years` | string | 否 | 查询近几年的交易数据,范围 1-5 | `"1"` | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`amount`、`count`、`quantity`、`weight`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** 与 `search_importer_data` 相同(`TCode` 为供应商 TCode);附加注入字段为 `countryCnName` / `countryName`、`toCountryCnName` / `toCountryName`(销售目的国中英文名)。 ### importer\_cycle\_analysis 查询指定**采购商**的贸易趋势(按月统计)。传入采购商 TCode,按月返回贸易次数、金额、数量、重量、箱量,可用于观察采购商的贸易季节性和周期性变化。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ----------------------------------------------------- | ------------- | | `t_code` | string | **是** | 采购商 ID(TCode)。可先通过 `search_importer_data` 工具查询采购商获取 | - | | `hs_code` | string | 否 | HS 海关编码前缀过滤 | - | | `prodesc` | string | 否 | 提单描述关键字,进一步过滤结果 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数,默认 `"12"`(对应 12 个月) | `"12"` | | `sort_field` | string | 否 | 排序字段:`tradeDate`、`quantity`、`weight`、`amount`、`count` | `"tradeDate"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | ----------- | ------- | ------------------ | | `tradeDate` | String | 交易月份,如 `"2025-01"` | | `teus` | Decimal | 贸易总箱量(TEU) | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `quantity` | Decimal | 贸易总数量 | | `weight` | Decimal | 贸易总重量 | 同时包含分页字段:`total`、`pageSize`、`pageIndex`。 ### importer\_keyword\_analysis 查询指定**采购商**的企业关联产品关键字统计,了解该采购商主要采购哪些产品。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------- | ------ | | `t_code` | string | **是** | 采购商 ID(TCode),可通过 `search_importer_data` 获取 | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------- | ------- | ------ | | `keyword` | String | 关键字 | | `count` | Long | 贸易次数 | | `countPercent` | Decimal | 贸易次数占比 | ### importer\_role\_analysis 查询指定**采购商**的贸易角色分布(采购商/供应商)及数据源国家、数据源类型。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ----------------------------------------- | ---------- | | `t_code` | string | **是** | 采购商 ID(TCode) | - | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | ------------------- | ------- | ---------------- | | `role` | String | 贸易角色(采购商/供应商) | | `dataSourceCountry` | String | 数据源国家,如 "美国,加拿大" | | `dataSourceType` | String | 数据源类型(进口/出口) | | `amount` | Decimal | 贸易总金额 | | `count` | Long | 贸易总次数 | | `amountPercent` | Decimal | 贸易金额占比 | | `countPercent` | Decimal | 贸易次数占比 | ### importer\_hscode\_analysis 查询指定**采购商**的 HS 编码维度贸易统计,含各维度占比及中英文海关编码描述。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 采购商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------------------------------------------------------------------------------- | ------- | ---------------- | | `hsCode` | String | HS 编码 | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `teus` | Decimal | 贸易总箱量 | | `weight` | Decimal | 贸易总重量 | | `quantity` | Decimal | 贸易总数量 | | `amountPercent` / `countPercent` / `quantityPercent` / `weightPercent` / `teusPercent` | Decimal | 金额/次数/数量/重量/箱量占比 | | `cnDescription` | String | 中文海关编码描述 | | `enDescription` | String | 英文海关编码描述 | ### importer\_port\_analysis 查询指定**采购商**的港口维度贸易统计(起运港/卸货港)。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 采购商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数,最大 `"10"`,超出自动截断 | `"10"` | | `port_type` | string | 否 | 港口类型:`1` 起运港口,`2` 卸货港口 | `"2"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------------------------------------------------------------------------------- | ------- | ---------------- | | `port` | String | 港口名称 | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `weight` | Decimal | 贸易总重量 | | `quantity` | Decimal | 贸易总数量 | | `teus` | Decimal | 贸易总箱量 | | `amountPercent` / `quantityPercent` / `countPercent` / `teusPercent` / `weightPercent` | Decimal | 金额/数量/次数/箱量/重量占比 | ### importer\_exporter\_analysis 查询指定**采购商**的贸易供应商(上游)列表,了解该采购商从哪些供应商采购、各占多少份额。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 采购商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------------------------------------------------------------------------------- | ------- | ----------------- | | `TCode` | String | 供应商 Tcode | | `supplierName` | String | 供应商名称 | | `countryId` | Long | 企业所在国家 ID | | `teus` / `weight` / `quantity` | Decimal | 贸易总箱量 / 总重量 / 总数量 | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `amountPercent` / `countPercent` / `quantityPercent` / `weightPercent` / `teusPercent` | Decimal | 金额/次数/数量/重量/箱量占比 | ### exporter\_cycle\_analysis 查询指定**供应商**的贸易趋势(按月统计)。传入供应商 TCode,按月返回贸易次数、金额、数量、重量、箱量,可用于观察供应商的贸易季节性和周期性变化。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ----------------------------------------------------- | ------------- | | `t_code` | string | **是** | 供应商 ID(TCode)。可先通过 `search_exporter_data` 工具查询供应商获取 | - | | `hs_code` | string | 否 | HS 海关编码前缀过滤 | - | | `prodesc` | string | 否 | 提单描述关键字,进一步过滤结果 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数,默认 `"12"`(对应 12 个月) | `"12"` | | `sort_field` | string | 否 | 排序字段:`tradeDate`、`quantity`、`weight`、`amount`、`count` | `"tradeDate"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | ----------- | ------- | ------------------ | | `tradeDate` | String | 交易月份,如 `"2025-01"` | | `teus` | Decimal | 贸易总箱量(TEU) | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `quantity` | Decimal | 贸易总数量 | | `weight` | Decimal | 贸易总重量 | 同时包含分页字段:`total`、`pageSize`、`pageIndex`。 ### exporter\_keyword\_analysis 查询指定**供应商**的企业关联产品关键字统计,了解该供应商主要供应哪些产品。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------- | ------ | | `t_code` | string | **是** | 供应商 ID(TCode),可通过 `search_exporter_data` 获取 | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------- | ------- | ------ | | `keyword` | String | 关键字 | | `count` | Long | 贸易次数 | | `countPercent` | Decimal | 贸易次数占比 | ### exporter\_role\_analysis 查询指定**供应商**的贸易角色分布及数据源国家、数据源类型。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ----------------------------------------- | ---------- | | `t_code` | string | **是** | 供应商 ID(TCode) | - | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | ------------------- | ------- | ------------ | | `role` | String | 企业角色 | | `dataSourceCountry` | String | 数据源国家 | | `dataSourceType` | String | 数据源类型(进口/出口) | | `count` | Long | 贸易次数 | | `amount` | Decimal | 贸易总金额 | | `amountPercent` | Decimal | 贸易金额占比 | | `countPercent` | Decimal | 贸易次数占比 | ### exporter\_hscode\_analysis 查询指定**供应商**的 HS 编码维度贸易统计,含各维度占比及中英文海关编码描述。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 供应商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** 与 `importer_hscode_analysis` 相同(`hsCode`、`count`、`amount`、`teus`、`weight`、`quantity`、各维度 `*Percent`、`cnDescription`、`enDescription`)。 ### exporter\_port\_analysis 查询指定**供应商**的港口维度贸易统计。与 `importer_port_analysis` 参数一致,差异点:`port_type` 默认为 `"1"`(起运港口,供应商视角)。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 供应商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数,最大 `"10"`,超出自动截断 | `"10"` | | `port_type` | string | 否 | 港口类型:`1` 起运港口,`2` 卸货港口 | `"1"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** 与 `importer_port_analysis` 相同(`port`、`count`、`amount`、`weight`、`quantity`、`teus`、各维度 `*Percent`)。 ### exporter\_importer\_analysis 查询指定**供应商**的贸易采购商(客户)列表,了解该供应商把货卖给哪些采购商、各占多少份额。 | 参数 | 类型 | 必填 | 说明 | 默认值 | | ------------ | ------ | ----- | ------------------------------------------------ | ---------- | | `t_code` | string | **是** | 供应商 ID(TCode) | - | | `prodesc` | string | 否 | 提单描述关键字 | - | | `hs_code` | string | 否 | HS 编码 | - | | `b_date` | string | 否 | 交易起始日期,格式 `yyyy-MM-dd` | - | | `e_date` | string | 否 | 交易结束日期,格式 `yyyy-MM-dd` | - | | `page_index` | string | 否 | 页码 | `"1"` | | `page_size` | string | 否 | 每页记录数 | `"10"` | | `sort_field` | string | 否 | 排序字段:`quantity`、`weight`、`amount`、`count`、`teus` | `"amount"` | | `sort_type` | string | 否 | 排序方向:`desc` / `asc` | `"desc"` | **返回字段(records 列表每个元素):** | 字段 | 类型 | 说明 | | -------------------------------------------------------------------------------------- | ------- | ----------------- | | `TCode` | String | 采购商 Tcode | | `importerName` | String | 采购商名称 | | `countryId` | Long | 企业所在国家 ID | | `amount` | Decimal | 贸易总金额 | | `teus` / `weight` / `quantity` | Decimal | 贸易总箱量 / 总重量 / 总数量 | | `count` | Long | 贸易次数 | | `amountPercent` / `countPercent` / `quantityPercent` / `weightPercent` / `teusPercent` | Decimal | 金额/次数/数量/重量/箱量占比 | ## 使用示例 ### 示例 1:按产品关键字查询 ``` 请帮我查一下 LED 产品 2025 年从美国的进口数据,前 5 条 ``` 大模型将自动调用: ```json { "product_keyword": "led", "country": "美国", "trade_type": "import", "date_from": "2025-01-01", "date_to": "2025-12-31", "page_index": 1, "page_size": 5 } ``` ### 示例 2:按企业名称查询 ``` 查询 IKEA SUPPLY AG 公司 2025 年从美国的出口记录 ``` ```json { "company_name": "IKEA SUPPLY AG", "country": "美国", "trade_type": "export", "date_from": "2025-01-01", "date_to": "2025-12-31" } ``` ### 示例 3:按国家和 HS 编码查询 ``` 查询日本 8415 类目下的进口贸易数据 ``` ```json { "country": "Japan", "hs_code": "8415", "trade_type": "import" } ``` ### 示例 4:使用 HTTP 请求头传递 API Key(streamable-http 模式) ```bash curl -X POST https://mcp.topease.net/mcp \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your_api_key" \ -d '{ "name": "search_customs_data", "parameters": { "product_keyword": "CABIN", "page_index": 1, "page_size": 10 } }' ``` ### 示例 5:采购商全维度分析工作流(多工具联动) ``` 帮我分析一下美国的 LED 采购商,并给出其中最大采购商的采购趋势和供应商构成 ``` 大模型将依次调用: ```json // 第 1 步:搜索采购商,获取 TCode { "tool": "search_importer_data", "parameters": { "prodesc": "led", "country": "美国" } } // 第 2 步:查看采购趋势(按月) { "tool": "importer_cycle_analysis", "parameters": { "t_code": "<第1步返回的TCode>" } } // 第 3 步:查看供应商构成 { "tool": "importer_exporter_analysis", "parameters": { "t_code": "<第1步返回的TCode>" } } ``` > 供应商维度同理:先用 `search_exporter_data` 获取供应商 TCode,再调用 `exporter_*` 系列分析工具。 ## 开发指南 ### 项目结构 ``` topease-mcp/ ├── src/ │ └── topease_mcp/ │ ├── __init__.py # 包初始化 │ ├── __main__.py # 模块入口:python -m topease_mcp │ ├── main.py # MCP 服务入口:FastMCP 服务器定义、共享鉴权逻辑与工具注册 │ ├── main_stdio.py # stdio 模式独立入口 │ ├── auth.py # API Key 认证模块 │ ├── country.py # 238 个国家/地区数据(含 ISO 编码) │ ├── setting.py # 配置项(API 地址、端口) │ └── mcp_services/ # MCP 服务目录(每个服务 = Service 层 + 工具注册层) │ ├── customs_search/ # 海关贸易明细搜索(search_customs_data) │ ├── importer_search/ # 采购商企业搜索(search_importer_data) │ ├── exporter_search/ # 供应商企业搜索(search_exporter_data) │ ├── importer_keyword_analysis/ # 采购商-贸易关键字 │ ├── importer_role_analysis/ # 采购商-贸易角色 │ ├── importer_hscode_analysis/ # 采购商-贸易编码 │ ├── importer_port_analysis/ # 采购商-贸易港口 │ ├── importer_cycle_analysis/ # 采购商-贸易趋势 │ ├── importer_exporter_analysis/ # 采购商-贸易供应商 │ ├── exporter_keyword_analysis/ # 供应商-贸易关键字 │ ├── exporter_role_analysis/ # 供应商-贸易角色 │ ├── exporter_hscode_analysis/ # 供应商-贸易编码 │ ├── exporter_port_analysis/ # 供应商-贸易港口 │ ├── exporter_cycle_analysis/ # 供应商-贸易趋势 │ └── exporter_importer_analysis/ # 供应商-贸易采购商 ├── pyproject.toml # 项目配置与依赖 ├── README.md # 项目文档 └── .env.example # 环境变量示例 ``` > 每个服务目录包含固定三个文件:`__init__.py`、`Services.py`(Service 层:参数/结果数据模型 + API 请求封装)、`.py`(工具注册层:注册 MCP 工具并处理鉴权与参数校验)。 ### 核心模块说明 - **`main.py`**:定义 FastMCP 服务器与共享鉴权逻辑(`TOPEASE_MCP_API_KEY`、`_get_api_key_from_headers`、`_format_error`),各工具注册文件由此导入 - **`mcp_services/`**:15 个 MCP 工具的实现目录,Service 层封装 API 请求、响应数据模型与字段注释,工具注册层负责参数校验与错误提示 - **`country.py`**:包含 238 个国家/地区数据,支持通过中文名、英文名、ISO 编码查找国家 ID - **`auth.py`**:API Key 验证模块,支持环境变量配置有效密钥列表 - **`setting.py`**:集中管理 API 基础地址和端口配置 ### 本地开发 ```bash # 1. 克隆项目 git clone https://github.com/topease020/topease-customs-mcp-server.git cd topease-customs-mcp-server # 2. 安装依赖 uv sync # 3. 运行测试(如果有) uv run pytest # 4. 本地运行 uv run python -m topease_mcp ``` ## 常见问题 ### Q: 支持哪些国家/地区? A: 支持全球 238 个国家和地区,包括主要贸易经济体。可通过中文名、英文名、ISO 2/3 位编码查询。 ### Q: 数据更新频率是多少? A: 数据定期更新,具体请参考 [topease.net](https://tradee.topease.net/) 官网说明。 ### Q: 如何获取 API Key? A: 访问 注册账号即可获取。 ### Q: 查询有什么限制? A: API 有请求频率限制,具体限制请查看 API 文档。`page_size` 最大值为 20。 ### Q: 为什么工具参数中没有 `api_key`? A: 为了简化大模型调用,API Key 通过环境变量或 HTTP 请求头配置,不再需要在每次调用时传入参数。 ### Q: 如何切换 stdio 和 streamable-http 模式? A: 修改 `main.py` 中 `mcp.run()` 的 `transport` 参数即可: - `transport="stdio"` — 桌面客户端模式 - `transport="streamable-http"` — Web 应用模式 ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 - 官网: - PyPI: - GitHub: