🚀 Frankfurter MCP
Frankfurter は、最新の通貨為替レート、過去のデータ、または欧州中央銀行などの情報源が公開する時系列データを取得するための便利な API です。もし、Model Context Protocol (MCP) を介して公開される言語モデルエージェントのツールとして Frankfurter API にアクセスする必要がある場合、Frankfurter MCP が必要になります。

🚀 クイックスタート
このセクションでは、Frankfurter MCP のインストールと使用方法について説明します。
📦 インストール
前提条件
このリポジトリをクローンするディレクトリを以降「作業ディレクトリ」または「WD」と呼びます。
uv をインストールします。仮想環境で最小限の依存関係を持つプロジェクトをインストールするには、以下のコマンドを「WD」で実行します。開発やテストに必要なすべての非必須の依存関係をインストールするには、以下のコマンドで --no-dev
を --all-groups
フラグに置き換えます。
uv sync --no-dev
環境変数
アプリケーションを構成するために使用できる環境変数のリストを以下に示します。環境変数のテンプレートは .env.template
ファイルに用意されています。
FASTMCP_
を接頭辞とする以下の環境変数を指定できます: HOST
, PORT
, DEBUG
および LOG_LEVEL
。FastMCP の グローバル構成オプション を参照してください。なお、環境変数として指定された on_duplicate_
接頭辞のオプションは 無視されます。
基盤となる HTTP クライアントも、HTTPX ライブラリ に記載されているいくつかの環境変数を尊重します。さらに、SSL_CERT_FILE
と SSL_CERT_DIR
を構成することで、ホストされた API エンドポイントまたは中間の HTTP(S) プロキシサーバーの自己署名証明書を使用できます。
変数 |
[デフォルト値] と説明 |
HTTPX_TIMEOUT |
[5.0] 基盤となる HTTP クライアントが Frankfurter API からのレスポンスを待つ時間(秒)。 |
HTTPX_VERIFY_SSL |
[True] この変数を False に設定すると、SSL 証明書の検証を無効にできます。たとえば、自己署名証明書を持つプロキシサーバーを使用している場合などです。ただし、これを False に設定することは 推奨されません。代わりに、SSL_CERT_FILE と SSL_CERT_DIR 変数を使用して、自己署名証明書を適切に構成してください。 |
FAST_MCP_HOST |
[0.0.0.0] この変数は、サーバートランスポート(以下を参照)が stdio に設定されていない限り、MCP サーバーがバインドするホストを指定します。 |
FAST_MCP_PORT |
[8000] この変数は、サーバートランスポート(以下を参照)が stdio に設定されていない限り、MCP サーバーがリッスンするポートを指定します。 |
MCP_SERVER_TRANSPORT |
[stdio] 許容されるオプションは stdio 、sse または streamable-http です。ただし、.env.template では、デフォルト値は streamable-http に設定されています。 |
MCP_SERVER_INCLUDE_METADATA_IN_RESPONSE |
[True] 各ツール呼び出しからのレスポンスデータをラップする MCP タイプ TextContent に追加のメタデータを含める 実験的な機能 です。追加のメタデータには、たとえば(2025 年 6 月 21 日現在)レスポンスを取得するために使用される Frankfurter サーバーの API URL が含まれます。 |
FRANKFURTER_API_URL |
[https://api.frankfurter.dev/v1] Frankfurter API を自前でホストする 場合は、これをデプロイメントの API エンドポイントアドレスに変更する必要があります。 |
💻 使用例
サーバーの実行
サーバーを実行する際には、stdio
トランスポートまたは HTTP オプション (sse
または新しい streamable-http
) を使用することができます。
デフォルト設定で MCP_SERVER_TRANSPORT
を sse
または streamable-http
に設定すると、MCP エンドポイントは、Server Sent Events (SSE) トランスポートの場合は http://localhost:8000/sse、ストリーム可能な HTTP トランスポートの場合は http://localhost:8000/mcp で HTTP 経由で利用できます。
stdio
トランスポートとデフォルトパラメータで Frankfurter MCP を実行する場合は、.env.template
ファイルを使用せずに以下のコマンドを実行します。
uv
を使用したサーバーの実行
オプション: デフォルト設定以外の設定を使用する場合は、.env.template
ファイルを「WD」の .env
ファイルにコピーして、前述の環境変数を変更します。または、シェルで変更したい環境変数をエクスポートすることもできます。
「WD」で以下のコマンドを実行して MCP サーバーを起動します。
uv run frankfurtermcp
PyPI パッケージから pip
を使用したサーバーの実行
仮想環境(おそらく conda
または pyenv
で管理)で pip
を使用してこのパッケージを PyPI から追加し、以下のコマンドを実行してサーバーを起動します。
オプション: 前述の環境変数のデフォルト値を変更したい場合は、.env.template
ファイルの内容を含む .env
ファイルを追加します。または、シェルで変更したい環境変数をエクスポートすることもできます。
pip install frankfurtermcp
python -m frankfurtermcp.server
Docker を使用したサーバーの実行
このリポジトリには 2 つの Dockerfile が用意されています。
- Frankfurter MCP サーバーをコンテナ化するための
local.dockerfile
。
- Smithery AI にデプロイするための
smithery.dockerfile
(使用する必要はありません)。
イメージをビルドし、コンテナを作成して起動するには、「WD」で以下のコマンドを実行します。イメージとコンテナに短い名前を付けることもできます。
.env.template
でポートを 8000 以外の値に変更した場合は、以下のコマンドでポート番号の参照を変更することを忘れないでください。--env-file
オプションを使用してすべての環境変数を渡す代わりに、-e
オプションを使用して個々の環境変数を渡すこともできます。
docker build -t frankfurtermcp -f local.dockerfile .
docker create -p 8000:8000/tcp --env-file .env.template --expose 8000 --name frankfurtermcp-container frankfurtermcp
docker start frankfurtermcp-container
イメージのビルドとコンテナの起動が成功すると、MCP サーバーは、Server Sent Events (SSE) トランスポートの場合は http://localhost:8000/sse、ストリーム可能な HTTP トランスポートの場合は http://localhost:8000/mcp で HTTP 経由で利用できます。
FastMCP を使用した動的マウント
FastMCP を使用して MCP サーバーを動的にマウントして自分の MCP サーバーの一部として使用する方法については、src/frankfurtermcp/composition.py
ファイルを確認してください。
クラウドホストされたサーバー
現在利用可能なクラウドホストオプションは以下の通りです。
- Glama.AI: https://glama.ai/mcp/servers/@anirbanbasu/frankfurtermcp
- Smithery.AI: https://smithery.ai/server/@anirbanbasu/frankfurtermcp
クライアントアクセス
このサブセクションでは、クライアントが FrankfurterMCP サーバーに接続してテストする方法について説明します。テスト用のコマンドラインインターフェイス (CLI) も提供されており、後のサブセクションで説明します。
公式の MCP ビジュアルインスペクター
MCP Inspector は、開発者が MCP サーバーをテストおよびデバッグするために使用できる 公式の Model Context Protocol ツールです。これは MCP サーバーを探索する最も包括的な方法です。
これを使用するには、Node.js をインストールする必要があります。node
や MCP Inspector などのパッケージをインストールおよび管理する最良の方法は、Node Version Manager (または nvm
) を使用することです。nvm
をインストールしたら、以下のコマンドを実行して最新の長期サポート (LTS) バージョンの node
をインストールして使用することができます。
nvm install --lts
nvm use --lts
その後、「WD」で以下のコマンドを実行して MCP Inspector をインストールして実行します。
npx @modelcontextprotocol/inspector uv run frankfurtermcp
これにより、認証トークン付きでポート 6274 のローカル URL が作成され、これをコピーしてブラウザで参照することができます。MCP Inspector UI にアクセスしたら、「接続」を押して MCP サーバーに接続します。その後、サーバー上で利用可能なツールを探索することができます。
Claude Desktop、Visual Studio など
Claude Desktop、Visual Studio Code などのシステムで使用できる stdio
トランスポートで実行するサーバーエントリは以下の通りです。
{
"command": "uv",
"args": [
"run",
"frankfurtermcp"
]
}
args
リストの最後の項目として frankfurtermcp
を指定する代わりに、スクリプトの完全なパスを指定する必要がある場合があります。たとえば、「WD」/.venv/bin/frankfurtermcp
です。同様に、uv
を使用する代わりに、python3.12
のパスを適切に置き換えた以下の JSON 構成を使用することもできます。たとえば、「WD」/.venv/bin/python3.12
です。
{
"command": "python3.12",
"args": [
"-m",
"frankfurtermcp.server"
]
}
利用可能なツールのリスト
以下の表に、FrankfurterMCP サーバーが公開するツールの名前を示します。合成例 を通じて公開されるツールはリストに含まれていません。ここに示される説明はドキュメント用であり、モデルコンテキストプロトコルを介して公開される実際の説明とは異なる場合があります。
名前 |
説明 |
get_supported_currencies |
Frankfurter API がサポートする通貨のリストを取得します。 |
get_latest_exchange_rates |
指定された通貨における最新の為替レートを、指定された基準通貨に対して取得します。 |
convert_currency_latest |
最新の為替レートを使用して、ある通貨から別の通貨に金額を変換します。 |
get_historical_exchange_rates |
指定された日付または日付範囲における過去の為替レートを、指定された通貨において指定された基準通貨に対して取得します。 |
convert_currency_specific_date |
指定された日付の為替レートを使用して、ある通貨から別の通貨に金額を変換します。 |
各ツールに必要な引数とオプション引数は、簡潔にするために以下の表にはリストされていませんが、プロトコルを介して MCP クライアントに利用可能です。
FrankfurterMCP コマンドラインインターフェイス (CLI)
FrankfurterMCP で提供される CLI を使用して、MCP サーバーのツールを探索することもできます。たとえば、特定のツールの詳細なスキーマを表示するには、コマンドラインインターフェイスから tools-info
コマンドを使用することができます。コマンドラインインターフェイスは cli
スクリプトとして利用できます。利用可能なコマンドを表示するには、以下のようにヘルプを呼び出すことができます。
uv run cli --help
これにより、以下のスクリーンショットと同様の出力が生成されます。

tools-info
コマンドを呼び出す前に、必ず サーバーを streamable-http
または sse
トランスポートモードで実行してください。できればローカルで実行し、たとえば MCP_SERVER_TRANSPORT=streamable-http uv run frankfurtermcp
を呼び出します。tools-info
コマンドの成功した呼び出しは、以下に示すスクリーンショットと同様の出力を生成します。

tools-info
コマンドの代替として、llamaindex-tools-list
コマンドを呼び出して、それぞれの関数スキーマなしでツールの名前を表示することもできます。この機能は、LlamaIndex MCP クライアントがこの MCP サーバーからツールリストを読み取ることができることをオプションで示すためにのみ提供されています。これを機能させるには、uv sync --extra opt
を呼び出して LlamaIndex MCP クライアントをインストールする必要があります。このコマンドを呼び出した出力は、以下のようになります。

🔧 貢献方法
pre-commit
と ruff
をインストールします。次に、「WD」で以下のコマンドを実行して pre-commit
を有効にします。
pre-commit install
プルリクエストは歓迎されます。大規模な変更の場合は、まずイシューを開いて変更したい内容について議論してください。
🔍 テスト
提供されたテストケースを実行するには、以下のコマンドを実行します。コマンドに --capture=tee-sys
フラグを追加すると、さらにコンソール出力が表示されます。
テストを成功させるには、環境変数 MCP_SERVER_TRANSPORT
を sse
または streamable-http
に設定する必要があります。設定されていない場合は、デフォルトで stdio
になり、テストは失敗します。
MCP_SERVER_TRANSPORT=streamable-http uv run --group test pytest tests/
📄 ライセンス
MIT ライセンスの下で公開されています。
📈 プロジェクトの状態
以下は、プロジェクトの状態に関するいくつかの更新情報の表です。これらは特定のコミットやマイルストーンに対応しているわけではありません。
日付 |
状態 |
注記または観察結果 |
2025 年 6 月 27 日 |
アクティブ |
Glama.AI と Smithery.AI でのリモートデプロイが成功しました。 |
2025 年 6 月 13 日 |
アクティブ |
デモンストレーション用に LlamaIndex ツールのリストを追加しました。(--all-extras フラグが必要です。LlamaIndex はデフォルトではインストールされません。) |
2025 年 6 月 9 日 |
アクティブ |
コンテナ化、自己署名証明書、プロキシのサポートを追加しました。 |
2025 年 6 月 8 日 |
アクティブ |
動的合成を追加しました。 |
2025 年 6 月 7 日 |
アクティブ |
Frankfurter API のすべての機能をカバーするツールを追加しました。 |
2025 年 6 月 7 日 |
アクティブ |
プロジェクトを開始しました。 |