mcpField
J
jessicayanwang-test

jessicayanwang-test

リモート
github.com/jessicayanwang金融データ056 週間前に更新
リポジトリ

jessicayanwang-test について

Frankfurter MCPは、Frankfurterの通貨APIをLLMエージェント向けに提供します。最新・過去の為替レート検索、換算、通貨一覧に対応し、stdioとHTTPのトランスポートを利用できます。

主な機能

  1. 01対応通貨の一覧取得
  2. 02最新為替レートの取得
  3. 03最新レートでの換算
  4. 04過去のレートと期間の検索
  5. 05指定日のレートで換算
  6. 06stdio、SSE、Streamable HTTP対応

活用シーン

  1. 01指定通貨の現在レートを確認する
  2. 02現在レートで金額を換算する
  3. 03過去の日付や期間のレートを調べる
  4. 04過去のレートで金額を換算する

MCP 対応

Frankfurter APIの機能をMCPツールとして提供します。MCPクライアントはstdio、SSE、Streamable HTTPで接続できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://server.smithery.ai/@jessicayanwang/test/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://server.smithery.ai/@jessicayanwang/test/mcp認証が必要

ツール

詳細

Python 3.12+ pytest GitHub commits since latest release PyPI PyPI - Downloads Verified on MseeP smithery badge

Frankfurter MCP

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

インストール

MCP サーバーで利用できるツールを使うことが目的の場合は、以下の「使用方法」>「クライアント」サブセクションを参照してください。

このリポジトリをクローンするディレクトリを、以降では_作業ディレクトリ_または_WD_と呼びます。

uvをインストールします。仮想環境に最小限の依存関係でプロジェクトをインストールするには、_WD_で次のコマンドを実行します。必須ではない依存関係(開発およびテストに必要です)もすべてインストールするには、次のコマンドの--no-devを--all-groupsフラグに置き換えてください。

uv sync --no-dev

環境変数

以下は、アプリケーションの設定に使用できる環境変数の一覧です。環境変数のテンプレートは、ファイル .env.template に用意されています。以下の表に記載されているデフォルト値は、.env.template ファイル内の値と常に同じとは限りません。

環境変数には、FASTMCP_ を接頭辞として付けて、HOST、PORT、DEBUG、LOG_LEVEL を指定できます。FastMCP のグローバル設定オプションを参照してください。環境変数として指定された on_duplicate_ を接頭辞に持つオプションは、_無視される_ことに注意してください。

基盤となる HTTP クライアントも、HTTPX ライブラリのドキュメントに記載されている環境変数の一部に対応しています。また、ホストされている API エンドポイントや中間 HTTP(S) プロキシサーバーの自己署名証明書を使用する場合は、SSL_CERT_FILE と SSL_CERT_DIR を設定できます。

変数[デフォルト値] と説明
LOG_LEVEL[INFO] ログのレベルです。このレベルを変更すると、同じ環境変数を使用する他の依存ライブラリのログ出力にも影響します。有効な値については、Python の logging ドキュメントを参照してください。
HTTPX_TIMEOUT[5.0] 基盤となる HTTP クライアントが Frankfurter API からの応答を待機する時間(秒)です。
HTTPX_VERIFY_SSL[True] たとえば自己署名証明書を使用するプロキシサーバーを利用している場合、この変数を False に設定すると SSL 証明書の検証を無効にできます。ただし、これを False に設定することは_推奨されません_。代わりに、自己署名証明書を適切に設定するため、SSL_CERT_FILE と SSL_CERT_DIR 変数を使用してください。
FAST_MCP_HOST[localhost] サーバートランスポート(下記参照)が stdio に設定されていない場合に、MCP サーバーがバインドするホストを指定します。
FAST_MCP_PORT[8000] サーバートランスポート(下記参照)が stdio に設定されていない場合に、MCP サーバーがリッスンするポートを指定します。
MCP_SERVER_TRANSPORT[stdio] 使用できるオプションは stdio、sse、streamable-http です。ただし、.env.template ではデフォルト値が stdio に設定されています。
MCP_SERVER_INCLUDE_METADATA_IN_RESPONSE[True] 各ツール呼び出しの応答データをラップする MCP 型 TextContent に、追加のメタデータを含めるかどうかを指定します。追加のメタデータには、応答の取得に使用した Frankfurter サーバーの API URL などが含まれます。
FRANKFURTER_API_URL[https://api.frankfurter.dev/v1] Frankfurter API をセルフホストする場合は、デプロイ先の API エンドポイントアドレスに変更してください。

使用方法

以下の各節では、Frankfurter MCP をサーバーとして実行する方法と、MCP クライアントからアクセスする方法を説明します。

サーバー

サーバーの実行時には、stdio トランスポート、または HTTP オプション(sse または新しい streamable-http)を選択できます。

デフォルト設定を使用し、MCP_SERVER_TRANSPORT を sse または streamable-http に設定すると、MCP エンドポイントには HTTP 経由でアクセスできます。Server Sent Events(SSE)トランスポートの場合は http://localhost:8000/sse、ストリーム可能な HTTP トランスポートの場合は http://localhost:8000/mcp です。

stdio トランスポートとデフォルトのパラメーターで Frankfurter MCP を実行する場合は、.env.template ファイルを使用せず、以下のコマンドを実行してください。

uv を使用したサーバー

任意: 前述の環境変数を変更する場合は、.env.template ファイルを WD 内の .env ファイルにコピーします。または、デフォルト設定以外を使用する場合は、シェルで変更したい環境変数をエクスポートできます。

MCP サーバーを起動するには、WD で以下を実行してください。

uv run frankfurtermcp
PyPI パッケージから pip でサーバーをインストールする

仮想環境(uv、pyenv、conda などで管理されている場合があります)で、PyPI からこのパッケージを pip で追加し、次のコマンドを実行してサーバーを起動します。

任意: 前述の環境変数のデフォルト値を変更する場合は、.env.template ファイルの内容を記載した .env ファイルを追加します。または、シェルで変更したい環境変数をエクスポートすることもできます。

pip install frankfurtermcp
python -m frankfurtermcp.server
Docker を使用してサーバーを起動する

このリポジトリには、2 つの Dockerfile が用意されています。

  • local.dockerfile は Frankfurter MCP サーバーをコンテナー化するためのものです。
  • smithery.dockerfile は Smithery AI へのデプロイ用です。こちらは使用しなくてもかまいません。

イメージをビルドし、コンテナーを作成して起動するには、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 経由でアクセスできます。

クラウドでホストされているサーバー

現在利用できるクラウドホスト型の選択肢は次のとおりです。

クライアントからのアクセス

この小節では、クライアントが FrankfurterMCP サーバーに接続してテストする方法を説明します。

公式 MCP ビジュアルインスペクター

MCP Inspector は、開発者が MCP サーバーをテストおよびデバッグするために使用できる、Model Context Protocol の_公式_ツールです。MCP サーバーを詳しく調べるには、こちらが最も包括的な方法です。

使用するには、Node.js がインストールされている必要があります。node や MCP Inspector などのパッケージをインストールおよび管理するには、Node Version Manager(nvm)を使用するのが最適です。nvm をインストールしたら、次のコマンドを実行して、最新の Long Term Release バージョンの node をインストールして使用できます。

nvm install --lts
nvm use --lts

次に、WD で以下を実行して、MCP Inspector を(インストールして)起動します。

npx @modelcontextprotocol/inspector uv run frankfurtermcp

これにより、認証トークン付きのローカル URL がポート 6274 に作成されます。この URL をコピーして、ブラウザーで開いてください。MCP Inspector の UI が表示されたら、Connect を押して 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"
    ]
}

利用可能な MCP 機能の一覧

FrankfurterMCP には次の MCP 機能があります。

ツール

以下の表に、FrankfurterMCP サーバーが公開するツールの名前を示します。ここに記載されている説明はドキュメント用であり、Model Context Protocol を通じて公開される実際の説明とは異なる場合があります。

名前説明
get_supported_currenciesFrankfurter API がサポートする通貨の一覧を取得します。
get_latest_exchange_rates指定した基準通貨について、指定した通貨の最新の為替レートを取得します。
convert_currency_latest最新の為替レートを使用して、ある通貨の金額を別の通貨に換算します。
get_historical_exchange_rates指定した基準通貨について、指定した日付または日付範囲の指定通貨の過去の為替レートを取得します。
convert_currency_specific_date指定した日付の為替レートを使用して、ある通貨の金額を別の通貨に換算します。

各ツールの必須引数と省略可能な引数は、簡潔さのため以下の表には記載していませんが、プロトコルを通じて MCP クライアントから利用できます。

コントリビューション

Git 用の pre-commit と ruff をインストールしてください。その後、WD で以下を実行して pre-commit を有効にします。

pre-commit install

プルリクエストを歓迎します。大きな変更を行う場合は、まず issue を開いて、変更したい内容について話し合ってください。

テストとカバレッジ

用意されているテストケースを実行するには、以下を実行してください。追加のコンソール出力を表示するには、コマンドに --capture=tee-sys フラグを追加します。

uv run --group test pytest tests/

便利なテストスクリプト WD/run-tests.sh を使うと、すべてのテストを実行し、以下のようにカバレッジレポートを生成できます。また、実行するテストを絞り込むための -k など、pytest に渡す引数やパラメーターも指定できます。すべてのテストを実行した場合、生成されるカバレッジレポートは以下のようになります。

Name                             Stmts   Miss  Cover
----------------------------------------------------
src/frankfurtermcp/__init__.py      10      0   100%
src/frankfurtermcp/common.py        23      0   100%
src/frankfurtermcp/mixin.py         52      4    92%
src/frankfurtermcp/model.py         17      0   100%
src/frankfurtermcp/server.py       111     20    82%
tests/__init__.py                    0      0   100%
tests/test_data_models.py           60      0   100%
tests/test_server.py                71      0   100%
----------------------------------------------------
TOTAL                              344     24    93%

ライセンス

MIT。

プロジェクトの状況

以下の表に、プロジェクトの状況に関する更新の一部を示します。これらは特定のコミットやマイルストーンに対応するものではありません。

日付状況備考または所見
2025年9月6日activeコードのリファクタリングと整理。
2025年6月27日activeGlama.AI と Smithery.AI へのリモートデプロイに成功。
2025年6月9日activeコンテナ化と自己署名プロキシへの対応を追加。
2025年6月7日activeプロジェクトを開始。Frankfurter API のすべての機能をカバーするツールを追加。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。