mcpField
M
MCP Server

MCP Server

ローカル
github.com/cabrit0科学・教育177 週間前に更新

MCP Server について

MCP Serverは、トピックに関連するウェブ上の資料を集めて学習パスを生成します。ツリー構造の調整や非同期処理に対応し、標準化されたJSONを利用するアプリ向けです。

主な機能

  1. 01ウェブ資料の検索と取得
  2. 02TF-IDFによる関連資料の選別
  3. 03学習パスのツリー構造を調整
  4. 04YouTube動画の検索
  5. 05非同期タスクと進捗表示
  6. 06リクエスト結果のキャッシュ

活用シーン

  1. 01トピック別の学習パス作成
  2. 02学習ノード数や構造の調整
  3. 03指定言語でのパス生成
  4. 04時間のかかる生成タスクの進捗確認

MCP 対応

このサーバーはMaster Content Plansを生成するAPIを提供し、Model Context Protocolのツールは公開しません。READMEにはMCPインターフェースの記載がありません。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP サーバー

トピックに基づいてマスターコンテンツプラン(MCP)を生成するサーバーです。ウェブからリソースを集約し、体系的な学習パスとして整理します。

特長

  • 技術分野に限らず、あらゆるトピックの学習パスを生成
  • ウェブ検索とスクレイピングを使用して関連リソースを検索
  • カスタマイズ可能なノード数で、リソースを論理的な順序に整理
  • ポルトガル語を重視した多言語対応
  • Render の無料プラン向けにパフォーマンスを最適化
  • 応答を高速化するキャッシュシステム
  • クライアントアプリケーションで利用できる、標準化された JSON 構造を返却
  • 新機能:トピックとの一致を確保する、TF-IDF に基づくリソース関連性フィルタリング
  • 新機能:バランスの取れた学習体験を実現する、学習ツリー全体への戦略的なクイズの配置
  • 新機能:学習パスに関連動画を含める YouTube 連携
  • 新機能:さまざまな種類のトピックに合わせて、より具体的なコンテンツを生成するカテゴリシステム
  • 新機能:ユーザー体験を向上させ、タイムアウトを防ぐリアルタイムの進捗フィードバック付き非同期タスクシステム
  • 新機能:パフォーマンス向上と応答時間短縮を実現する強化されたキャッシュシステム
  • 新機能:リソースをより効果的に活用する最適化されたウェブスクレイピング手法
  • 新機能:各ウェブサイトに最も効率的な手法を自動で選択する適応型スクレイピングシステム
  • 新機能:ブラウザーを効率的に再利用し、メモリ使用量を削減する Puppeteer インスタンスプール

技術スタック

  • Python 3.9+
  • FastAPI
  • JavaScript を多用するウェブサイトのスクレイピングに使用する Pyppeteer
  • ウェブスクレイピング中の検出回避に使用する Pyppeteer-stealth
  • ブラウザーを効率的に再利用する Puppeteer インスタンスプール
  • DuckDuckGo Search API
  • HTML 解析用の BeautifulSoup
  • TF-IDF に基づくリソース関連性フィルタリング用の scikit-learn
  • YouTube 動画の検索とメタデータ抽出用の yt-dlp
  • 分散キャッシュ用の Redis(任意)
  • 効率的なデータシリアライズ用の msgpack
  • 高度なインメモリキャッシュ用の cachetools

インストール

  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/mcp_server.git
    cd mcp_server
    
  2. 仮想環境を作成します:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Python の依存関係をインストールします:

    pip install -r requirements.txt
    
  4. Node.js の依存関係をインストールします(最適化されたスクレイピングシステム用):

    npm install
    
  5. Pyppeteer 用の Chrome/Chromium をインストールします(まだインストールされていない場合)

使い方

ローカルでの実行
  1. 付属のバッチファイルを使用してサーバーを起動します(Windows):

    run_local.bat
    

    または、uvicorn を手動で実行します:

    uvicorn main:app --reload --host 0.0.0.0 --port 8000
    
  2. http://localhost:8000 で API にアクセスします

  3. 次の URL に GET リクエストを送信して MCP を生成します:

    GET /generate_mcp?topic=your_topic
    
  4. http://localhost:8000/docs で API ドキュメントを確認します

本番環境の URL

本番サーバーは次の URL で利用できます:

https://reunemacacada.onrender.com

この README に記載されているすべてのエンドポイントは、ローカル URL と本番環境の URL の両方で利用できます。

キャッシュシステムのテスト
  1. 最初のリクエストを送信して MCP を生成します(これによりキャッシュが登録されます):

    GET /generate_mcp?topic=python&num_nodes=15&language=pt
    
  2. 同じパラメーターで2回目のリクエストを送信します(キャッシュが使用されます):

    GET /generate_mcp?topic=python&num_nodes=15&language=pt
    

    結果がキャッシュから取得されるため、2回目のリクエストは大幅に速くなります。

ドキュメント

詳細なドキュメントは docs フォルダーにあります:

API エンドポイント

  • GET /health - ヘルスチェックエンドポイント
  • GET /generate_mcp?topic={topic}&max_resources={max_resources}&num_nodes={num_nodes}&min_width={min_width}&max_width={max_width}&min_height={min_height}&max_height={max_height}&language={language}&category={category} - 指定したトピックの MCP を同期的に生成します
    • topic(必須):MCP を生成するトピック(最小 3 文字)
    • max_resources(任意):含めるリソースの最大数(デフォルト:15、最小:5、最大:30)
    • num_nodes(任意):学習パスに含めるノード数(デフォルト:15、最小:10、最大:30)
    • min_width(任意):ツリーの最小幅(第 1 レベルのノード数)(デフォルト:3、最小:2、最大:10)
    • max_width(任意):ツリーの各レベルでの最大幅(デフォルト:5、最小:3、最大:15)
    • min_height(任意):ツリーの最小高さ(深さ)(デフォルト:3、最小:2、最大:8)
    • max_height(任意):ツリーの最大高さ(深さ)(デフォルト:7、最小:3、最大:12)
    • language(任意):リソースの言語(デフォルト:"pt")
    • category(任意):トピックのカテゴリ(例:"technology"、"finance"、"health")。指定しない場合は自動的に検出されます。
  • POST /generate_mcp_async?topic={topic}&max_resources={max_resources}&num_nodes={num_nodes}&min_width={min_width}&max_width={max_width}&min_height={min_height}&max_height={max_height}&language={language}&category={category} - MCP の非同期生成を開始します
  • GET /status/{task_id} - 非同期タスクのステータスを確認します
  • GET /tasks - すべてのタスクを一覧表示します
  • POST /clear_cache?pattern={pattern}&clear_domain_cache={clear_domain_cache} - パターンに基づいてキャッシュをクリアします
    • pattern(任意):キャッシュキーに一致させるパターン(デフォルト:"*"ですべて)
    • clear_domain_cache(任意):ドメインメソッドのキャッシュもクリアするかどうか(デフォルト:false)
  • GET /cache_stats - ドメインメソッドのキャッシュに関する情報を含む、キャッシュの統計情報を取得します

例

基本的な使い方(ポルトガル語)
GET /generate_mcp?topic=python
ノード数のカスタマイズ
GET /generate_mcp?topic=machine+learning&num_nodes=20
英語
GET /generate_mcp?topic=javascript&language=en
カテゴリを手動で指定
GET /generate_mcp?topic=python&category=technology
詳細なカスタマイズ
GET /generate_mcp?topic=história+do+brasil&max_resources=20&num_nodes=25&min_width=4&max_width=8&min_height=4&max_height=8&language=pt
ツリー構造の制御
GET /generate_mcp?topic=machine+learning&min_width=2&max_width=4&min_height=5&max_height=10
非同期生成
POST /generate_mcp_async?topic=inteligência+artificial&category=technology
タスクのステータスを確認
GET /status/550e8400-e29b-41d4-a716-446655440000
キャッシュをクリア
POST /clear_cache
特定のキャッシュをクリア
POST /clear_cache?pattern=mcp:*

パフォーマンスの改善

MCP サーバーには、いくつかのパフォーマンス最適化が含まれています。

  • キャッシュシステム:繰り返しのクエリに対する応答時間を短縮するため、結果をキャッシュします
  • 非同期タスクシステム:実行時間の長い処理を非同期で処理します
  • リソースのフィルタリング:TF-IDF に基づくフィルタリングにより、最も関連性の高いリソースを選択します
  • 最適化されたウェブスクレイピング:リソースの使用量を減らす効率的なウェブスクレイピング手法
  • 適応型スクレイピングシステム:各ウェブサイトに最も効率的なスクレイピング方法を自動的に選択します
  • Puppeteer インスタンスプール:ブラウザーインスタンスを再利用して、メモリ使用量と起動時間を削減します
  • ドメインメソッドキャッシュ:ドメインごとに最適なスクレイピング方法を記憶します
  • リソースのブロック:スクレイピング中に不要なリソース(画像、スタイルシート、フォント)をブロックします
パフォーマンスの向上
  • キャッシュ済みのトピックでは、応答時間を 60~80%短縮
  • 新しいトピックでは、応答時間を 30~50%短縮
  • ウェブスクレイピング中のメモリ使用量を 40~60%削減
  • 同時リクエストのスループットを 3~5 倍に向上

デプロイ

サーバーは、さまざまなプラットフォームにデプロイできます。

Docker を使用
docker build -t mcp-server .
docker run -p 8080:8080 mcp-server
Render、Fly.io、その他のプラットフォームへのデプロイ

Docker コンテナまたは Python アプリケーションのデプロイについては、各プラットフォーム固有の手順に従ってください。

ライセンス

プロプライエタリソフトウェア - All Rights Reserved

このソフトウェアはプロプライエタリであり、機密情報です。このソフトウェアの無断での複製、配布、改変、公衆への展示または公衆への実演は固く禁じられています。このソフトウェアは、有料サブスクリプションモデルでのみ使用することを目的としています。

© 2024 ReuneMacacada. All rights reserved.

最終コミット:v1.1.2 - DuckDuckGo のレート制限と Puppeteer に関する問題を修正

コメント

MCP は初めてですか?

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

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