实战教程:通过 Apify MCP 连接 EC VIES 服务,让 Claude 实时验证 VAT 号码有效性。替代模型猜测为权威数据源查询。
供应商从另一个欧盟国家给您发送发票和 VAT 编号。在您以零税率处理该跨境发票之前,您应该确认该编号在您开票日期当天是有效的,并且属于您认为的对方。问 Claude "FR40303265045 是有效的 VAT 编号吗?它属于谁?",该模型将根据过时的训练数据来回答,或者它会直接编造一些东西。对于您可能需要在审计中辩护的税务立场,"可能有效"是不够的。
在本指南中,我们修复这个问题。我们将 Claude 连接到官方 Apify MCP 服务器,暴露一个针对欧盟委员会 VIES 服务的 Actor 来检查 VAT 编号,并将"这个 VAT 编号是真实的吗?"从猜测转变为针对记录源的实时查询。最后,您将拥有一个可工作的验证工具,Claude、Cursor 或任何 MCP 客户端都可以在对话中调用它,您将确切知道在运行中工具何时执行以及它返回什么。
下面的所有内容都是真实设置和真实输出。没有模拟响应。
模型上下文协议(Model Context Protocol, MCP)是一个开放标准,使 AI 客户端能够调用外部工具。Apify MCP 服务器(https://mcp.apify.com)在 Apify 平台之上实现该标准,这意味着 Apify Store 中的数千个 Actor 都可以成为代理可以调用的工具。
代理决定何时获取数据。Claude 读取对话,注意到它需要一个它没有的事实,并自行调用该工具。您不需要为每个问题编写胶水代码。
结构化输入和输出。MCP 服务器将 Actor 的输入架构传递给 Claude,因此模型能够正确填入参数,并返回一个它可以推理的干净数据集。
一个连接,多个工具。同一个 MCP 端点暴露 search-actors、fetch-actor-details 和 call-actor,所以代理可以发现并运行任何 Actor,而无需新的配置。
没有基础设施。服务器是托管的。您只需在配置文件中添加几行,就完成了。
我们将暴露欧盟 VAT 编号验证爬虫(VIES)。给它一个或多个欧盟 VAT 编号,它将针对欧盟委员会的 VIES 服务检查每个编号,返回有效性标志、国家代码和本地编号、精确请求日期,以及在成员国提供的情况下,注册的公司名称和地址。
该字段集完全是应付账款、开票或税务合规检查所需的。VIES 是确认 VAT 编号当前注册用于跨境贸易的权威欧盟范围来源,并且无需登录墙。

登录 Apify 控制台,打开"Settings → Integrations",复制您的个人 API 令牌。MCP 服务器使用它来认证并将 Actor 运行计费到您的账户。
📌 注意:令牌是一个秘密。只将其保留在客户端配置中,永远不要在提示或提交的文件中使用。
打开 Claude Desktop 的配置文件(Settings → Developer → Edit Config,或 macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json)并添加 Apify 服务器。tools 查询参数是重要的部分:它告诉服务器要暴露哪个 Actor,所以 Claude 得到一个专注的工具而不是整个 Store。
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=scrapers_lat/eu-vat-vies-validation-scraper",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor 在 .cursor/mcp.json 中使用相同的 JSON。如果您更喜欢通过 stdio 在本地运行而不是托管端点:
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--tools", "scrapers_lat/eu-vat-vies-validation-scraper"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}
重启 Claude Desktop 使其获取新服务器。
重启后,Actor 显示为一个可调用的工具。如果您列出 Apify 服务器暴露的工具,您将看到存储助手加上 Actor 本身,以其 Store 句柄命名:
get-actor-run, get-dataset-items, get-key-value-store-record,
abort-actor-run, scrapers_lat--eu-vat-vies-validation-scraper
最后一个条目 scrapers_lat--eu-vat-vies-validation-scraper 是我们的验证工具。Claude 现在知道它存在、它做什么(来自 Actor 的 README)以及它需要什么输入(来自服务器传递的输入架构)。
现在是收获的时候。在一个正常的聊天中,问一个需要基础事实的问题:
"我们即将给一个新的法国供应商开票,他给了我们 VAT 编号 FR40303265045。在我零税率处理发票之前,那个 VAT 编号实际上是有效的吗?它属于哪个注册公司和地址?"
Claude 认识到它无法从记忆中可靠地回答这个问题,选择 VIES 工具,并从您的问题中填入输入。在幕后,客户端发送一个 tools/call,包含 Actor 的参数:
{
"name": "scrapers_lat--eu-vat-vies-validation-scraper",
"arguments": {
"vatNumbers": ["FR40303265045"]
}
}
Apify MCP 服务器启动 Actor,等待它完成,并返回数据集。这是它生成的真实运行元数据:
{
"runId": "WpKTbwMoyDcF0hZSA",
"actorName": "scrapers_lat/eu-vat-vies-validation-scraper",
"status": "SUCCEEDED",
"startedAt": "2026-07-30T17:43:42.144Z",
"finishedAt": "2026-07-30T17:43:46.203Z",
"stats": { "runTimeSecs": 3.9 }
}
不到四秒钟,对 VIES 实时查询。
工具返回的数据集是结构化验证数据,每个 VAT 编号一条记录。这是来自该运行的实际记录:
{
"countryCode": "FR",
"vatNumber": "FR40303265045",
"vatNumberLocal": "40303265045",
"valid": true,
"traderName": "SA SODIMAS",
"traderAddress": "11 RUE AMPERE\n26600 PONT DE L ISERE",
"requestDate": "2026-07-30T17:43:45.858Z",
"source": "EU VIES"
}
Claude 读取这些并用纯语言回答:是的,该编号是有效的,它注册给 SA SODIMAS,地址是 11 Rue Ampere,26600 Pont de l'Isere,检查是在今天针对 VIES 运行的。这些事实中的每一个都可以追溯到官方欧盟服务,而不是模型的记忆,并且记录本身是检查发生的证据。

反面示例同样重要。在同一运行中,我们传递了 DE143593636,它返回了 valid: false,含有 userError: "INVALID"。一个看起来格式正确的编号仍然可能是未注册或已注销的,一个 AP 员工在即将零税率处理发票之前需要看到这一点,在金钱移动之前。还有一个更细微的差别,该工具诚实地呈现出来:一些成员国,包括德国,确认有效性但不返回交易者名称或地址,所以这些行返回 valid: true,名称字段为空。该工具告诉您哪个是哪个;仅有模型是做不到的。
把这放在上下文中。应付账款或税务分析师在月底处理一批跨境欧盟发票,必须在释放付款和提交报表之前确认:
各个供应商的 VAT 编号在发票日期在 VIES 中有效,
VIES 上的注册名称与发票上的名称匹配,以及
没有编号自上次使用以来被悄悄注销。
没有工具,分析师打开 VIES 网站,输入每个编号,偶尔解决插页广告,并将结果复制到电子表格,每行一次。在工具连接到 Claude 的情况下,分析师将供应商列表粘贴到聊天中,并要求代理验证每个。Claude 按编号调用 Actor,标记每个 valid: false,将每个返回的 traderName 与发票进行比较,并生成一个简短的异常列表,以请求日期作为验证的时间戳证明。机械查询消失了;判断保留在人类中。
这是每个好代理工具的形状:它移除机械获取,而不是决定。
VAT 验证很少停留在"编号是否有效"。一旦您知道英国供应商的注册名称,您通常希望确认该公司本身是真实且活跃的。相同的 MCP 连接可以通过扩展 tools 参数来暴露更多 Actor:
https://mcp.apify.com?tools=scrapers_lat/eu-vat-vies-validation-scraper,scrapers_lat/uk-companies-house-scraper
现在代理可以验证 VAT 编号,使用它获得的名称,在英国 Companies House 爬虫中查询该公司,确认它是活跃的,具有匹配的官员和地址,然后将两个结果合并到一个入职摘要中。因为每个 Actor 是一个单独的工具,代理在每个步骤上自行选择正确的工具。
🏹 故障排除:如果工具未在 Claude 中显示,通常原因是 tools 参数中的 Actor 句柄缺失或拼写错误(它必须是 Store URL 中的精确 username/actor-name)以及在 Claude 运行时编辑的配置。修复句柄,保存,并完全重启客户端。
📌 注意:每次工具调用都是一个真实的 Actor 运行,计费到您的 Apify 账户(该 Actor 是按结果付费)。对于一次性验证,成本是一分钱的一小部分;如果您计划定期检查数千个 VAT 编号,直接通过 Apify API 或计划任务运行 Actor,整个批次在 vatNumbers 中,而不是每个聊天消息一次调用。
您现在拥有一个 AI 代理,可以按需、在对话中针对权威 VIES 服务验证欧盟 VAT 编号,具有合规检查实际需要的注册名称和地址。该模式是可重用的:选择返回权威结构化数据的 Actor,通过 tools 参数通过 Apify MCP 服务器暴露它,并让代理决定何时调用它。
传递整个 vatNumbers 数组以在一次运行中验证整个供应商分类账。
链接公司注册表、制裁或许可 Actor 来构建完整的供应商入职代理。
阅读 Apify MCP 服务器文档以了解 OAuth 设置、资源读取以及让代理发现它未被预配置的 Actor 的 search-actors / call-actor 工具。
本指南中使用的 Actor:欧盟 VAT 编号验证爬虫(VIES)。