关于 AllRatesToday exchange rates (hosted)
AllRatesToday 是面向 AI 助手的托管 MCP 服务,提供货币数据查询。它结合当前及历史外汇数据与央行官方汇率表,并允许免密查询部分官方汇率,也可通过无需安装的托管端点接入。
主要功能
- 01查询 160 多种货币的实时中间价
- 02获取历史汇率序列
- 03查询央行官方汇率
- 04列出货币和金融机构
- 05免密访问部分官方汇率
适用场景
- 01查询货币对的当前汇率
- 02查看汇率随时间的变化
- 03换算不同货币的金额
- 04比较官方汇率与市场汇率
MCP 相关
向 MCP 客户端提供汇率、历史数据、参考汇率、货币列表和央行列表等工具。支持 stdio 和托管的 Streamable HTTP 端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://allratestoday.com/api/mcpclaude mcp add --transport http com-allratestoday https://allratestoday.com/api/mcp{"mcpServers":{"com-allratestoday":{"type":"http","url":"https://allratestoday.com/api/mcp"}}}在 Cursor 中打开{"servers":{"com-allratestoday":{"type":"http","url":"https://allratestoday.com/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-allratestoday":{"type":"http","url":"https://allratestoday.com/api/mcp"}}}{"mcpServers":{"com-allratestoday":{"serverUrl":"https://allratestoday.com/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://allratestoday.com/api/mcp需要授权工具
11| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| source | string | 是 | ISO 4217 货币代码,3 个字母,不区分大小写(例如 'USD'、'EUR'、'GBP')。仅限法币——不包括加密货币和大宗商品。 |
| target | string | 是 | ISO 4217 货币代码,3 个字母,不区分大小写(例如 'USD'、'EUR'、'GBP')。仅限法币——不包括加密货币和大宗商品。 |
详细介绍
AllRatesToday MCP 服务 — @allratestoday/mcp-server
网站:https://allratestoday.com · 托管端点(无需安装):https://allratestoday.com/api/mcp · 文档:https://allratestoday.com/mcp/
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。
- 在 allratestoday.com/register 注册——只需 30 秒
- 验证电子邮件
- 从控制面板复制密钥(格式:
art_live_xxxxx) - 在下方配置中将其用作
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。
✅ 验证是否正常运行
配置好客户端后,请按以下顺序测试:
- 服务已启动 — 打开客户端。服务无论是否配置密钥都会启动(不配置密钥 ⇒ 无密钥模式),因此红点或“连接失败”意味着客户端无法启动服务 — 通常是因为
npx或 Node ≥18 出现问题(见下方“故障排除”)。错误的密钥不会阻止服务启动;但调用时会返回Invalid AllRatesToday API key。 - 已列出工具 — 大多数客户端都有一个显示这 8 个工具的“工具”或“MCP”面板。
- 实时调用返回数值 — 提问:"当前 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
- 打开它打印的 URL,然后点击 Connect。Tools 选项卡应列出八个工具。
- 调用
get_exchange_rate,参数为source: USD、target: EUR——无需密钥即可返回官方汇率。 - 在 Inspector 的环境面板中设置
ALLRATES_API_KEY,重新连接并再次调用——现在会返回实时中间市场汇率。
如果这样可以正常运行,但你的客户端不行,问题出在客户端配置(npx 的路径、Node 版本、JSON 语法),而不是服务。
📚 工具参考
get_exchange_rate— 两种货币之间的当前汇率get_historical_rates— 预设时段内的时间序列get_rates_authenticated— 一次调用获取多个目标货币,可选指定时间点list_currencies— 所有支持的货币代码、名称和符号list_central_banks— 所有涵盖的中央银行 / 税务机构及其代码和最新发布日期get_official_rates— 指定机构发布的官方汇率表(或其中的一组货币对)get_reference_rate— 每日参考汇率,每个工作日发布一份固定的中间市场汇率表(伦敦时间 16:00)request_trial_key— 自行签发 100 次调用、有效期 7 天的试用密钥,无需账户
get_historical_rates 和 get_rates_authenticated 需要 ALLRATES_API_KEY;另外六个工具中的任意一个均可无密钥使用。历史数据(get_historical_rates 和 get_rates_authenticated 中的 time)需要付费套餐。
get_exchange_rate
两种货币之间的当前中间市场汇率。
输入
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
source | string | 是 | 3 位 ISO 4217 代码,例如 USD |
target | string | 是 | 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)。
输入
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
source | string | 是 | 源货币代码 |
target | string | 是 | 目标货币代码 |
period | string | 否(默认值为 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
一次调用获取多个目标货币,可选指定历史时间戳或分组时段。
输入
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
source | string | 是 | 源货币代码 |
target | string | 是 | 一个或多个以逗号分隔的代码(EUR,GBP,JPY) |
time | string(ISO 8601) | 否 | 历史时间点(付费套餐) |
group | string | 否 | 可选 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
机构发布的固定、可引用汇率——适用于发票、增值税和纳税申报、海关、转让定价和审计。不是实时市场汇率。
输入:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
bank | string | 是 | 来自 list_central_banks 的来源代码,例如 ecb、fed、boe、rbi、hmrc |
date | string | 否 | YYYY-MM-DD。省略则返回最新汇率表(无需密钥)。需要 付费计划 的 API 密钥——免费密钥会返回 403 Historical central bank rates require a paid plan。周末或节假日会回退到最近的发布日期。 |
source | string | 否 | 与 target 一起使用时,缩小到一个货币对 |
target | string | 否 | 与 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。
输入
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
source | string | 否 | 与 target 一起使用时,缩小到一个货币对(通过 USD 交叉计算,并标记为 derived) |
target | string | 否 | 见上文 |
date | string | 否 | 过去某个工作日,格式为 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_URL | https://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 |
| 401 | API 密钥无效(缺少密钥不会导致此错误 — 服务可以在无密钥状态下运行) | Invalid AllRatesToday API key |
| 403 | 方案不包含此项(例如,使用免费密钥请求指定日期的官方汇率表) | HTTP 403 — <upstream message> |
| 404(无密钥) | 没有任何无密钥官方来源涵盖该货币对 | No keyless official source covers X/Y. … |
| 429 | 额度超限 | AllRatesToday API quota exceeded |
| 5xx | allratestoday.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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。