MetalAPI
XAU3,997.89−1.54%XAG53.936−1.51%XPT1,554.47−0.83%XPD1,047.03−0.44%XCU6.5080+2.29%WTI103.27+3.82%BRENT111.70−1.30%EUR1.120400−0.01%GBP1.337500−0.01%JPY0.0063761+0.14%CHF1.213445−0.25%TRY0.020125−0.12%BTC80,329.75−0.55%ETH2,329.36−1.13%
全部文章
AIMCPClaude指南

通过 MCP 让 Claude 和 ChatGPT 获取实时金价

借助 MetalAPI MCP 服务器,让 Claude、ChatGPT、Cursor 和 VS Code 获取实时黄金及金属价格:OAuth 与 API 密钥两种接入方式、可用工具、安全设计和配额说明。

作者:MetalAPI Team··阅读约 10 分钟

为什么助手需要价格工具

在没有任何工具的情况下向聊天助手询问今天的金价,您会得到三种回答之一:拒绝回答、训练数据里的某个数字,或者一个语气笃定却毫无依据的猜测。这些都没有用。语言模型学习的是一份文本快照,它的截止时间比您与它对话的时间早好几个月,而只要市场开盘,黄金、白银和原油价格每隔几秒就会变动。

常见的变通办法是自己查好价格,再粘贴到对话里。这对单个问题有效,但很快就会捉襟见肘。您得记住复制的是什么单位(金衡盎司还是克?)、什么货币,以及数字是什么时候获取的。一旦追问上个月的价格区间,或者要求换算成土耳其里拉,您又得回到浏览器里去查。

Model Context Protocol(MCP)省去了这一步。助手获得一小组可以自行调用的工具,每个回答都基于一次全新的 API 响应,其中带有自己的时间戳、基础货币和单位。本文介绍如何将 Claude、ChatGPT、Claude Code、Cursor 和 VS Code 连接到 MetalAPI MCP 服务器、连接后助手能做什么,以及有哪些安全保障。

方面手动粘贴数字调用 MCP 工具
时效性取决于您复制的内容和复制的时间您的套餐所允许的最新价格,在提问时实时获取
单位与货币容易混淆金衡盎司、克和不同货币明确的 base 和 unit 参数,并在响应中原样返回
时间戳通常在复制过程中丢失每个响应都包含 timestamp 和 date
追问又一次手动查询助手调用另一个工具
历史与换算另开一个网站或电子表格时间序列、OHLC、涨跌和换算工具

MCP 是什么

MCP 是一个开放协议,由 Anthropic 于 2024 年推出,现已得到众多 AI 应用的支持,它规范了助手与外部工具和数据交互的方式。MCP 服务器发布一份工具列表。每个工具都有名称、通俗易懂的说明、描述参数的 JSON Schema,以及“只读”等可选注解。MCP 客户端(Claude、ChatGPT、Cursor、VS Code 等)读取这份列表,由模型判断何时需要某个工具,再将调用发送到服务器,并把结果交还给模型。

模型本身既看不到您的凭据,也不会直接访问 API。它生成一个结构化请求,例如“使用 symbols: XAU 和 base: EUR 调用 get_latest_prices”,由客户端执行,模型再根据返回的 JSON 撰写回答。

MetalAPI 的服务器位于 https://metalapi.com/mcp。它使用 Streamable HTTP,即 MCP 规范中定义的远程传输方式,并且是无状态的:每次调用都是一个独立的 HTTPS 请求,返回 JSON 响应,因此无需维持长连接会话。该服务器已收录于官方 MCP Registry,名称为 com.metalapi/metalapi。如果在浏览器中打开该 URL,您会被重定向到 AI 与 MCP 概览页面。

使用 OAuth 登录或使用 API 密钥

对服务器的每次调用都需要身份验证。有两种方式,选择哪一种取决于客户端:

  • OAuth 2.1(登录):适用于带有连接器界面的应用,例如 Claude 和 ChatGPT。客户端会自行发现授权服务器:未经身份验证的调用会收到 401 响应,其中的 WWW-Authenticate 响应头指向服务器的受保护资源元数据。随后客户端通过动态客户端注册完成注册,并打开 MetalAPI 登录页面。该流程使用 PKCE,因此应用中无需内置客户端密钥。您只需登录(或创建免费账户)并批准连接。
  • API 密钥:适用于允许设置 HTTP 请求头的开发者工具,例如 Claude Code、Cursor 和 VS Code。以 Authorization: Bearer mk_live_… 的形式发送与 REST API 相同的密钥即可。

两种方式对应同一个账户、套餐和配额。工具列表只有一处不同:create_api_key 仅在 OAuth 连接中提供。复制到配置文件中的密钥绝不应该能够再创建新的密钥,因此基于密钥的连接只能看到 12 个工具,而不是 13 个。

OAuth 连接会列在控制台的 Settings → Connected apps 中,您可以随时断开其中任何一个。API 密钥可以在 API keys 中轮换或吊销。请像对待源代码中的密钥一样对待 MCP 配置文件中的密钥。

连接 Claude 和 ChatGPT

在 claude.ai 和 Claude Desktop 中使用 Claude:

  1. 打开 Settings → Connectors,选择 Add custom connector。
  2. 将其命名为 MetalAPI,并输入 https://metalapi.com/mcp。
  3. 点击 Connect,登录 MetalAPI(或创建免费账户),然后点击 Allow。

在 ChatGPT 中,打开 Settings → Apps & Connectors,以开发者模式创建一个连接器,URL 填写 https://metalapi.com/mcp,身份验证选择 OAuth。ChatGPT 会打开 MetalAPI 登录页面;批准连接后,即可在对话中使用这些工具。能否添加自定义连接器取决于您的 ChatGPT 套餐,在工作区中还取决于管理员的设置。

这两个应用的菜单名称会不时调整。MCP 设置指南会持续更新每个客户端的最新步骤。

在第一次对话中,最好点明数据来源(“使用 MetalAPI,查一下……”),让助手调用工具而不是依赖记忆。此后,只要问题涉及价格,大多数助手都会自行选择该工具。

连接 Claude Code、Cursor 和 VS Code

编程助手通常使用 API 密钥。在控制台中创建一个密钥(Free 套餐就足以起步),并为每个工具使用单独的密钥,这样吊销其中一个时不会影响其他工具。

在 Claude Code 中,从终端添加服务器:

Claude Code
claude mcp add --transport http metalapi https://metalapi.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

如果不想保存密钥,可以不带 --header 添加服务器,然后在 Claude Code 中运行 /mcp,改为通过 OAuth 登录。

在 Cursor 中,将服务器添加到 ~/.cursor/mcp.json,或项目中的 .cursor/mcp.json:

~/.cursor/mcp.json
{
  "mcpServers": {
    "metalapi": {
      "url": "https://metalapi.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

在 VS Code(GitHub Copilot) 中,将以下内容保存为 .vscode/mcp.json。inputs 区块会让 VS Code 询问一次密钥并安全地存储,因此密钥永远不会出现在文件中:

.vscode/mcp.json
{
  "inputs": [
    { "type": "promptString", "id": "metalapi-key", "description": "MetalAPI API key", "password": true }
  ],
  "servers": {
    "metalapi": {
      "type": "http",
      "url": "https://metalapi.com/mcp",
      "headers": { "Authorization": "Bearer ${input:metalapi-key}" }
    }
  }
}

其他支持通过 Streamable HTTP 连接远程 MCP 服务器的客户端(例如 Windsurf)也遵循相同的模式:服务器 URL,加上 Bearer 请求头或 OAuth 登录。

对话是什么样子的

连接之后,您只需用自然语言提问,助手会自行选择工具及其参数。以下是几个典型的提问及其对应的调用:

您的提问工具参数
现在黄金以欧元计价每克多少钱?get_latest_pricessymbols: XAU、base: EUR、unit: gram
过去两周白银走势如何?get_timeseries 或 get_fluctuationsymbols: XAG、start_date、end_date
把 2.5 金衡盎司铂金换算成土耳其里拉。convertfrom: XPT、to: TRY、amount: 2.5
今天黄金的开盘价、最高价、最低价和收盘价是多少?get_ohlcsymbols: XAU
18K 金以英镑计价每克多少钱?get_carat_pricesbase: GBP(付费套餐)
我用的是哪个套餐?还剩多少配额?get_account无

价格工具返回紧凑的 JSON。为了兼容旧版集成,REST API 的 rates 区块会将每个品种列出两次:一次是价格,一次是它的倒数。MCP 服务器只保留价格,以品种代码为键放在 prices 下。这样大约能节省一半的 token,也消除了最常见的数据误读原因。使用 symbols: XAU,XAG、base: EUR 和 unit: gram 调用 get_latest_prices,会返回类似下面的结果:

get_latest_prices 返回结果(示意)
{
  "success": true,
  "timestamp": 1792834892,
  "date": "2026-10-24",
  "base": "EUR",
  "unit": "gram",
  "rate_limit": {
    "limit": 10000,
    "remaining": 9874,
    "reset": 1793491200,
    "used": 126,
    "plan": "Standard",
    "reset_date": "2026-11-01T00:00:00.000Z"
  },
  "prices": {
    "XAU": 110.4064149,
    "XAG": 1.489616277
  }
}

本文中的数字仅作示意。实际回答将使用您的套餐所允许的最新价格。

由于每个响应都带有 timestamp、base 和 unit,一个好的回答会说明“某个时间点黄金约为每克 €110”,而不只是“€110”。如果回答中缺少这些背景信息,可以让助手补充。

助手还可以串联多次调用。如果让它比较今天与一个月前的金银比,助手可以分别获取两种金属在两个日期的价格,再自行计算比值。如果要求生成图表,能够运行代码的客户端可以把 get_timeseries 的结果绘制成图表。

13 个工具

服务器提供 13 个工具。其中 7 个返回市场数据,每次调用与 REST 调用完全一样,计为您套餐每月额度中的 1 次请求。其余工具均免费。

工具功能配额
get_latest_prices金属、能源、货币和加密货币的最新价格,支持任意基础货币和质量单位1 次请求
get_historical_prices过去某一天的收盘价1 次请求
convert按最新价格或过去某日的价格,在两个品种之间换算金额1 次请求
get_timeseries两个日期之间的每日收盘价(Free 套餐每次调用最多 30 天,付费套餐最多 365 天)1 次请求
get_fluctuation两个日期之间的起止价格,以及绝对涨跌额和涨跌幅1 次请求
get_ohlc某一天的开盘价、最高价、最低价和收盘价1 次请求
get_carat_prices按 K 数划分的金价,例如 22K 或 18K(付费套餐)1 次请求
list_symbols所有品种代码及其名称、类别和单位免费
get_account您的套餐、每月额度、用量和重置日期免费
list_plans所有套餐及其限额、月付和年付价格免费
list_api_keys您当前有效的 API 密钥(已脱敏)免费
create_api_key为您自己的应用创建密钥;仅限 OAuth 连接;需先确认免费
get_upgrade_link生成 Stripe 结账链接,已订阅用户则生成账单管理门户链接;需先确认免费

客户端连接时,服务器还会发送简短的说明:品种代码的含义、未指定单位时金属价格按金衡盎司计价,以及数据工具会消耗配额。客户端会把这些说明传给模型,因此表现良好的助手只会请求它需要的品种。品种越少,回答越简短,消耗的 token 也越少。

安全:默认只读,不涉及付款

将助手连接到账户,自然会引出一个问题:它能修改什么?我们的设计让答案非常简单。

  • 13 个工具中有 11 个是只读的。 它们带有 MCP 的 readOnlyHint 注解,只能读取价格、您的套餐、用量和脱敏后的密钥信息。
  • 两个写入类工具会先征求确认。 create_api_key 和 get_upgrade_link 被标记为会产生变更的操作,因此 MCP 客户端会在运行前征求您的确认。
  • 服务器绝不会产生任何扣费。 get_upgrade_link 会为您指定的套餐创建 Stripe 结账会话(如果您已订阅,则生成账单管理门户链接),并返回 URL。由您自己打开链接、核对价格并付款,助手无法完成付款。
  • 新密钥只显示一次。 通过 create_api_key 创建的密钥与在控制台中创建时一样,只会完整返回一次,我们只存储其哈希值。
  • 访问范围有限。 该连接只能访问 MetalAPI:价格、您的套餐、用量和 API 密钥。服务器绝不会看到您的对话、文件或其他连接器。
  • 与 API 流量一样记录日志。 市场数据调用会以 /mcp/ 加工具名的形式出现在控制台的请求日志中,与您的 REST 请求并列显示。

对于任何 MCP 服务器,都值得保持一个好习惯:认真阅读客户端显示的确认提示,而不是条件反射地点批准,并移除不再使用的连接器。

配额、时效性与套餐

MCP 调用与 REST API 共用同一份额度。无论返回多少个品种,一次数据工具调用只计 1 次请求,而 list_symbols 和账户工具不消耗任何额度。每分钟速率限制同样适用,Free 套餐为每分钟 10 次请求。

价格的时效性取决于您的套餐。在 Free 套餐中,助手看到的是每日价格;付费套餐的更新频率从每 30 分钟到每 5 秒不等:

套餐每月价格每月请求数更新间隔
Free0 美元100每日
Lite4.99 美元1,00030 分钟
Standard11.99 美元10,00010 分钟
Advanced24.99 美元50,0001 分钟
Pro49.99 美元100,0001 分钟
Ultra99.99 美元500,00015 秒
Business149.99 美元500,00015 秒
Enterprise299.99 美元1,500,0005 秒

每月 100 次请求足以应付对话中偶尔的提问。如果您用助手做需要拉取大量数据序列的分析,或者把它接入按计划运行的智能体,不妨时常让它调用 get_account:它会报告已用请求数、剩余请求数以及额度重置时间。每月额度用完后,在下月 1 日(UTC)之前,数据工具会返回超出配额的错误并附带升级链接,账户工具则仍可正常使用。完整对比请参见定价页面。

上手只需几分钟:注册免费账户,按照 MCP 设置指南配置您的客户端,然后提出第一个问题。AI 与 MCP 页面汇总了设置方法,API 文档则介绍了每个工具背后的 REST 端点。

用您自己的数据试一试

创建免费账户,两分钟内即可发起第一次请求。每月 100 次请求,无需信用卡。

继续阅读