mcpField
M
my-mcp-server

my-mcp-server

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

my-mcp-server について

my-mcp-serverは、READMEではMCP Crypto Serverと呼ばれ、取引所の市場データ、履歴データ、暗号資産ニュースをもとに分析を提供します。暗号資産市場の調査向けに、CCXT、TimescaleDB、RSSを組み合わせ、市場・ニュース関連のツール、リソース、プロンプトを公開します。

主な機能

  1. 01複数取引所のリアルタイムデータ取得
  2. 02価格と出来高の履歴検索
  3. 03市場動向とテクニカル指標の分析
  4. 04暗号資産RSSニュースの集約
  5. 05ニュースのセンチメントと影響の分析

活用シーン

  1. 01特定の暗号資産のリアルタイムデータを確認
  2. 02価格や出来高の推移を調査
  3. 03最近のニュースを要約し市場への影響を評価

MCP 対応

このMCPサーバーは、市場分析、価格データ、LLM分析、ニュース分析のツールをクライアントに提供します。市場、履歴、シンボル、ニュースのリソースと、事前定義されたプロンプトも公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 つのサーバーを複数のクライアントで再利用できます。