exchange-rate-mcp
v1.0.0
Published
๐ฑ Real-time Exchange Rate Tool for AI Agents (Built with Model Context Protocol)
Readme
Exchange Rate MCP Server
A real-time exchange rate tool built with the Model Context Protocol (MCP). This server allows AI agents (like Claude) to fetch accurate, up-to-date currency exchange rates.
๐บ๐ธ English Guide | ๐ฐ๐ท ํ๊ตญ์ด ๊ฐ์ด๋
๐บ๐ธ English Guide
Features
- Current exchange rates: Uses the reliable Frankfurter public API (based on European Central Bank data).
- Fallback Support: Automatically falls back to a secondary open API (currency-api) for 150+ currencies not covered by the ECB.
- No API Key Required: Fully open and public APIs. No signup or configuration needed!
- MCP Integration: Designed to be integrated directly into MCP-compatible clients (e.g., Claude Desktop).
Supported Currencies & Update Frequency
This tool utilizes a dual-API approach to cover almost all global currencies:
โ
Primary API (Frankfurter / ECB)
The primary API provides exchange rates for 30 major currencies published by the European Central Bank (AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, USD, ZAR).
- Update Frequency: Every working day around 16:00 CET. Highly accurate for daily rates.
โ
Fallback API (Currency-API via JSDelivr)
For any currency not in the list above (e.g., TWD (Taiwan), VND (Vietnam), RUB (Russia)), the server automatically falls back to an open CDN that tracks over 150+ global currencies.
- Update Frequency: Updated daily.
If a currency is completely invalid or non-existent in both APIs, an error will be returned.
Installation
You can run this server using npx (Node.js is required). No manual downloading or building is necessary!
For Claude Desktop
Open your Claude Desktop configuration file:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Mac:
Add the following to your
mcpServersconfiguration:
{
"mcpServers": {
"exchange-rate": {
"command": "npx",
"args": [
"-y",
"exchange-rate-mcp"
]
}
}
}- Restart Claude Desktop. You should now see the
get_exchange_ratetool available!
Local Development Setup
If you want to clone this repository and run it locally:
- Clone the repository and install dependencies:
git clone https://github.com/NotNull92/exchange-rate-mcp.git
cd exchange-rate-mcp
npm install- Build and run:
npm run build
npm startAvailable Tools
get_exchange_rate
Fetches the current exchange rate between two currencies. The output will indicate which data source (Frankfurter or Fallback) was used.
- Parameters:
from(string, required): Source currency code (e.g., "USD").to(string, required): Target currency code (e.g., "KRW").
๐ฐ๐ท ํ๊ตญ์ด ๊ฐ์ด๋
์ฃผ์ ๊ธฐ๋ฅ
- ์ ํํ ํ์จ ์ ๊ณต: ์ ๋ฝ ์ค์์ํ(ECB) ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์์ ์ ์ธ ๋ฉ์ธ ํผ๋ธ๋ฆญ API (Frankfurter)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํด๋ฐฑ(Fallback) ์ง์: ๋ฉ์ธ API๊ฐ ์ง์ํ์ง ์๋ 150์ฌ ๊ฐ์ ์ ์ธ๊ณ ํตํ์ ๋ํด์๋ ์๋ธ ์คํ API(currency-api)๋ก ์๋ ์ ํํ์ฌ ์๋ตํฉ๋๋ค.
- API ํค ๋ถํ์: ์์ ๊ฐ๋ฐฉํ ํผ๋ธ๋ฆญ API๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๊ท์ฐฎ์ ๊ฐ์ ์ด๋ API ํค ์ค์ ์ด ํ์ ์์ต๋๋ค!
- MCP ์ฐ๋: Claude Desktop๊ณผ ๊ฐ์ MCP ํธํ AI ์์ด์ ํธ์ ์ฆ์ ์ฐ๋ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ง์ ํตํ ๋ฐ ์ ๋ฐ์ดํธ ์ฃผ๊ธฐ
์ด ๋๊ตฌ๋ ์ ์ธ๊ณ ๊ฑฐ์ ๋ชจ๋ ํตํ๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ ๊ฐ์ API๋ฅผ ๊ฒฐํฉํ์ฌ ์ฌ์ฉํฉ๋๋ค:
โ
๋ฉ์ธ API (Frankfurter / ์ ๋ฝ ์ค์์ํ ๋ฐ์ดํฐ)
์ฐ์ ์ ์ผ๋ก ์ ๋ฝ ์ค์์ํ์์ ๊ณ ์ํ๋ ์ฃผ์ 30๊ฐ๊ตญ์ ํตํ ํ์จ์ ๊ฐ์ ธ์ต๋๋ค. (AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, USD, ZAR)
- ์ ๋ฐ์ดํธ ์ฃผ๊ธฐ: ๋งค ์์ ์ผ 16:00 CET. ์ผ๋ณ ๊ธฐ์ค ํ์จ๋ก ๋งค์ฐ ์ ํํฉ๋๋ค.
โ
์๋ธ API (Currency-API JSDelivr ํด๋ฐฑ)
์์ ์ฃผ์ 30๊ฐ๊ตญ ๋ชฉ๋ก์ ์๋ ํตํ ์ฝ๋(์: ๋๋ง TWD, ๋ฒ ํธ๋จ VND, ๋ฌ์์ RUB ๋ฑ)๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ, 150๊ฐ ์ด์์ ์ ์ธ๊ณ ํตํ๋ฅผ ์ง์ํ๋ ์๋ธ ์คํ API๋ก ์๋ ์ ํ(Fallback)๋์ด ํด๋น ํ์จ์ ๊ฐ์ ธ์ต๋๋ค.
- ์ ๋ฐ์ดํธ ์ฃผ๊ธฐ: ๋งค์ผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์กด์ฌํ์ง ์๊ฑฐ๋ ์ด๋ค API์์๋ ์ ๊ณตํ์ง ์๋ ์๋ชป๋ ํตํ๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ์๋ง ์๋ฌ๋ฅผ ๋ฐํํฉ๋๋ค.
์ค์น ๋ฐ ์ฐ๋ ๋ฐฉ๋ฒ
Node.js ํ๊ฒฝ์ npx ๋ช
๋ น์ด๋ฅผ ํตํด ์์ฝ๊ฒ ์คํํ ์ ์์ต๋๋ค. ์๋์ผ๋ก ๋ค์ด๋ก๋ํ๊ฑฐ๋ ๋น๋ํ ํ์๊ฐ ์์ต๋๋ค!
Claude Desktop ์ฐ๋ (์ถ์ฒ)
Claude Desktop ์ค์ ํ์ผ์ ์ฝ๋๋ค:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Mac:
mcpServersํญ๋ชฉ์ ๋ค์ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค:
{
"mcpServers": {
"exchange-rate": {
"command": "npx",
"args": [
"-y",
"exchange-rate-mcp"
]
}
}
}- Claude Desktop์ ์์ ํ ์ฌ์์ํฉ๋๋ค. ์ด์
get_exchange_rate๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค!
๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ
์ฝ๋๋ฅผ ์ง์ ์์ ํ๊ฑฐ๋ ๋ก์ปฌ์์ ๊ตฌ๋ํด๋ณด๊ณ ์ถ์ ๊ฒฝ์ฐ:
- ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ๊ณ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค:
git clone https://github.com/NotNull92/exchange-rate-mcp.git
cd exchange-rate-mcp
npm install- ๋น๋ํ๊ณ ์คํํฉ๋๋ค:
npm run build
npm start์ ๊ณต๋๋ ๋๊ตฌ(Tools)
get_exchange_rate
๋ ํตํ ๊ฐ์ ํ์ฌ ํ์จ์ ์กฐํํฉ๋๋ค. ๊ฒฐ๊ณผ ํ ์คํธ์๋ ์ด๋ค API(Frankfurter ๋๋ ํด๋ฐฑ)์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ์ธ์ง ํ๊ธฐ๋ฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ (Parameters):
from(๋ฌธ์์ด, ํ์): ๊ธฐ์ค์ด ๋๋ ํตํ ์ฝ๋ (์: "USD")to(๋ฌธ์์ด, ํ์): ๋์์ด ๋๋ ํตํ ์ฝ๋ (์: "KRW")
