mcpField
M
MCP Crypto Server

MCP Crypto Server

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

MCP Crypto Server について

MCP Crypto Server は、AI アプリケーション向けに暗号資産の市場データ、分析、ニュース機能を提供します。CCXT による取引所接続、TimescaleDB での履歴データ保存、設定可能な RSS ニュースソースを組み合わせています。

主な機能

  1. 01リアルタイムおよび過去の市場データ
  2. 02CCXT による複数取引所への接続
  3. 03市場トレンドとテクニカル分析
  4. 04暗号資産ニュースの集約とセンチメント分析
  5. 05設定可能な RSS 購読

活用シーン

  1. 01通貨の現在価格や過去価格の照会
  2. 02市場トレンドと指標の分析
  3. 03特定通貨に関するニュースのセンチメント確認
  4. 04最近の暗号資産ニュースの要約

MCP 対応

市場データやニュースに関するツール、リソース、プロンプトを MCP クライアントに提供します。価格データ、分析、ニュース要約、暗号資産シンボル一覧などを利用できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP Crypto Server

FastMCP、CCXT、TimescaleDB、RSS フィードとの連携により構築された、高性能な暗号資産の市場データ・分析プラットフォームです。

概要

MCP Crypto Server は、リアルタイムの暗号資産市場データ、高度な分析、LLM を活用したインサイト、暗号資産ニュースの集約機能を提供する強力なプラットフォームです。Model Context Protocol(MCP)を基盤とし、AI アプリケーションとのシームレスな連携を可能にするとともに、CCXT による堅牢な暗号資産取引所との接続、TimescaleDB を使用した時系列データの保存、RSS フィードを通じたリアルタイムのニュース更新を提供します。

主な機能

  • リアルタイムの市場データ:複数の取引所から暗号資産のライブ市場データにアクセスできます
  • 履歴データの分析:過去の価格や出来高データを照会・分析できます
  • LLM との連携:AI を活用して市場動向を分析し、インサイトを得られます
  • MCP プロトコルのサポート:Model Context Protocol を使用して AI アプリケーションと簡単に連携できます
  • スケーラブルなアーキテクチャ:最適化されたパフォーマンスで大量のリクエストに対応します
  • TimescaleDB による保存:時系列データを効率的に保存・照会できます
  • 複数取引所のサポート:CCXT を介してさまざまな暗号資産取引所に接続できます
  • 暗号資産ニュースの集約:複数の暗号資産 RSS フィードからニュースを収集・分析します
  • ニュースのセンチメント分析:AI を活用して暗号資産ニュースのセンチメントを分析します
  • RSS フィードのカスタム登録:ニュースソースを設定・管理できます

アーキテクチャ

┌─────────────────────────────────────────────────────────────────┐
│                      MCP Client Applications                     │
│   (Claude Desktop, Custom AI Applications, Analysis Tools)       │
└───────────────────────────────┬─────────────────────────────────┘
                                │
                                ▼
┌─────────────────────────────────────────────────────────────────┐
│                        FastMCP Server                            │
├─────────────┬─────────────────────┬────────────────┬────────────┤
│  Resources  │        Tools        │    Prompts     │  Schemas   │
│             │                     │                │            │
│ Market Data │  Market Analysis    │ Trading Rec.   │ Input/     │
│ Symbols     │  Price Data         │ Market Trend   │ Output     │
│ Historical  │  LLM Analysis       │ Analysis       │ Validation │
│ News Feed   │  News Analysis      │ News Impact    │            │
└─────────────┴─────────────────────┴────────────────┴────────────┘
                    │                      │
       ┌────────────┼──────────────────────┘
       │            │                │
       ▼            ▼                ▼
┌─────────────┐ ┌────────────┐ ┌────────────────────┐
│  Exchange   │ │    RSS     │ │  Database Service  │
│  Service    │ │  Service   │ │                    │
│             │ │            │ │    TimescaleDB     │
│     CCXT    │ │ Feed Parser│ │    Time-series     │
└─────────────┘ └────────────┘ └────────────────────┘

技術スタック

  • FastMCP:Model Context Protocol に基づくサーバーフレームワーク
  • CCXT:暗号資産取引所との接続ライブラリ
  • TimescaleDB:PostgreSQL 用の時系列データベース拡張機能
  • Python:中核となるプログラミング言語
  • uv:依存関係の管理に使用する高性能 Python パッケージマネージャー
  • feedparser:RSS フィード解析ライブラリ
  • NLTK/spaCy:ニュース分析のための自然言語処理

プロジェクト構成

mcp-crypto-server/
├── main.py                   # Main entry point with FastMCP server definition
├── config/                   # Configuration directory
│   ├── __init__.py
│   ├── settings.py           # Application settings and configuration
│   └── logging_config.py     # Logging configuration
├── resources/                # MCP resources
│   ├── __init__.py
│   ├── market_data.py        # Market data resources
│   ├── symbols.py            # Cryptocurrency symbols resources
│   ├── schemas.py            # Schema resources for the client
│   └── news.py               # News feed resources and endpoints
├── tools/                    # MCP tools
│   ├── __init__.py
│   ├── market_analysis.py    # Market analysis tools
│   ├── price_data.py         # Price retrieval tools
│   ├── llm_analysis.py       # LLM integration for data analysis
│   └── news_analysis.py      # News analysis and sentiment tools
├── services/                 # Service integrations
│   ├── __init__.py
│   ├── exchange_service.py   # Exchange API integration
│   ├── database_service.py   # Database service for storing data
│   ├── llm_service.py        # LLM service integration
│   └── news_service.py       # RSS feed management and processing
├── models/                   # Data models
│   ├── __init__.py
│   ├── market_data.py        # Data models for market data
│   ├── analysis.py           # Models for analysis results
│   └── news.py               # Models for news data and analysis
├── utils/                    # Utility functions
│   ├── __init__.py
│   ├── formatters.py         # Data formatting utilities
│   ├── validators.py         # Input validation utilities
│   └── feed_utils.py         # RSS feed utility functions
├── prompts/                  # MCP prompts
│   ├── __init__.py
│   ├── analysis_prompts.py   # Prompt templates for analysis
│   └── news_prompts.py       # Prompt templates for news analysis
├── pyproject.toml            # Project configuration and dependencies
└── uv.lock                   # Lock file for dependencies managed by uv

インストール

前提条件
  • Python 3.9 以降
  • Docker と Docker Compose
  • uv パッケージマネージャー
セットアップ
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/mcp-crypto-server.git
    cd mcp-crypto-server
    
  2. まだインストールしていない場合は、uv をインストールします:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  3. 仮想環境を作成し、依存関係をインストールします:

    uv venv
    uv pip sync
    
  4. Docker を使用して TimescaleDB をセットアップします:

    docker-compose up -d timescaledb
    
  5. 環境変数を設定します:

    cp .env.example .env
    # Edit .env with your configuration settings
    

設定

config/settings.py ファイルを編集して、アプリケーションをカスタマイズします:

  • データベース接続パラメーター
  • 取引所の API キーと設定
  • MCP サーバーの設定
  • LLM サービスの設定
  • RSS フィードの登録設定
  • ニュースソースの設定
  • ログレベルと出力先
RSS フィードの設定

このシステムにはあらかじめ暗号資産ニュースソースが設定されていますが、カスタマイズもできます:

# In config/settings.py

RSS_FEEDS = [
    {
        "name": "CoinDesk",
        "url": "https://www.coindesk.com/arc/outboundfeeds/rss/",
        "update_interval": 900,  # 15 minutes
        "categories": ["news", "markets", "business"]
    },
    {
        "name": "Cointelegraph",
        "url": "https://cointelegraph.com/rss",
        "update_interval": 600,  # 10 minutes
        "categories": ["news", "analysis"]
    },
    # Add your custom RSS feeds here
]

使い方

サーバーの起動
uv run python main.py

サーバーはデフォルトで起動し、MCP クライアントから接続できる状態になります。

MCP の機能

サーバーは以下の MCP 機能を公開します:

ツール
  • market_analysis - 市場動向を分析し、テクニカル指標を提示します
  • price_data - 特定の暗号資産のリアルタイムまたは過去の価格データを取得します
  • llm_analysis - AI による市場のインサイトと予測を生成します
  • news_analysis - 特定のコインに関するニュースのセンチメントと影響を分析します
  • news_summary - 最近の暗号資産ニュースの要約を生成します
リソース
  • symbols://list - 利用可能な暗号資産のシンボル一覧を取得します
  • market_data://{symbol} - 特定のシンボルのリアルタイム市場データを取得します
  • historical_data://{symbol}?timeframe={timeframe}&start={start}&end={end} - パラメーターを指定して履歴データを取得します
  • news://recent - すべてのソースから最新のニュースを取得します
  • news://{source} - 特定のソースからニュースを取得します
  • news://by-coin/{symbol} - 特定の暗号資産に関連するニュースを取得します
プロンプト
  • analyze_market_trend - 市場動向を分析するための定義済みプロンプト
  • generate_trading_recommendation - 現在の市場データに基づいて取引の推奨事項を生成します
  • analyze_news_impact - 最近のニュースが暗号資産の価格にどのような影響を与えるかを分析します
MCP クライアントでニュース機能を使用する
from mcp import Client

# Get recent news for a specific cryptocurrency
client = Client("http://localhost:8000")
news_response = await client.query(
    inputs=[{"symbol": "BTC/USD"}],
    resources=["news://by-coin/BTC"]
)
print(news_response.outputs)

# Analyze news sentiment and potential market impact
analysis_response = await client.query(
    inputs=[{"symbol": "BTC/USD", "timeframe": "24h"}],
    tools=["news_analysis"]
)
print(analysis_response.outputs)

開発

新しい取引所の追加
  1. services/exchange_service.py ファイルを更新し、新しい取引所の設定を追加します
  2. 必要な取引所固有の処理を実装します
  3. resources/symbols.py 内の利用可能なシンボルを更新します
新しい RSS フィードソースの追加
  1. config/settings.py ファイルを更新し、新しいフィードの設定を追加します
  2. フィードに特別な解析が必要な場合は、services/news_service.py を拡張してカスタムハンドラーを追加します
  3. (任意)resources/news.py にソース固有のエンドポイントを追加します
# Example of adding a custom parser in services/news_service.py

def parse_custom_feed(feed_data, source_config):
    """Custom parser for a specific news source"""
    articles = []
    for entry in feed_data.entries:
        # Custom parsing logic
        articles.append({
            "title": entry.title,
            "url": entry.link,
            "published": parse_date(entry.published),
            "summary": entry.summary,
            "source": source_config["name"]
        })
    return articles
カスタムツールの作成
  1. tools/ ディレクトリに新しいファイルを追加します
  2. FastMCP デコレーターを使用して、ツールのロジックを実装します:
    @mcp.tool()
    def your_tool_name(param1: str, param2: int) -> dict:
        """Tool description"""
        # Implementation
        return result
    
新しいリソースの追加
  1. 適切なリソースファイルにリソース関数を作成します:
    @mcp.resource("resource://{parameter}")
    def get_resource(parameter: str) -> str:
        """Resource description"""
        # Implementation
        return data
    
uv での依存関係の管理

このプロジェクトでは、依存関係をすばやく効率的に管理するために uv を使用しています:

  1. 新しい依存関係を追加します:

    uv add package_name
    
  2. すべての依存関係を更新します:

    uv pip sync
    
  3. ロックファイルを生成します:

    uv pip compile -o uv.lock
    

パフォーマンスに関する考慮事項

  • アプリケーションでは、TimescaleDB の時系列最適化を活用し、履歴データのクエリを効率化しています
  • データ量に応じて適切なチャンク間隔を設定し、TimescaleDB のハイパーテーブルを使用することを検討してください
  • 頻繁にアクセスされるデータには、適切なキャッシュ戦略を実装してください
  • RSS フィードでは、不要なリクエストを最小限に抑えるため、ソースの更新頻度に応じてポーリング間隔を調整してください
  • メインアプリケーションのスレッドがブロックされないよう、RSS フィードの更新にバックグラウンドタスクスケジューラーを導入することを検討してください
  • ロードバランサーの背後に複数のインスタンスをデプロイし、水平スケーリングを行ってください

ライセンス

MIT ライセンス

謝辞

  • FastMCP - Model Context Protocol サーバーの実装
  • Model Context Protocol - AI アプリケーション向けの効率的なプロトコル
  • CCXT - 暗号資産取引所向けの取引ライブラリ
  • TimescaleDB - PostgreSQL 向けの時系列データベース
  • uv - 高性能な Python パッケージマネージャー
  • feedparser - Python RSS フィード解析ライブラリ

コメント

MCP は初めてですか?

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

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