关于 toll402 – EU & Nordic Data (x402)
toll402 是面向需要欧盟及北欧公共部门等数据的 Agent 的远程 MCP 服务和 HTTP API。它通过 x402 稳定币支付按次收费,无需 API 密钥或账户。
主要功能
- 01欧盟增值税及企业查询
- 02制裁名单与 MiCA 检查
- 03欧洲央行及丹麦汇率
- 04北欧日历与丹麦能源数据
- 05趋势、招聘、广告及招标数据
适用场景
- 01核验增值税号码及制裁对象
- 02按官方汇率进行货币换算
- 03查询工作日及低价用电时段
- 04搜索招标、职位及公开广告库
MCP 相关
在 https://toll402.io/mcp 提供流式 HTTP MCP 服务,将数据接口作为工具开放。调用通过 x402 支付;未付款请求会返回供 Agent 支付的要求。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://toll402.io/mcpclaude mcp add --transport http io-toll402-toll402 https://toll402.io/mcp{"mcpServers":{"io-toll402-toll402":{"type":"http","url":"https://toll402.io/mcp"}}}在 Cursor 中打开{"servers":{"io-toll402-toll402":{"type":"http","url":"https://toll402.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"io-toll402-toll402":{"type":"http","url":"https://toll402.io/mcp"}}}{"mcpServers":{"io-toll402-toll402":{"serverUrl":"https://toll402.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
toll402:为 AI Agent 提供欧洲和北欧数据,按次付费(x402 + MCP)
25 个实时数据端点 · 每次调用 $0.005–$0.03 · 无需 API 密钥、账户或注册 · 非托管
x402 · MCP · AI Agent · Agent 付款 · Base 上的 USDC / EURC · Polygon 和 Arc 上的 USDC · XRP Ledger 上的 XRP 和 RLUSD(RLUSD:仅限非欧盟买家)· 欧盟 VAT / VIES · 欧盟、OFAC、英国和联合国制裁筛查 · MiCA · ECB 外汇汇率 · 北欧日历 · 丹麦能源数据 · Google Trends · Indeed 招聘信息(丹麦、瑞典、挪威及另外 57 个国家)
可运行示例(curl、Node x402 客户端、MCP 配置):AtlasDataDenmark/toll402-examples
toll402 是一个 HTTP API 和远程 MCP 服务,按次向 AI Agent 提供欧盟和丹麦/北欧官方公共部门数据。它使用 x402 协议:未付款的请求会收到 402 Payment Required,其中付款要求包含在 PAYMENT-REQUIRED 标头(x402 v2)中,并在 JSON 正文中镜像呈现(x402Version + accepts);Agent 的钱包会签署稳定币付款,然后调用即可成功。资金直接从买家转至卖家的地址。toll402 从不持有资金。
原因: 执行开票、薪资、合规、物流或能源调度的 Agent 经常需要一些简单信息,例如“这个 VAT 号码有效吗?”“24 日是丹麦银行营业日吗?”或“当天的 ECB 汇率是多少?”。如今,每项查询都需要单独的 API 密钥和账户。使用 toll402,一个钱包即可完成所有查询,而且只需为实际调用付费。
- 网站:https://toll402.io
- MCP(可流式传输的 HTTP):
https://toll402.io/mcp - XRPL 商家文件:
/.well-known/trustline-merchant.txt - 发现入口:
/llms.txt·/openapi.json·/.well-known/x402·/.well-known/mcp.json·/samples(免费示例输出)
端点和价格
| MCP 工具 | HTTP 端点 | 返回内容 | 价格(USD) |
|---|---|---|---|
eu_vat_check | GET /v1/eu/vat-check?vat=DK10150817 | 通过欧盟委员会的 VIES 服务实时验证欧盟增值税号 | 0.01 |
no_company | GET /v1/no/company?orgnr=923609016 | 按组织编号或名称查询挪威 Brønnøysund Enhetsregisteret 中的公司信息(NLOD 2.0) | 0.01 |
fi_company | GET /v1/fi/company?businessId=0112038-9 | 按企业 ID 或名称查询芬兰 PRH/YTJ v3 版开放数据中的公司信息(CC BY 4.0) | 0.01 |
lei_lookup | GET /v1/lei?lei=5493001KJTIIGC8Y1R12 | 按 LEI 或法定名称查询 GLEIF 全球 LEI 索引中的法人机构识别编码(CC0) | 0.01 |
eu_vat_rates | GET /v1/eu/vat-rates?country=DK | 欧盟成员国的标准、优惠、超优惠和停车 VAT 税率 | 0.005 |
eu_sanctions | GET /v1/eu/sanctions?name=Wagner | 根据欧盟综合金融制裁名单筛查个人或公司名称(模糊匹配,每 6 小时更新) | 0.02 |
sanctions_screen_global | GET /v1/sanctions/screen?name=Wagner | 一次性根据欧盟、美国 OFAC SDN、英国制裁名单(FCDO,包括 HM Treasury/OFSI 资产冻结名单)和联合国安理会名单筛查名称;每个匹配项包含:名单、计划、参考编号、匹配分数、匹配别名(可用 lists=eu,ofac,uk,un 缩小范围;每 6 小时更新) | 0.03 |
mica_token_status | GET /v1/eu/mica/token?token=EURC | ESMA 登记册中的 MiCA 电子货币代币状态 | 0.01 |
mica_casp | GET /v1/eu/mica/casp?name=Coinbase | 查询加密货币公司是否持有 MiCA CASP 授权 | 0.01 |
fx_ecb | GET /v1/fx/convert?from=USD&to=DKK&amount=250 | 按 ECB 官方欧元参考汇率换算(约 30 种货币,支持历史日期) | 0.005 |
fx_dkk | GET /v1/fx/dkk?currency=USD&amount=100 | Danmarks Nationalbank 官方 DKK 汇率 | 0.005 |
eu_holidays | GET /v1/calendar/holidays?country=SE&year=2026 | 公共假日,涵盖欧盟/欧洲经济区/北欧国家(以及瑞士和英国) | 0.005 |
eu_working_days | GET /v1/calendar/working-days?country=DK&from=2026-12-01&to=2026-12-31 | 查询日期范围内的工作日,或计算指定日期加 N 个工作日 | 0.005 |
dk_bank_days | GET /v1/dk/bank-days?date=2026-12-24&add=3 | 丹麦银行工作日和付款截止日期 | 0.005 |
dk_power_price | GET /v1/dk/power-price?area=DK2 | 日前电力现货价格,间隔 15 分钟(DK1、DK2、NO2、SE3、SE4、DE-LU) | 0.005 |
dk_power_cheapest_window | GET /v1/dk/power-cheapest-window?area=DK1&hours=3 | 运行负载(电动汽车充电、热泵、批处理作业)的最低价 N 小时时段,适用相同区域 | 0.005 |
dk_co2 | GET /v1/dk/co2?area=DK2 | 丹麦电力的 CO₂ 强度 | 0.005 |
dk_address | GET /v1/dk/address?q=Rådhuspladsen 1, København | 丹麦地址验证和地理编码(丹麦官方地址登记册 DAR) | 0.005 |
dk_weather | GET /v1/dk/weather?lat=55.68&lon=12.57 | 最近气象站的最新 DMI 天气观测数据 | 0.005 |
dk_sea_level | GET /v1/dk/port-sea-level?port=Esbjerg | 丹麦港口的海平面和水温 | 0.005 |
stablecoin_receipt | GET /v1/accounting/stablecoin-receipt?token=USDC&amount=12.5&date=2026-10-27 | 稳定币支付的 EUR/DKK 会计凭证数据 | 0.01 |
暂时不可用:
dk_company(/v1/dk/company)已从付费目录中下架,我们正在将其迁移到丹麦商业管理局的官方 CVR 数据源,因为此前上游数据源的条款不允许付费再利用。该路径会返回503,且绝不会要求付款。对于丹麦增值税号/CVR 编号,eu_vat_check(VIES)仍会返回注册名称和地址。
来自 Atlas Data(第三方卖家)
这些端点由 Atlas Data 提供,它是 toll402 上首个外部卖家。toll402 会调用 Atlas Data 自有的 Apify actors(atlasdata/google-trends-scraper-reliable、atlasdata/indeed-jobs-scraper-reliable、atlasdata/facebook-ad-library-scraper-reliable、atlasdata/linkedin-ad-library-scraper-reliable、atlasdata/eu-tenders-ted-scraper-reliable、atlasdata/finland-ais-vessel-tracker-reliable、atlasdata/eudr-scope-risk-checker-reliable、atlasdata/cbam-cost-calculator-reliable),并返回干净的 JSON,其中 source 和 provider 均设为 Atlas Data。支付方式与其他端点相同,使用相同的支付通道和地址。
| MCP 工具 | HTTP 端点 | 返回内容 | 价格(USD) |
|---|---|---|---|
google_trends | GET /v1/trends/google?keywords=bitcoin,ethereum&geo=DK&timeRange=today%203-m | 1–5 个关键词的 Google Trends 数据:随时间变化的相对热度(0–100)、各地区热度、热门及热度上升的相关查询。可选参数:category、property(web/images/news/youtube/shopping)、compare、maxItems(每个列表 ≤20) | 0.03 |
indeed_jobs | GET /v1/jobs/indeed?keywords=developer&location=København&country=dk&maxItems=20 | Indeed 实时职位列表(丹麦、瑞典、挪威及另外 57 个 Indeed 国家站点):职位名称、公司、地点、页面显示的薪资、职位类型、远程标记、发布日期、申请链接。最多 3 个关键词,maxItems ≤50;可选参数:radius、datePosted、jobType、remote、minSalary、sort、includeDescription | 0.02 |
meta_ads | GET /v1/ads/meta?keywords=lego&country=DK&maxItems=10 | 按关键词或广告主 pageIds 搜索 Meta(Facebook/Instagram)广告资料库,即 Meta 的公开广告透明度档案:广告主主页、广告文案、格式、落地页、平台、开始/结束日期、投放状态,以及 Meta 公布的支出/展示次数范围。最多 3 次搜索,maxItems ≤20;可选参数:activeStatus、adType、mediaType、platforms、languages、exactPhrase、dateFrom、dateTo、sort | 0.02 |
linkedin_ads | GET /v1/ads/linkedin?advertiser=HubSpot&maxItems=10 | 按 advertiser 或 keyword 搜索 LinkedIn 广告资料库,即 LinkedIn 的公开广告透明度档案:广告主、标题、广告文案、格式、落地页;设置 includeDetails=true 后,还会返回投放日期、展示次数范围和定向信息。可选参数:countries、dateRange 或 startDate/endDate、maxItems ≤20。**尽力而为:**LinkedIn 有时会阻止自动访问;运行失败时会在约 40 秒内返回 503,且不收费。若要获取更可靠的广告来源,请使用 meta_ads | 0.02 |
eu_tenders | GET /v1/tenders/eu?keywords=software&countries=DK&onlyOpen=true&maxItems=10 | TED(Tenders Electronic Daily,TED 官方 Search API)中的欧盟公共采购公告:标题、买方、国家、CPV、程序、预估/授予金额、中标方、截止日期和 TED 链接,按最新优先排序。筛选条件:keywords(≤5)、countries(≤10)、cpvCodes(≤10)、noticeType、publishedSince(日期或例如 7 days;默认 30 天)、publishedUntil、onlyOpen、language、expertQuery(≤300 个字符)、maxItems ≤25(默认 10)。© European Union,https://ted.europa.eu | 0.03 |
maritime_vessels | GET /v1/maritime/vessels?lat=60.15&lon=24.95&radiusKm=20&maxItems=10 | 实时 AIS 船舶位置,仅限波罗的海北部和芬兰(芬兰 AIS 基站,约 57–66°N、17–35°E;非全球 AIS):查询某地点附近的船舶(radiusKm ≤1000,圆形范围必须覆盖服务区域),或按 mmsi、imo、vesselName、shipCategories 查询;返回名称、IMO、类型、速度、航向、导航状态、目的地、预计到达时间、尺寸。maxItems ≤30。不可用于航行导航 | 0.02 |
maritime_port_calls | GET /v1/maritime/port-calls?ports=FIHEL&maxItems=10 | 芬兰港口的进出港记录(Portnet):预计到港/已到港/已离港船舶及 ETA/ETD/ATA/ATD、泊位、船名/IMO/MMSI/旗国/类型、上一港/下一港。筛选条件:ports(芬兰 UN/LOCODE)、mmsi、imo、vesselName、from/to、status;maxItems ≤15 | 0.02 |
eudr_check | `GET /v1/eu/eudr?codes=1801%2000%2000 | CI,4407%2011 | SE&companySize=large_or_medium` |
cbam_calc | `GET /v1/eu/cbam?lines=7208%2051%2020 | TR | 100 |
输入会在 402 步骤前严格校验。只接受列出的参数,关键词数量有限制,且 maxItems 会被限制在上限内。无效输入会返回 400,不会请求付款。完全没有参数的请求(目录探测)会正常返回 402;如果有人仍然付款,处理程序会返回 400,且不会结算付款。相同查询会缓存最长 6 小时(趋势、广告库)、24 小时(EUDR、CBAM)、1 小时(职位、TED 招标)、15 分钟(港口靠泊)或 3 分钟(船舶位置),响应中会包含 cached 和 fetched_at。如果上游运行失败(503,上游暂时不可用)或超时(504;约 40–55 秒),或者 Google Trends 没有数据(404),则不会结算付款:只有 2xx 响应才会结算。Google Trends 数值表示相对关注度,而非绝对搜索量。广告库结果仅包含公共广告库展示的内容;对于作为个人的 LinkedIn 广告主,不会提供个人资料 URL 和照片,也绝不会返回消息广告的发送者姓名。/v1/ads/linkedin 为尽力而为:LinkedIn 有时会阻止自动访问,因此运行可能失败(503)或超时(504);这两种情况均不会收费。 |
价格按成功调用计算:先验证付款,只有端点返回成功(2xx)响应后才会结算。在 Base 和 Polygon 上,每次调用的最低金额为 $0.01,因此价格为 $0.005 的工具在这两个网络上收费 $0.01;在 XRPL 和 Arc 上,这些工具收费 $0.005。实时目录(价格、输入架构、输出示例)始终可通过 /.well-known/x402 和 /openapi.json 查看。
付款网络
| 网络 | 网络标识 | 支付促进方 |
|---|---|---|
| USDC、EURC | Base (eip155:8453) | PayAI |
| USDC | Polygon (eip155:137) | PayAI |
| USDC | Arc (eip155:5042) | TRDEFI |
| XRP | XRP Ledger (xrpl:0) | t54 |
| RLUSD(仅限非欧盟买家) | XRP Ledger、Base | t54、PayAI |
RLUSD 仅面向欧盟以外的买家,因为它不是 MiCA 授权的电子货币代币。欧盟买家可使用 USDC、EURC 和 XRP。Solana USDC 计划推出。
在 Claude Desktop、Cursor 或 VS Code 中使用(MCP)
Cursor(~/.cursor/mcp.json)、VS Code 以及其他支持远程 MCP 服务的客户端:
{
"mcpServers": {
"toll402": { "url": "https://toll402.io/mcp" }
}
}
通过 mcp-remote 桥接程序在 Claude Desktop(claude_desktop_config.json)中使用:
{
"mcpServers": {
"toll402": { "command": "npx", "args": ["-y", "mcp-remote", "https://toll402.io/mcp"] }
}
}
tools/list 免费。工具调用会返回需要 x402 付款的错误,直到付款完成;因此,付费调用需要使用支持 x402 的 MCP 客户端,例如 @x402/mcp(示例如下)。
通过 HTTP 使用
curl -i "https://toll402.io/v1/eu/vat-rates?country=DE"
# HTTP/2 402
# PAYMENT-REQUIRED: <base64 JSON listing the accepted rails, amounts and payTo>
# body: {"x402Version":2,"error":"Payment required","resource":{...},"accepts":[...same requirements...]}
x402 客户端(TypeScript,@x402/fetch)
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
// Use a dedicated agent wallet holding a small amount of USDC on Base
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.AGENT_KEY as `0x${string}`) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://toll402.io/v1/eu/vat-check?vat=DK10150817");
console.log(await res.json());
付费 MCP 调用(TypeScript,@x402/mcp)
import { createx402MCPClient } from "@x402/mcp";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.AGENT_KEY as `0x${string}`);
const mcp = createx402MCPClient({
name: "my-agent", version: "1.0.0",
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
autoPayment: true,
});
await mcp.connect(new StreamableHTTPClientTransport(new URL("https://toll402.io/mcp")));
const r = await mcp.callTool("dk_bank_days", { date: "2026-12-24", add: "3" });
console.log(r.content[0].text);
可自托管与开发
生产环境运行在 Cloudflare Workers 上(src/worker.mjs,Hono + @x402/hono)。此外还有一个用于测试的本地 Express 网关(src/gateway.mjs)。
npm install
npm test # unit + integration tests
cp .env.example .env.testnet # public receive addresses only, never keys
npm run gateway # local gateway on testnets
要添加端点,请在 src/endpoints/ 中添加文件,并在 src/endpoints/index.mjs 中注册。随后,该端点会自动通过 HTTP 和 MCP 提供服务,并自动出现在清单和测试中。
数据来源
European Commission(VIES、EU VAT 税率、EU 制裁名单)、U.S. Treasury OFAC SDN 名单(公有领域;从 OFAC 获取;如果 Cloudflare 无法访问 OFAC 的服务器,则从 data.trade.gov 上 U.S. International Trade Administration Consolidated Screening List 的 SDN 条目获取,同样属于公有领域)、UK Sanctions List(FCDO;包含依据 Open Government Licence v3.0 授权的公共部门信息)、UN Security Council Consolidated List、Brønnøysund Register Centre(Enhetsregisteret,NLOD 2.0)、Finnish Patent and Registration Office / YTJ 开放数据(CC BY 4.0)、GLEIF Global LEI Index(CC0)、ESMA(MiCA 临时登记册)、European Central Bank、Danmarks Nationalbank、Energi Data Service(来源:Energinet,energidataservice.dk,CC BY 4.0;也用于 NO2/SE3/SE4/DE 电价)、DMI、Danish Address Register(DAR,© Klimadatastyrelsen,CC BY 4.0,通过 adressevaelger.dk)。Google Trends、Indeed、Meta Ad Library、LinkedIn Ad Library、TED 和 Digitraffic 数据均由 Atlas Data 收集;EUDR 和 CBAM 计算也由 Atlas Data 完成。EUDR/CBAM:© European Union,依据 Commission Decision 2011/833/EU 允许再利用;仅供参考,不构成法律或税务建议,也不具有法律约束力(只有 Official Journal 中的文本具有权威性)。TED 公告:© European Union,https://ted.europa.eu(依据 Commission Decision 2011/833/EU 允许再利用)。AIS 和港口停靠记录:来源:Fintraffic / digitraffic.fi,许可证 CC 4.0 BY。toll402 和 Atlas Data 与 Google、Indeed、Meta 或 LinkedIn 均无关联。toll402 与上述任何机构均无关联。请向一手来源核实具有法律约束力的信息。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。