mcpField
A
AllRatesToday

AllRatesToday

本地服务
allratestoday.com金融数据41 天前更新

关于 AllRatesToday

AllRatesToday MCP Server 为兼容 MCP 的 AI 助手提供外汇汇率查询,涵盖实时中间价、历史序列及央行公布的官方汇率。无需 API 密钥即可查询部分官方数据;配置密钥后可访问更多实时和历史功能。

主要功能

  1. 01查询 160 多种货币汇率
  2. 02获取预设周期的历史汇率
  3. 03查询央行官方汇率与参考汇率
  4. 04列出货币及央行信息
  5. 05支持无密钥查询部分数据
  6. 06提供 stdio 与托管 HTTP 接入

适用场景

  1. 01查询 USD 与 EUR 的当前汇率
  2. 02查看 GBP/JPY 近 30 天变化
  3. 03将 USD 金额换算为 CAD
  4. 04比较多个目标货币的汇率

MCP 相关

该 MCP 服务向兼容客户端提供汇率、历史数据、货币列表和央行数据工具,支持 stdio 和托管 Streamable HTTP。无密钥时可查询部分官方央行数据;实时中间价等功能需要 API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cahthuranag": {
"command": "npx",
"args": [
"-y",
"@allratestoday/mcp-server"
],
"env": {
"ALLRATES_API_KEY": "<ALLRATES_API_KEY>",
"ALLRATES_BASE_URL": "<ALLRATES_BASE_URL>"
}
}
}
}
启动命令npx -y @allratestoday/mcp-server
需要配置的环境变量
ALLRATES_API_KEY密钥Optional. Without it the server runs keyless: get_exchange_rate answers from the official ECB daily reference table (~30 majors) and list_currencies works. A free key (https://allratestoday.com/register) unlocks real-time mid-market rates for 160+ currencies, historical series, and multi-target/point-in-time lookups.
ALLRATES_BASE_URLOverride API base URL (default: https://allratestoday.com/api).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@allratestoday/mcp-server0.5.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sourcestring是ISO 4217 货币代码,3 个字母,不区分大小写(例如 'USD'、'EUR'、'GBP'、'JPY')。对于 source/target 货币对,返回的汇率表示 1 单位 source 可兑换多少 target。仅限法定货币,不支持加密货币或大宗商品。不确定某个代码是否受支持时,请调用 list_currencies。
targetstring是ISO 4217 货币代码,3 个字母,不区分大小写(例如 'USD'、'EUR'、'GBP'、'JPY')。对于 source/target 货币对,返回的汇率表示 1 单位 source 可兑换多少 target。仅限法定货币,不支持加密货币或大宗商品。不确定某个代码是否受支持时,请调用 list_currencies。

详细介绍

AllRatesToday MCP 服务 — @allratestoday/mcp-server

网站:https://allratestoday.com · 托管端点(无需安装):https://allratestoday.com/api/mcp · 文档:https://allratestoday.com/mcp/

npm version npm downloads license MCP TypeScript

English | 简体中文

让你的 AI 助手实时了解外汇市场。这款模型上下文协议服务可让 Claude Code、Cursor、Claude Desktop、Windsurf 以及任何兼容 MCP 的客户端从 AllRatesToday API 获取实时汇率、历史序列和多币种查询结果。

安装后,你的助手可以回答以下问题:

  • “当前 USD 兑 EUR 的汇率是多少?”
  • “给我看看 GBP/JPY 在过去 30 天的走势。”
  • “按真实汇率将 250 USD 换算成 CAD。”
  • “同时比较 USD 与 EUR、GBP 和 JPY。”

🚀 为什么选择这款服务?

  • 📡 实时中间市场汇率 — 支持 160 多种 ISO 4217 货币,每约 60 秒更新一次
  • 📈 内置历史序列 — 提供 1d / 7d / 30d / 1y 时间范围,各周期均采用合理的数据粒度
  • 🧰 八个专用工具 — get_exchange_rate、get_historical_rates、get_rates_authenticated、list_currencies、list_central_banks、get_official_rates、get_reference_rate、request_trial_key;功能精简,模型易于正确使用
  • 🔌 适用于所有支持 MCP 的场景 — stdio 传输、MCP 1.x;支持 Claude Code、Cursor、Claude Desktop、Windsurf 或任何通用宿主
  • 🔓 无需 API 密钥即可使用 — 安装后即可开箱使用公开的官方央行汇率表(优先使用 ECB,否则使用发行两种货币之一的央行);免费密钥可解锁 160 多种货币的实时汇率
  • 🛡️ 如实说明返回结果 — 每个无密钥答复都会说明汇率类型和发布日期;API 错误会转换为清晰且可执行的提示
  • 🔒 信息不会泄露 — 只有请求参数和你的 API 密钥会发送至 allratestoday.com;对话上下文绝不会发送

⚖️ 中间市场汇率与央行官方汇率

使用密钥时,get_exchange_rate、get_historical_rates 和 get_rates_authenticated 会返回中间市场汇率,每约 60 秒更新一次,适用于价格展示、货币换算以及任何需要反映市场走势的场景。它不是税务机关或审计人员可能要求的官方汇率。如需官方汇率,请调用 get_official_rates:获取 122 家央行和 4 家税务机关(包括 ECB、Fed、HMRC、US Treasury、Swiss BAZG 等)发布的最新汇率表。汇率表发布后即固定,并包含该机构自己的 rate_date,无需密钥。list_central_banks 可提供机构代码。查询某个日期的官方汇率表(过去的 date)需要付费计划的 API 密钥——免费密钥会返回 403 Historical central bank rates require a paid plan。中间市场历史数据(get_historical_rates 和 get_rates_authenticated 中的 time 参数)也需要付费计划——免费密钥和试用密钥都会返回 403。请参阅央行 REST API和各央行的 npm SDK。两种汇率可能相差几个百分点,因此应根据使用场景选择,而不是图方便。

🔑 获取 API 密钥(免费)

密钥可解锁覆盖 160 多种货币的实时中间市场汇率和多目标查询。免费套餐足以用于开发和试用——无需信用卡。 历史汇率序列、指定时间点查询以及带日期的官方和参考汇率表需要付费套餐,起价为每月 €4.99。

  1. 在 allratestoday.com/register 注册——只需 30 秒
  2. 验证电子邮件
  3. 从控制面板复制密钥(格式:art_live_xxxxx)
  4. 在下方配置中将其用作 ALLRATES_API_KEY

如果没有密钥,服务会在标准错误输出中打印一段简短的无密钥模式说明(见下文),并继续运行——它绝不会退出,因为 MCP 服务退出会破坏宿主客户端的整个配置。

🔓 无密钥模式——无需设置即可使用的功能

无需任何配置即可安装并启动、连接和响应:

工具无密钥可获取内容
get_exchange_rate✅官方央行汇率:优先使用欧洲央行参考汇率表,否则使用发行目标货币或源货币的央行汇率(USD/GBP → 英格兰银行,USD/INR → 印度储备银行)。响应中包含 bank、rate_date、derived 和相应说明,因此助手不会将其误称为实时汇率。无密钥模式仅支持某家银行公布的货币对及其反向货币对(标记为 derived: true);其他交叉汇率会被拒绝,并提示获取密钥。
list_currencies✅所有 160 多种受支持的 ISO 4217 代码。
list_central_banks✅所有122 家央行和 4 家税务机关的代码、名称和最新公布日期。
get_official_rates✅任何一家机构发布的最新官方汇率表(或单个货币对)。查询带日期的汇率表需要付费套餐密钥。
get_reference_rate✅每日参考汇率:每个工作日一张永不修订的汇率表,于伦敦时间 16:00 固定。查询过去日期需要付费套餐密钥。
request_trial_key✅无需账户即可自动签发一个可调用 100 次、有效期 7 天的密钥,并在本次会话中启用。
get_historical_rates🔑返回一句说明,介绍如何获取密钥。需要付费套餐。
get_rates_authenticated🔑同上。

无密钥路径读取开放且由边缘缓存的 /api/open/central-bank/{bank} 端点——没有上游成本、无需担心触发速率限制,也无需注册。

署名要求。 无密钥使用时,凡展示汇率的地方(页脚、关于页面、README 等)都必须提供一个清晰可见且可点击的 AllRatesToday 链接。使用 API 密钥时,添加链接虽受欢迎,但并非必需。

<a href="https://allratestoday.com">Exchange rates by AllRatesToday</a>

Markdown:Exchange rates by [AllRatesToday](https://allratestoday.com)。完整文案:https://allratestoday.com/terms/#attribution。

🧩 最简安装方式:Claude Code 插件

如果你使用 Claude Code,可以安装插件,而不是手动配置此服务——它包含两个 AllRatesToday MCP 服务、两个技能和五个斜杠命令(/rate、/convert、/official-rate、/fx-history、/add-currency-support):

/plugin marketplace add AllRates-Today/claude-code-plugin
/plugin install allratestoday@allratestoday

以下内容仍适用于其他 MCP 客户端。

☁️ 托管端点 — 无需安装

这些工具也以托管的 Streamable HTTP MCP 服务形式运行,共提供 11 个工具:本 stdio 软件包中的 8 个工具,以及来自同系列央行服务的 get_official_rate_history、compare_official_rates 和 get_publication_calendar。将 URL 粘贴到任何支持远程 MCP 的客户端中 — Claude.ai 和 Claude Desktop connectors、ChatGPT、Cursor、VS Code、Codex、Gemini CLI:

https://allratestoday.com/api/mcp
claude mcp add --transport http allratestoday https://allratestoday.com/api/mcp

无需密钥即可使用。使用密钥时,请发送 Authorization: Bearer art_live_…;或者,如果客户端只接受 URL,请连接到 https://allratestoday.com/api/mcp?api_key=art_live_…。这样会将密钥放入 URL,客户端配置、日志和截图都可能泄露它:如果客户端支持,请优先使用请求头;切勿分享或提交该 URL;如果密钥泄露,请前往 https://allratestoday.com/profile 轮换密钥。注册表名称:com.allratestoday/mcp。Cursor / VS Code 一键配置按钮:https://allratestoday.com/mcp/#hosted

📦 安装

最简单的安装方式是通过 npx 无需安装,下面的所有配置都采用这种方式:

# Run without installing (recommended)
npx -y @allratestoday/mcp-server
# Or install globally
npm install -g @allratestoday/mcp-server
allratestoday-mcp

这两条命令都会启动 stdio MCP 服务并等待客户端连接 — 它们并非设计为在 shell 中交互式运行;你的 MCP 客户端会将其作为子进程启动。

🏁 按客户端快速设置

每个客户端都会从不同的配置文件读取 MCP 服务。请在下方选择对应的客户端。

Claude Code

最快的方式是使用内置 CLI:

claude mcp add allratestoday -- npx -y @allratestoday/mcp-server
claude mcp env allratestoday ALLRATES_API_KEY=art_live_xxxxx

重启 Claude Code。可以向它提问来验证:"当前 USD 兑 EUR 的汇率是多少?"

Cursor

编辑 ~/.cursor/mcp.json(如果要配置项目级服务,则编辑项目中的 .cursor/mcp.json):

{
  "mcpServers": {
    "allratestoday": {
      "command": "npx",
      "args": ["-y", "@allratestoday/mcp-server"],
      "env": {
        "ALLRATES_API_KEY": "art_live_xxxxx"
      }
    }
  }
}

重启 Cursor。MCP 工具选择器中应会显示这 8 个工具。

Claude Desktop

编辑配置文件(路径因操作系统而异):

操作系统路径
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "allratestoday": {
      "command": "npx",
      "args": ["-y", "@allratestoday/mcp-server"],
      "env": {
        "ALLRATES_API_KEY": "art_live_xxxxx"
      }
    }
  }
}

完全退出并重新打开 Claude Desktop(macOS 上按 Cmd+Q,Windows 上右键点击系统托盘图标 → 退出)。仅关闭窗口会保留旧配置。

Windsurf

使用上方相同的 mcpServers 配置块编辑 ~/.codeium/windsurf/mcp_config.json,然后重启 Windsurf。

通用 stdio MCP 客户端

任何支持 stdio 传输的 MCP 主机均可使用。启动命令为:

npx -y @allratestoday/mcp-server

……并设置环境变量 ALLRATES_API_KEY。协议版本为 MCP 1.x。

✅ 验证是否正常运行

配置好客户端后,请按以下顺序测试:

  1. 服务已启动 — 打开客户端。服务无论是否配置密钥都会启动(不配置密钥 ⇒ 无密钥模式),因此红点或“连接失败”意味着客户端无法启动服务 — 通常是因为 npx 或 Node ≥18 出现问题(见下方“故障排除”)。错误的密钥不会阻止服务启动;但调用时会返回 Invalid AllRatesToday API key。
  2. 已列出工具 — 大多数客户端都有一个显示这 8 个工具的“工具”或“MCP”面板。
  3. 实时调用返回数值 — 提问:"当前 USD 兑 EUR 的汇率是多少?"助手应调用 get_exchange_rate(source: "USD", target: "EUR") 并返回实际汇率。如果它没有调用工具就编造数值,说明服务尚未连接。

更多可用于测试其他工具的提示词:

  • "最近发布的表格中,ECB 的 USD 官方汇率是多少?" → get_official_rates
  • "请提供 EUR、GBP 和 JPY 今天伦敦时间 16:00 的参考汇率。" → get_reference_rate
  • "你可以从哪些央行获取官方汇率?" → list_central_banks
  • "将 250 USD 兑换为 CAD。" → get_exchange_rate

🧪 使用 MCP Inspector 测试

如需单独检查服务,不经过任何 AI 客户端,可在官方 MCP Inspector 下运行:

npx @modelcontextprotocol/inspector npx -y @allratestoday/mcp-server
  1. 打开它打印的 URL,然后点击 Connect。Tools 选项卡应列出八个工具。
  2. 调用 get_exchange_rate,参数为 source: USD、target: EUR——无需密钥即可返回官方汇率。
  3. 在 Inspector 的环境面板中设置 ALLRATES_API_KEY,重新连接并再次调用——现在会返回实时中间市场汇率。

如果这样可以正常运行,但你的客户端不行,问题出在客户端配置(npx 的路径、Node 版本、JSON 语法),而不是服务。

📚 工具参考

get_historical_rates 和 get_rates_authenticated 需要 ALLRATES_API_KEY;另外六个工具中的任意一个均可无密钥使用。历史数据(get_historical_rates 和 get_rates_authenticated 中的 time)需要付费套餐。


get_exchange_rate

两种货币之间的当前中间市场汇率。

输入

字段类型必填说明
sourcestring是3 位 ISO 4217 代码,例如 USD
targetstring是3 位 ISO 4217 代码,例如 EUR

调用示例

{ "source": "USD", "target": "EUR" }

响应(使用密钥时):

{ "rate": 0.888889, "source": "mid-market" }

响应(无密钥时——USD → GBP 不在欧洲央行汇率表中,因此由英格兰银行汇率表响应):

{
  "rate": 0.7598784195,
  "source": "Bank of England official rate (keyless mode)",
  "bank": "boe",
  "rate_date": "2026-10-14",
  "derived": true,
  "note": "Keyless mode: this is the Bank of England official rate published on 2026-10-14, not a live mid-market quote. For real-time rates across 160+ currencies set ALLRATES_API_KEY — free tier at https://allratestoday.com/register."
}

derived: true 表示银行发布的是反向汇率(GBP→USD),因此对汇率进行了反转。若没有任何一家银行发布某个货币对,无密钥调用将被拒绝,并显示 No keyless official source covers …,同时提供指向密钥的提示。

get_historical_rates

固定时段内某个货币对的时间序列数据点。需要付费套餐中的 API 密钥(免费密钥和试用密钥会收到 403)。

输入

字段类型必填说明
sourcestring是源货币代码
targetstring是目标货币代码
periodstring否(默认值为 7d)可选 1d、7d、30d、1y 之一

各时段的粒度

period数据点
1d每小时(24 个点)
7d每日(7 个点)
30d每日(30 个点)
1y每周(52 个点)

调用示例

{ "source": "USD", "target": "INR", "period": "30d" }

响应(已截断):

{
  "source": "USD",
  "target": "INR",
  "period": "30d",
  "data": [
    { "date": "2026-09-17", "rate": 96.1006, "timestamp": 1789603200000 },
    { "date": "2026-09-18", "rate": 95.8142, "timestamp": 1789689600000 },
    "...",
    { "date": "2026-10-16", "rate": 94.9643, "timestamp": 1792108800000 }
  ]
}
get_rates_authenticated

一次调用获取多个目标货币,可选指定历史时间戳或分组时段。

输入

字段类型必填说明
sourcestring是源货币代码
targetstring是一个或多个以逗号分隔的代码(EUR,GBP,JPY)
timestring(ISO 8601)否历史时间点(付费套餐)
groupstring否可选 hour、day、week、month 之一

调用示例

{ "source": "USD", "target": "EUR,GBP,JPY" }

响应:

{
  "rates": [
    { "rate": 0.888889, "source": "USD", "target": "EUR", "time": "2026-10-16T12:16:01+0000" },
    { "rate": 0.749766, "source": "USD", "target": "GBP", "time": "2026-10-16T12:16:01+0000" },
    { "rate": 157.985, "source": "USD", "target": "JPY", "time": "2026-10-16T12:16:01+0000" }
  ]
}
list_currencies

列出所有支持的货币及其代码、名称和符号。上游缓存 24 小时——可低成本调用,以便在使用其他工具前验证用户输入。

输入——无。

响应(已截断):

{
  "currencies": [
    { "code": "USD", "name": "US Dollar", "symbol": "$" },
    { "code": "EUR", "name": "Euro", "symbol": "€" },
    { "code": "GBP", "name": "British Pound", "symbol": "£" },
    "..."
  ],
  "count": 163
}

list_central_banks

服务可引用的所有官方来源——122 家中央银行,以及 HMRC、美国财政部、瑞士 BAZG 和印度 CBIC——包括 get_official_rates 用作 bank 的 code、机构名称、最新发布日期、age_days、发布日期间隔 cadence,以及当机构未按自身计划发布时显示的 stale 标记。无需密钥。

输入——无。

响应(已截断):

{
  "sources": [
    { "code": "ecb", "name": "European Central Bank", "latest": "2026-10-15", "age_days": 1, "stale": false, "cadence": "daily" },
    { "code": "fed", "name": "US Federal Reserve (H.10)", "latest": "2026-10-09", "age_days": 7, "stale": false, "cadence": "weekly" },
    "..."
  ],
  "stale_count": 3,
  "checked_at": "2026-10-16T12:16:46.232Z"
}

get_official_rates

机构发布的固定、可引用汇率——适用于发票、增值税和纳税申报、海关、转让定价和审计。不是实时市场汇率。

输入:

字段类型必填说明
bankstring是来自 list_central_banks 的来源代码,例如 ecb、fed、boe、rbi、hmrc
datestring否YYYY-MM-DD。省略则返回最新汇率表(无需密钥)。需要 付费计划 的 API 密钥——免费密钥会返回 403 Historical central bank rates require a paid plan。周末或节假日会回退到最近的发布日期。
sourcestring否与 target 一起使用时,缩小到一个货币对
targetstring否与 source 一起使用时,缩小到一个货币对

响应(一个货币对):

{
  "bank": "ecb",
  "rate_date": "2026-10-15",
  "source": "EUR",
  "target": "USD",
  "rate": 1.1208,
  "rate_type": "reference",
  "derived": false,
  "method": "published",
  "age_days": 1,
  "stale": false,
  "cadence": "daily",
  "attribution": { "source": "Official rates published by ECB, served by AllRatesToday", "url": "https://allratestoday.com/central-bank-rates-api/ecb/", "terms": "Free to use with visible attribution linking to allratestoday.com" }
}

省略 source/target 可获取完整汇率表,格式为 rates: [{ base, quote, type, value }]。无需密钥时,仅提供该银行发布的货币对及其反向货币对(标记为 derived: true);不提供其他交叉汇率。有密钥时,该银行未直接发布的货币对会在其自身汇率表中通过交叉计算得出,并标记为 derived: true。请始终注明 rate_date。


get_reference_rate

AllRatesToday 的 每日参考汇率:以伦敦时间 16:00 为中心,在五分钟窗口内采集样本并按货币取中位数,每个工作日发布一次,且绝不修订。当报告、指数或研究序列需要每天一个可复现的汇率时,可使用此汇率。它不是 WM/Refinitiv 定盘价,也不是注册基准;每个响应都附带免责声明和 rate_date。

输入

字段类型必填说明
sourcestring否与 target 一起使用时,缩小到一个货币对(通过 USD 交叉计算,并标记为 derived)
targetstring否见上文
datestring否过去某个工作日,格式为 YYYY-MM-DD(需要付费计划的 API 密钥)。省略则返回最新汇率表

输出——汇率表返回 { rate_date, base, time, rates },单个货币对返回 { rate_date, source, target, rate, derived },此外还包含 method 和 disclaimer。获取最新汇率表无需密钥。文档:https://allratestoday.com/reference-rate/


request_trial_key

自动签发一个 API 密钥,可调用 100 次,有效期为 7 天,无需账户或电子邮件,并在本次会话的其余时间将此服务切换为使用该密钥。回复会提示用户将密钥复制到 MCP 配置中的 ALLRATES_API_KEY,以便在重启后继续使用。每个 IP 每天最多可申请 3 个密钥。

输入——agent(字符串,可选)、purpose(字符串,可选)。

输出——{ key, calls, expires_at, adopted, note }。


⚙️ 环境变量

变量默认值必填用途
ALLRATES_API_KEY—否你的 API 密钥,以 Authorization: Bearer 形式发送。未设置 ⇒ 无密钥模式(见上文);已设置 ⇒ 实时汇率和多目标查询(历史工具需要付费计划的密钥)。
ALLRATES_BASE_URLhttps://allratestoday.com/api否为可自托管或暂存部署指定其他地址。

请在 MCP 客户端的配置中(env 区块内)设置这些变量,而不要在 shell 中设置——因为 MCP 服务会作为具有隔离环境的子进程启动。

💳 方案

提供免费套餐和付费方案 — 当前额度请参阅 allratestoday.com/pricing。免费套餐支持实时汇率和多目标查询。所有历史数据和指定日期汇率 — 中间市场历史数据、指定时间点查询、指定日期的官方汇率表和参考汇率表 — 均需付费方案(免费密钥和试用密钥会返回 403 historical_requires_paid_plan)。官方汇率方案仅包含官方央行和税务机关汇率(不含市场汇率)。

🛠️ 故障排查

症状可能原因解决方法
客户端显示“无法启动 MCP 服务”或红点并非缺少密钥 — 0.5.0 及更高版本无需密钥也能正常启动。通常是 npx 无法访问注册表,或 Node 版本低于 18在 shell 中运行 npx -y @allratestoday/mcp-server 并查看 stderr
汇率看起来像是昨天的,响应提到“无密钥模式”未设置密钥,因此结果来自官方央行汇率表(参见 bank 和 rate_date)设置 ALLRATES_API_KEY 以获取实时中间市场汇率
No keyless official source covers X/Y处于无密钥模式,且没有任何一家央行发布该货币对或其反向货币对设置 ALLRATES_API_KEY(免费)
HTTP 403 — Historical rates require a paid plan使用免费或试用密钥调用 get_historical_rates,或在 get_rates_authenticated 中指定 time在 /pricing 升级 — 历史数据仅供付费方案使用
HTTP 403 — Historical central bank rates require a paid plan使用免费密钥在 get_official_rates / get_reference_rate 中指定了 date省略 date 以获取最新汇率表,或升级至付费方案
每次调用都返回“Invalid AllRatesToday API key”密钥格式错误(缺少前缀、被截断或已撤销)从控制面板复制新的密钥
工具返回“AllRatesToday API quota exceeded”额度已用完 — 免费套餐不会重置;付费方案按月计算在 /pricing 升级
历史数据工具返回“Bad request”时段无效或货币代码未知时段必须为 1d/7d/30d/1y;代码必须为 3 个字母
服务已启动,但工具始终没有出现配置更改后客户端未重新加载完全退出(而不只是关闭)并重新打开客户端
npx 已运行,但一直卡住服务正在等待 MCP 客户端连接 — 从 shell 运行时这是正常现象让 MCP 客户端启动它

若要检查服务正在执行什么操作,请在设置密钥后手动运行:

ALLRATES_API_KEY=art_live_xxxxx npx -y @allratestoday/mcp-server

没有输出表示运行正常(stdio 专用于 MCP 协议);错误会输出到 stderr。

🛡️ 错误参考

服务会将 API 错误转换为清晰、可执行的消息,供助手转达给用户:

HTTP 状态码含义工具错误消息
200成功(已返回汇率)
400请求错误 — 通常是货币代码未知Bad request — possibly an unknown currency code
401API 密钥无效(缺少密钥不会导致此错误 — 服务可以在无密钥状态下运行)Invalid AllRatesToday API key
403方案不包含此项(例如,使用免费密钥请求指定日期的官方汇率表)HTTP 403 — <upstream message>
404(无密钥)没有任何无密钥官方来源涵盖该货币对No keyless official source covers X/Y. …
429额度超限AllRatesToday API quota exceeded
5xxallratestoday.com 服务器端问题HTTP 5xx — <upstream message>

❓ 常见问题

免费计划真的足以满足日常使用吗? 适合试用和轻度开发。额度不会每月重置;日常使用或生产环境需要付费套餐。无密钥模式免费且没有额度限制。

你们会存储我的对话或查询数据吗? 不会。只有你的 API 密钥和请求参数(来源、目标、周期、时间)会发送到 allratestoday.com——绝不会发送大模型的对话上下文。

我的 API 密钥会如何处理? 它只会作为 Bearer 令牌,通过请求 AllRatesToday API 时的 Authorization 标头发送。它绝不会被记录或传输到其他地方。

为什么我的首次调用很慢? npx 冷启动(首次运行时会下载软件包),再加上初次缓存未命中。后续调用通常少于 200ms。

我可以不使用 npm/Node 运行吗? 目前不行——需要 Node ≥18。如果你需要独立二进制文件,请提交 issue。

有可自托管的选项吗? 将 ALLRATES_BASE_URL 设置为你自己的 AllRatesToday 实例。如需可自托管许可,请联系 [email protected]。

这能与 ChatGPT 配合使用吗? 可以,通过托管端点:在 ChatGPT 中将 https://allratestoday.com/api/mcp 添加为连接器(自定义 MCP / 远程服务)。此 npm 软件包是本地 stdio 服务,适用于可启动命令的客户端——Claude Code、Cursor、Claude Desktop、Windsurf。

👩‍💻 开发

git clone https://github.com/AllRates-Today/mcp-server.git
cd mcp-server
npm install
npm run build
ALLRATES_API_KEY=art_live_xxxxx node dist/index.js

服务通过 stdio 运行,并等待 MCP 客户端连接;按 Ctrl+C 退出。npm run dev 会监视并重新构建。若要针对本地 AllRatesToday 实例进行测试:

ALLRATES_BASE_URL=http://localhost:8080/api ALLRATES_API_KEY=test_key node dist/index.js

项目结构

src/
├── index.ts      # MCP server, tool registration, request handlers
├── client.ts     # HTTP client for AllRatesToday API + error mapping
└── home-banks.ts # currency → issuing central bank, for the keyless get_exchange_rate fallback
dist/             # Compiled JS (gitignored)
server.json       # MCP registry manifest

贡献——欢迎在 github.com/AllRates-Today/mcp-server 提交 issue 和 PR。提交 PR 前:npm run build 必须成功,使用真实 API 密钥进行测试;如果更改了工具行为,请更新 src/index.ts 中的工具描述以及本 README 的工具参考。

📝 更新日志

近期更改。完整历史记录:GitHub Releases。

  • 0.7.9 — README:更新日志精简为 0.7.x 系列
  • 0.7.8 — README:新增 MCP Inspector 测试指南、每个工具的示例提示词、托管版 ?api_key= 安全说明;修正 ChatGPT 常见问题和 401 表格行;统一说明历史数据属于付费计划
  • 0.7.6 — 无密钥模式下的 get_rates_authenticated 使用 time 时,现在会提示需要付费计划;README:免费层级不再列为包含历史数据,source 示例改为 mid-market
  • 0.7.4 — 无密钥模式下的 get_exchange_rate 会在 ECB 表格中无结果时,回退到发行目标货币或来源货币的央行(现在 USD/GBP、GBP/JPY、USD/INR 无密钥也能获得结果),与托管端点一致;响应中新增 bank。日期表格错误会提示需要付费计划。README:新增真实响应格式、工具数量和终身免费层级
  • 0.7.0 — 新增 get_reference_rate(每日参考汇率,伦敦时间 16:00,无密钥即可获取最新表格)和 request_trial_key(自行签发的 100 次调用试用密钥,可用于当前会话)

🔗 链接

📜 许可证

MIT——请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。