mcpField
C
Crypto Price Tracker MCP Server

Crypto Price Tracker MCP Server

ローカル
github.com/RoystonDAlmeida金融データ074 週間前に更新

Crypto Price Tracker MCP Server について

暗号資産の価格を追跡する、Python と FastMCP 製のサーバーです。ウォッチリストの管理や Google Sheets でのデータ活用を行う利用者向けで、CoinGecko から価格を取得し、シート共有や値上がり・値下がり分析にも対応します。Docker で実行できます。

主な機能

  1. 01暗号資産のウォッチリスト管理
  2. 02CoinGecko から最新価格を取得
  3. 03Google Sheets への出力と共有
  4. 04シート内の値上がり・値下がり分析
  5. 05プロンプト生成ツールの提供
  6. 06Docker コンテナで実行

活用シーン

  1. 01追跡する暗号資産の登録と確認
  2. 02ウォッチリスト銘柄の価格更新
  3. 03価格データの出力と共有
  4. 04シート内の最大上昇・下落銘柄の特定

MCP 対応

ウォッチリスト管理、価格取得、Google Sheets への出力、実績分析の MCP ツールとプロンプトを stdio 経由で公開します。GitHub Copilot などの MCP クライアントから利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

暗号資産価格トラッカー MCP サーバー

暗号資産の価格を追跡し、ウォッチリストを管理し、データを Google Sheets にエクスポートできる Python ベースのサーバーアプリケーションです。このサーバーは FastMCP フレームワークを使用して構築されており、Docker を使用してコンテナー化アプリケーションとして実行するように設計されています。

目次

機能

  • ウォッチリスト管理:
    • 暗号資産を個人用ウォッチリストに追加します。
    • ウォッチリストから暗号資産を削除します。
    • 現在のウォッチリストを表示します。
  • 価格追跡:
    • ウォッチリスト内のすべてのコインの最新価格を取得します(CoinGecko API を使用)。
  • Google Sheets との統合:
    • ウォッチリストと価格データを Google スプレッドシートにエクスポートします。
    • 指定したユーザーと Google スプレッドシートを共有します。
    • Google スプレッドシート内のデータからパフォーマンス(最大の上昇/下落)を分析します。
  • MCP との連携:
    • stdio 経由の MCP(Model Context Protocol)による連携のためのツールとプロンプトを提供します。

技術スタック

  • Python 3.12+
  • Docker: コンテナー化に使用します。
  • FastMCP(mcp[cli]): サーバーとそのツールを構築するためのフレームワークです。
  • uv: Docker ビルド内での Python パッケージ管理に使用します。
  • httpx: 暗号資産 API への HTTP リクエストに使用します。
  • Google API クライアントライブラリ: Google Sheets との連携に使用します。
    • google-api-python-client
    • google-auth
    • google-auth-oauthlib
    • google-auth-httplib2

前提条件

  • Docker: インストールされ、実行されている必要があります。Docker をインストールしてください。
  • Google Cloud プロジェクトとサービスアカウント: Google Sheets との統合に必要です。
    • Google Cloud Platform プロジェクト。
    • プロジェクトで Google Sheets API が有効になっていること。
    • Google スプレッドシートを編集する権限を持つサービスアカウント。
    • サービスアカウントの JSON キーファイル(google_credentials.json と呼びます)。

インストール

1. リポジトリをクローンする

まず、このリポジトリをローカルマシンにクローンします。

git clone [email protected]:RoystonDAlmeida/crypto-price-tracker-mcp.git
cd crypto-price-tracker-mcp/
2. Python 仮想環境を作成して有効化する

プロジェクトの依存関係を分離するため、仮想環境の使用を強くおすすめします。このプロジェクトでは Python 3.12+ が必要です。

# Navigate to your project directory if you aren't already there
# cd crypto-price-tracker-mcp/

# Create a virtual environment (e.g., named .venv)
python3.12 -m venv .venv

# Activate the virtual environment:
# On macOS and Linux:
source .venv/bin/activate
# On Windows (Git Bash or WSL):
# source .venv/Scripts/activate
# On Windows (Command Prompt):
# .venv\Scripts\activate.bat
# On Windows (PowerShell):
# .venv\Scripts\Activate.ps1

有効化すると、シェルプロンプトに有効な環境が表示されます(例:(.venv))。

3. 依存関係をインストールする

このプロジェクトでは Python パッケージ管理に uv を使用します(「技術スタック」に記載されており、Dockerfile でも使用されています)。依存関係は pyproject.toml で定義されています。仮想環境が有効で、プロジェクトのルートディレクトリにいることを確認してから、次を実行します。

# Ensure uv is installed (e.g., pip install uv, or follow uv's installation guide)
# Then, install the project in editable mode with its dependencies:
uv pip install -e .

これにより、crypto-price-tracker-mcp パッケージと必要なライブラリが仮想環境にインストールされます。

4. Google Sheets API の認証情報を取得する
  1. Google Cloud Console にアクセスします。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. プロジェクトで「Google Sheets API」を有効にします。
  4. サービスアカウントを作成します。
  • 「IAM & Admin」>「Service Accounts」に移動します。
  • 「Create Service Account」をクリックします。
  • 名前(例:「crypto-sheets-editor」)を入力します。
  • 「Done」をクリックします。
  1. サービスアカウントの JSON キーを作成します。
  • リストから、作成したサービスアカウントを見つけます。
  • サービスアカウントの横にある三点リーダー(Actions)をクリックし、「Manage keys」を選択します。
  • 「Add Key」>「Create new key」をクリックします。
  • キーの種類として「JSON」を選択し、「Create」をクリックします。
  • JSON ファイルがダウンロードされます。このファイルの名前を google_credentials.json に変更します。このファイルをプロジェクトフォルダーのルートに追加します。
5. Docker イメージをビルドする

仮想環境でプロジェクトのルートディレクトリ(Dockerfile がある場所)に移動し、次を実行します。

docker build -t crypto-price-tracker .
6. Docker コンテナーを実行する

サーバーを実行するには、google_credentials.json ファイルをコンテナーにマウントする必要があります。

Docker を直接使用する
docker run -it --rm \
  -v /path/to/your/local/google_credentials.json:/app/google_credentials.json \
  crypto-price-tracker

/path/to/your/local/google_credentials.json を、ホストマシン上にある google_credentials.json ファイルの実際の絶対パスに置き換えてください。

設定パラメーター

-it:TTY を使用した対話モードでコンテナーを実行します。stdio 通信に必要です。 --rm:コンテナーの終了時に自動的に削除します。 -v ...:ローカルの認証情報ファイルを、コンテナー内の /app/google_credentials.json にマウントします。アプリケーションはデフォルトでこの場所のファイルを参照します。

MCP クライアントとの連携(GitHub Copilot)

MCP クライアント(GitHub Copilot)で入力したプロンプトを通じて、このコンテナー化された MCP サーバーを操作するため、VSCode の settings.json(ユーザー設定を開く)に次の設定を追加します。

{
    "mcpServers": {
        "crypto-price-tracker": {
            "command": "docker",
            "args": [
                "run",
                "--rm",
                "-i",
                "-v",
                "<local_path>/google_credentials.json:/app/google_credentials.json",
                "-e",
                "GOOGLE_CREDENTIALS_PATH=/app/google_credentials.json",
                "crypto-price-tracker-mcp"
            ]
        }
    }
}

GitHub Copilot を Agent モードで起動すると、settings.json で指定されたサーバーが起動します。コンソール出力を確認し、ツールが正常に検出されたことを確認してください。

前提条件

まず、正しいタグを付けて Docker イメージをビルドしてください。

docker build -t crypto-price-tracker-mcp .
設定

重要な注意事項:

  • <local_path> を、ホストマシン上にある google_credentials.json ファイルの実際の絶対パスに置き換えてください。
  • MCP クライアントとの連携では、通常、完全な TTY ではなく標準入力(stdin)のみが必要なため、-it ではなく -i フラグを使用します。
  • コンテナー内のアプリケーションが認証情報ファイルの場所を認識できるよう、例では環境変数 GOOGLE_CREDENTIALS_PATH を明示的に設定しています。
  • **通信方法:**サーバーは stdio(標準入力/標準出力)で通信するため、GitHub Copilot などの MCP クライアントとシームレスに連携できます。

動作の仕組み

サーバーは stdio(標準入力/標準出力)で通信するため、GitHub Copilot などの MCP クライアントと互換性があります。これにより、自然言語のプロンプトを通じてコンテナー化された MCP サーバーを操作でき、サーバーはバックグラウンドで暗号資産の価格追跡と Google Sheets との連携を処理します。

/path/to/your/local/google_credentials.json を、ホストマシン上にある google_credentials.json ファイルの実際の絶対パスに置き換えてください。

  • -it:TTY を使用した対話モードでコンテナーを実行します。stdio 通信に必要です。
  • --rm:コンテナーの終了時に自動的に削除します。
  • -v ...:ローカルの認証情報ファイルを、コンテナー内の /app/google_credentials.json にマウントします。アプリケーションはデフォルトでこの場所のファイルを参照します。

サーバーは stdio(標準入力/標準出力)で通信します。MCP クライアント(GitHub Copilot)を使って操作できます。

設定

  • Google 認証情報:
    • アプリケーションは、デフォルトでコンテナ内の /app/google_credentials.json にある Google Sheets API の認証情報を探します。
    • コンテナの実行時に GOOGLE_CREDENTIALS_PATH 環境変数を設定すると、このパスを上書きできます(例:-e GOOGLE_CREDENTIALS_PATH=/custom/path/creds.json)。

使用方法

サーバーは stdio 経由で MCP プロトコルを使用して動作します。コンテナを起動すると、MCP リクエストを受け付ける準備が整います。

利用可能なツール

サーバーでは、次のツールを呼び出せます。

  • get_watchlist:追跡対象の暗号資産の現在のウォッチリストを取得します。
  • add_to_watchlist(id: str):暗号資産(例:「bitcoin」)をウォッチリストに追加します。
  • remove_from_watchlist(id: str):暗号資産をウォッチリストから削除します。
  • fetch_prices:ウォッチリスト内のすべてのコインの最新価格を取得します。
  • export_to_sheets(sheet_name: str, user_email: str):追跡対象の価格データをすべて、指定した sheet_name の Google Sheet にエクスポートし、user_email と共有します。
  • get_sheet_performance_leaders(sheet_name: str):指定した Google Sheet の「Change_24h」列に基づいて、最も上昇した暗号資産と最も下落した暗号資産を特定します。
プロンプト生成ツールの使用

MCP クライアント(GitHub Copilot など)がリクエストの作成やユーザーへのアクションの提案を行えるように、サーバーはいくつかの「プロンプト生成」ツールも提供しています。これらのツールを呼び出すと、自然言語の文字列が返されます。以下に、これらのツールと生成されるプロンプト、その目的を説明します。

  • get_watchlist_prompt()

    • 生成されるプロンプト(返されるレスポンス): "Please fetch the watchlist."
    • 呼び出されるツール(確認後): get_watchlist
    • 目的: ユーザーの現在のウォッチリストの取得と表示を提案、または開始します。
  • add_coin_prompt(coin_id: str)

    • 入力例: coin_id="ethereum"
    • 生成されるプロンプト(返されるレスポンス): "Please add ETHEREUM to my watchlist."
    • 呼び出されるツール(確認後): add_to_watchlist(指定された coin_id を使用)
    • 目的: 特定の暗号資産をウォッチリストに追加するリクエストの作成を支援します。
  • remove_coin_prompt(coin_id: str)

    • 入力例: coin_id="bitcoin"
    • 生成されるプロンプト(返されるレスポンス): "Please remove bitcoin from my watchlist."
    • 呼び出されるツール(確認後): remove_from_watchlist(指定された coin_id を使用)
    • 目的: 特定の暗号資産をウォッチリストから削除するリクエストの作成を支援します。
  • get_prices_prompt()

    • 生成されるプロンプト(返されるレスポンス): "Please fetch the latest prices for all cryptocurrencies in my watchlist."
    • 呼び出されるツール(確認後): fetch_prices
    • 目的: ウォッチリスト内のすべてのコインの現在の市場価格を更新して表示するリクエストを開始します。
  • export_prompt(sheet_name: str, user_email: str)

    • 入力例: sheet_name="Crypto Portfolio"、user_email="[email protected]"
    • 生成されるプロンプト(返されるレスポンス): "Please export all tracked price data to my Google Sheet 'Crypto Portfolio' and share it with [email protected]."
    • 呼び出されるツール(確認後): export_to_sheets(sheet_name と user_email を使用)
    • 目的: ウォッチリストと価格データを Google Sheet にエクスポートして共有するリクエストを容易にします。
  • get_sheet_performance_leaders_prompt(sheet_name: str)

    • 入力例: sheet_name="Crypto Analysis"
    • 生成されるプロンプト(返されるレスポンス): "From the Google Sheet named 'Crypto Analysis', can you tell me which crypto had the highest gain and which one had the biggest loss recently?"
    • 呼び出されるツール(確認後): get_sheet_performance_leaders(sheet_name を使用)
    • 目的: 指定された Google Sheet からパフォーマンス分析(最大の上昇・下落)を依頼する際に役立ちます。

MCP クライアントは通常、生成されたプロンプトを使ってユーザーを案内するか、ユーザーの確認後に主要なアクションツール(add_to_watchlist(id: str)、get_watchlist() など)のいずれかへの呼び出しを直接作成します。

データの永続化

  • watchlist.json:
    • ユーザーのウォッチリストは、watchlist.json という名前のファイルに保存されます。
    • Docker コンテナ内では、このファイルは /app/watchlist.json に作成されます。

貢献

貢献を歓迎しており、大変ありがたく思います!このプロジェクトに貢献する場合は、以下の一般的な手順に従ってください。

  1. リポジトリをフォークする: まず、メインリポジトリを自分の GitHub アカウントにフォークします。

  2. フォークをクローンする: フォークしたリポジトリをローカルマシンにクローンします:

    git clone https://github.com/YOUR_USERNAME/crypto-price-tracker-mcp.git
    cd crypto-price-tracker-mcp
    
  3. 開発環境をセットアップする: インストールの手順に従って、仮想環境の作成や依存関係のインストールなど、ローカルの開発環境をセットアップします。

  4. 新しいブランチを作成する: 機能追加またはバグ修正用に新しいブランチを作成します。内容がわかる名前を付けてください(例:feature/add-new-exchange または fix/price-fetch-error)。

    git checkout -b your-branch-name
    
  5. 変更を加える: 機能を実装するか、バグを修正します。コードがプロジェクトのコーディングスタイルと規約に準拠していることを確認してください。

  6. 変更をテストする: (該当する場合)変更内容に対するテストを追加または更新し、すべてのテストが成功することを確認します。

  7. 変更をコミットする: 明確で簡潔なコミットメッセージを付けて、変更をコミットします。

    git add .
    git commit -m "feat: Describe your feature or fix"
    

    (コミットメッセージには Conventional Commits の使用を検討してください。)

  8. フォークにプッシュする: 変更を GitHub 上のフォークしたリポジトリにプッシュします。

    git push origin your-branch-name
    
  9. プルリクエスト(PR)を作成する: GitHub で元のリポジトリを開き、フォークしたブランチからメインリポジトリの main(または master)ブランチに対するプルリクエストを作成します。PR には変更内容を明確に説明してください。

ライセンス

このプロジェクトはMIT Licenseのライセンスに基づいています。

コメント

MCP は初めてですか?

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

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