🚀 リアルタイム為替レートMCPサーバー
AIコーディングアシスタントに外国為替市場のリアルタイム情報を提供します。

English | 简体中文
このModel Context Protocolサーバーは、Claude Code、Cursor、Claude Desktop、Windsurf、およびその他のMCP互換クライアントが、リアルタイムの通貨レート、過去のデータ、および多通貨の照会を取得できるようにします。
インストール後、アシスタントは以下のような質問に答えることができます。
- 「現在のUSDからEURへのレートは何ですか?」
- 「過去30日間のGBP/JPYの動きを見せてください。」
- 「250USDを実際のレートでCADに換算してください。」
- 「USDをEUR、GBP、およびJPYと同時に比較してください。」
- 「サポートされているすべての通貨をリストアップしてください。」
🚀 クイックスタート
目次
- 提供される機能
- APIキーの取得(必須)
- インストール
- クライアント別のクイックセットアップ
- Claude Code
- Cursor
- Claude Desktop
- Windsurf
- 汎用のstdio MCPクライアント
- 動作確認
- ツールリファレンス
- 環境変数
- トラブルシューティング
- エラーリファレンス
- よくある質問
- 開発
- 変更履歴
- サポート
- ライセンス
✨ 主な機能
| 機能 |
詳細 |
| 通貨 |
150以上のISO 4217コード、主要通貨と多くの特殊通貨をサポート |
| 更新頻度 |
中間相場レートが約60秒ごとに更新 |
| 過去データの期間 |
1d / 7d / 30d / 1y の粒度で最大1年分 |
| 公開されているツール |
4つ — get_exchange_rate、get_historical_rates、get_rates_authenticated、list_currencies |
| 通信方式 |
stdio (サブプロセス)、MCP 1.x互換 |
| 実行環境 |
Node.js ≥18 |
📦 インストール
このサーバーはnpmパッケージとして公開されています。最も簡単なインストール方法は、npxを使用したゼロインストールです。以下のすべての設定でこの方法を使用しています。
npx -y @allratestoday/mcp-server
npm install -g @allratestoday/mcp-server
allratestoday-mcp
どちらのコマンドもstdio MCPサーバーを起動し、クライアントの接続を待ちます。これらのコマンドはシェルから直接実行することを想定していません。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を再起動します。4つのツールがMCPツールピッカーに表示されるはずです。
Claude Desktop
設定ファイル(パスはOSによって異なります)を編集します。
| OS |
パス |
| 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
~/.codeium/windsurf/mcp_config.json を編集します。
{
"mcpServers": {
"allratestoday": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "art_live_xxxxx"
}
}
}
}
Windsurfを再起動します。
汎用のstdio MCPクライアント
stdio通信をサポートするすべてのMCPホストで動作します。起動コマンドは以下の通りです。
npx -y @allratestoday/mcp-server
環境変数 ALLRATES_API_KEY を設定する必要があります。プロトコルバージョンはMCP 1.xです。
動作確認
クライアントを設定した後、以下の順序でテストします。
-
サーバーが起動する — クライアントを開きます。MCP統合が赤いドットまたは「接続に失敗しました」と表示される場合は、APIキーが欠落しているか間違っています(トラブルシューティングを参照)。
-
ツールがリストされる — ほとんどのクライアントには「ツール」または「MCP」パネルがあります。以下のツールが表示されるはずです。
get_exchange_rate
get_historical_rates
get_rates_authenticated
list_currencies
-
ライブコールが数値を返す — アシスタントに以下の質問をします。
「現在のUSDからEURへのレートは何ですか?」
アシスタントは get_exchange_rate(source: "USD", target: "EUR") を呼び出し、実際のレートで返答します(例:「USDからEURへの現在のレートは0.9214です。」)。ツールを呼び出さずに数値を生成する場合は、サーバーが接続されていません。
📚 詳細ドキュメント
ツールリファレンス
すべての4つのツールにはAPIキーが必要です。
get_exchange_rate
2つの通貨間の現在の中間相場レートを取得します。
入力
| フィールド |
型 |
必須 |
説明 |
source |
文字列 |
はい |
3文字のISO 4217コード、例:USD |
target |
文字列 |
はい |
3文字のISO 4217コード、例:EUR |
呼び出し例
{ "source": "USD", "target": "EUR" }
応答例
{ "rate": 0.92145, "source": "wise" }
get_historical_rates
一定期間にわたる通貨ペアの時系列データポイントを取得します。
入力
| フィールド |
型 |
必須 |
説明 |
source |
文字列 |
はい |
通貨コード |
target |
文字列 |
はい |
通貨コード |
period |
文字列 |
いいえ(デフォルト 7d) |
1d、7d、30d、1y のいずれか |
期間ごとの粒度
period |
データポイント |
1d |
1時間ごと(24ポイント) |
7d |
1日ごと(7ポイント) |
30d |
1日ごと(30ポイント) |
1y |
1週間ごと(52ポイント) |
呼び出し例
{ "source": "USD", "target": "INR", "period": "30d" }
応答例(一部省略)
{
"source": "USD",
"target": "INR",
"period": "30d",
"data": [
{ "date": "2026-03-27T00:00:00Z", "rate": 83.42, "timestamp": 1743033600000 },
{ "date": "2026-03-28T00:00:00Z", "rate": 83.51, "timestamp": 1743120000000 },
"..."
]
}
get_rates_authenticated
1回の呼び出しで複数の通貨を対象とし、オプションで過去のタイムスタンプまたはグルーピングウィンドウを指定できます。
入力
| フィールド |
型 |
必須 |
説明 |
source |
文字列 |
はい |
通貨コード |
target |
文字列 |
はい |
1つ以上のコードをカンマ区切りで指定(EUR,GBP,JPY) |
time |
文字列(ISO 8601) |
いいえ |
過去の時点 |
group |
文字列 |
いいえ |
hour、day、week、month のいずれか |
呼び出し例
{ "source": "USD", "target": "EUR,GBP,JPY" }
応答例
[
{ "rate": 0.9214, "source": "USD", "target": "EUR", "time": "2026-04-26T11:00:00Z" },
{ "rate": 0.7891, "source": "USD", "target": "GBP", "time": "2026-04-26T11:00:00Z" },
{ "rate": 151.34, "source": "USD", "target": "JPY", "time": "2026-04-26T11:00:00Z" }
]
list_currencies
サポートされているすべての通貨のコード、名前、および記号を取得します。上位サーバーで24時間キャッシュされます。
入力 — なし。
応答例(一部省略)
{
"currencies": [
{ "code": "USD", "name": "US Dollar", "symbol": "$" },
{ "code": "EUR", "name": "Euro", "symbol": "€" },
{ "code": "GBP", "name": "British Pound", "symbol": "£" },
"..."
],
"count": 162
}
環境変数
| 変数 |
デフォルト |
必須 |
目的 |
ALLRATES_API_KEY |
— |
はい |
あなたのAPIキー。未設定の場合はサーバーが起動時に終了します。 |
ALLRATES_BASE_URL |
https://allratestoday.com/api |
いいえ |
セルフホストまたはステージングデプロイメントの場合のオーバーライド用 |
これらの変数は、MCPクライアントの設定ファイル(env ブロック内)で設定します。シェルで設定するのではなく、MCPサーバーはサブプロセスとして独立した環境で起動されるためです。
トラブルシューティング
| 症状 |
考えられる原因 |
解決策 |
| クライアントが「MCPサーバーの起動に失敗しました」または赤いドットを表示 |
ALLRATES_API_KEY が設定されていないか無効 |
クライアント設定でキーを確認し、ダッシュボードのキーと一致することを確認 |
| ツールは表示されるが、すべての呼び出しが「無効なAPIキー」を返す |
キーが不正な形式(接頭辞が欠落、切り捨てられている、または取り消されている) |
ダッシュボードから新しいキーをコピー |
| ツールが「APIクォータを超過しました」を返す |
プランのリクエスト制限に達した |
翌月まで待つか、プランをアップグレード |
| 過去データのツールが「不正なリクエスト」を返す |
無効な期間または不明な通貨コード |
期間は 1d/7d/30d/1y でなければならず、コードは3文字でなければなりません |
| サーバーは起動するが、クライアントにツールが表示されない |
設定変更後にクライアントが再読み込みされていない |
クライアントを完全に終了(ウィンドウを閉じるだけでは不十分)して再開 |
npx は実行されるが、永久にハングする |
サーバーがMCPクライアントの接続を待っている — シェルから実行した場合、これは正常な動作 |
シェルから実行しないで、MCPクライアントに起動させる |
サーバーログの確認
サーバーが何をしているかを確認するには、APIキーを設定して手動で実行します。
ALLRATES_API_KEY=art_live_xxxxx npx -y @allratestoday/mcp-server
正常な場合は出力はありません(stdioはMCPプロトコル用に予約されています)。エラーはstderrに出力されます。
エラーリファレンス
サーバーはAPIエラーを明確で実行可能なメッセージにマッピングします。
| HTTPステータス |
意味 |
ツールのエラーメッセージ |
| 200 |
成功 |
(レートが返される) |
| 400 |
不正なリクエスト — 通常は不明な通貨コード |
不正なリクエスト — おそらく不明な通貨コード |
| 401 |
無効または欠落したAPIキー |
無効なAPIキー |
| 429 |
クォータを超過 |
APIクォータを超過しました |
| 5xx |
上位サーバー側の問題 |
HTTP 5xx — <上位サーバーのメッセージ> |
LLMはこれらのメッセージを応答に表示します。たとえば、429エラーに遭遇したユーザーのプロンプトに対して、アシスタントは 「APIクォータを超過しました — 翌月に再試行するか、プランをアップグレードしてください。」 と返答します。
よくある質問
会話やクエリデータを保存しますか?
いいえ。あなたのAPIキーとリクエストパラメータ(source、target、period、time)のみが上位APIに送信されます。LLMの会話コンテキスト、シートの内容、またはその他の情報は決して送信されません。
APIキーはどうなりますか?
上位APIへのリクエストで、Authorization ヘッダーの Bearer トークンとしてのみ送信されます。ログに記録されたり、他の場所に送信されることはありません。
初回の過去データリクエストが遅いのはなぜですか?
npx のコールドスタート(初回実行時にパッケージをダウンロード)と、上位サーバーの初期キャッシュミスが原因です。その後の呼び出しは高速です(通常は<200ms)。
npm/Nodeなしで実行できますか?
現時点ではできません — Node ≥18が必要です。スタンドアロンバイナリを検討しています。もしそれが重要な場合は、issueを開いてください。
セルフホストのオプションはありますか?
はい、ALLRATES_BASE_URL を自分のインスタンスに設定してください。
ChatGPTで動作しますか?
Anthropic MCP標準は、MCP互換のすべてのクライアントで動作します。ChatGPT Desktopは実験的なMCPサポートを持っています。最新の状況はOpenAIのドキュメントを確認してください。
🔧 技術詳細
開発
git clone https://github.com/cahthuranag/realtime-exchange-rate-mcp.git
cd realtime-exchange-rate-mcp
npm install
npm run build
ALLRATES_API_KEY=art_live_xxxxx node dist/index.js
サーバーはstdioで実行され、MCPクライアントの接続を待ちます。Ctrl+Cを押して終了します。
開発中に変更を監視して再構築するには、以下のコマンドを実行します。
npm run dev
ローカルインスタンスでテストするには、以下のコマンドを実行します。
ALLRATES_BASE_URL=http://localhost:8080/api ALLRATES_API_KEY=test_key node dist/index.js
プロジェクト構造
src/
├── index.ts # MCPサーバー、ツール登録、リクエストハンドラー
└── client.ts # HTTPクライアント + エラーマッピング
dist/ # コンパイルされたJS(gitignored)
server.json # MCPレジストリマニフェスト
package.json # npmメタデータ、依存関係、スクリプト
コントリビュートについて
github.com/cahthuranag/realtime-exchange-rate-mcp でのissueとPRを歓迎します。PRを開く前に以下のことを確認してください。
npm run build がエラーなく成功すること。
- 実際のAPIキー(
ALLRATES_API_KEY に設定)でテストすること。
- ツールの動作を変更した場合は、
src/index.ts のツール説明を更新すること。
- ツールを追加または名前を変更した場合は、このREADMEの「ツールリファレンス」セクションを更新すること。
変更履歴
完全なリストは GitHub Releases を参照してください。最近の主な変更点は以下の通りです。
- 0.3.x — すべてのツールにAPIキーが必要;起動時に明確なエラーで即座に失敗する
- 0.2.x — ニュースツールを削除、
get_historical_rates に認証を必須にする
- 0.1.x — 5つのツールを含む初期リリース
サポート
📄 ライセンス
MIT — LICENSE を参照してください。