mcpField
E
EasyMCP

EasyMCP

github.com/mshojaei77フレームワーク・SDK1783 週間前に更新

EasyMCP について

EasyMCPは、初学者向けのMCPクライアントです。SSE、NPX、UVサーバーに接続し、OpenAIを使ったツール連携を行えます。接続先のツールを取得し、チャットループとサーバー設定管理を備えています。

主な機能

  1. 01SSE、NPX、UVサーバーへの接続
  2. 02サーバーのツールを自動取得
  3. 03OpenAIによる質問処理とツール呼び出し
  4. 04設定ファイルでのサーバー管理
  5. 05スクリプトによるサーバー設定の追加

活用シーン

  1. 01チャットからMCPサーバーのツールを呼び出す
  2. 02異なる種類のサーバー接続を試す
  3. 03設定済みサーバーを選択する
  4. 04適切な設定ファイルにサーバーを追加する

MCP 対応

EasyMCPは、SSE、NPX、UV形式のMCPサーバーに接続し、利用可能なツールを取得してチャットから呼び出すMCPクライアントです。設定ファイルでサーバー接続を管理します。

詳細

EasyMCP

EasyMCP は、Model Context Protocol(MCP)のための柔軟で初心者向けのクライアントです。SSE、NPX、UV など異なるタイプの MCP サーバーに接続でき、様々なツール(ファイル操作など)と対話したり、OpenAI API と統合して高度なチャット体験を実現できます。

機能

  • 複数のサーバーサポート
    • SSE サーバー: Server-Sent Events を使用してサーバー URL 経由で接続します。
    • NPX サーバー: NPX コマンドでサーバーを起動します(Windows およびその他のシステムに対応)。
    • UV サーバー: UV コマンドで設定されたサーバーを実行します。
  • 動的なツール統合:
    クライアントは接続されたサーバーから利用可能なツールを自動的に取得し、ユーザーのクエリ処理に使用します。
  • インタラクティブなチャットループ:
    クエリを入力し、クライアントが OpenAI と利用可能な MCP ツールを使用してレスポンスを処理します。
  • 設定管理:
    add_server.py を使用して新しいサーバー設定を簡単に追加でき、対応する設定ファイル(sse_servers.json、npx_servers.json、または uv_servers.json など)が更新されます。

前提条件

  • Python 3.10 以上(asyncio と最新の async 機能との互換性のため)
  • 有効な OpenAI API キー(.env ファイルで設定)
  • 追加の統合に必要なその他の API キー

インストール

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

    git clone https://github.com/yourusername/EasyMCP.git
    cd EasyMCP
    
  2. 仮想環境を作成して有効化する:

    Windows の場合:

    python -m venv .venv
    .venv\Scripts\activate
    

    macOS/Linux の場合:

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. 必要なパッケージをインストールする:

    pip install -r requirements.txt
    
  4. 環境変数を設定する:
    提供されている .env.sample を .env にリネームして(または独自の .env を作成して)、必要な API キーと設定を入力してください。

サーバー設定ファイル

EasyMCP は複数の JSON 設定ファイルを使用してサーバーを管理します:

  • sse_servers.json: SSE ベースのサーバーの設定を含みます。
    例:

    {
      "mcpServers": {
        "@modelcontextprotocol/time": {
          "url": "https://router.mcp.so/sse/pnabizm8lkazpr"
        }
      }
    }
    
  • npx_servers.json: NPX サーバーの設定を含みます。
    例:

    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "C:\\Users\\lotus\\Documents\\llm_books_papers",
            "C:\\Users\\lotus\\Documents\\llm_books_papers"
          ]
        }
      }
    }
    
  • uv_servers.json: UV サーバーの設定を含みます。
    例:

    {
      "mcpServers": {
        "sqlite": {
          "command": "uv",
          "args": [
            "--directory",
            "parent_of_servers_repo/servers/src/sqlite",
            "run",
            "mcp-server-sqlite",
            "--db-path",
            "~/test.db"
          ]
        }
      }
    }
    

使い方

  1. MCP クライアントを実行する:

    python main.py
    
  2. サーバーを選択する:
    クライアントは sse_servers.json、npx_servers.json、および uv_servers.json から利用可能なサーバーを読み込みます。プロンプトが表示されたら、対応する番号を入力してサーバーを選択してください。

  3. クライアントと対話する:
    接続後、クエリを入力してください。例えば:

    • PDF ファイルを読む場合: read Build a Large Language Model.pdf
    • ファイルツールを使用する場合: use read_file tool and read 2308.11432v5.pdf

    クライアントは MCP サーバーが提供する許可されたディレクトリに基づいて、適切なファイルパスを構築する手順を案内します。

新しいサーバーを追加する

新しい MCP サーバー設定を追加するには:

  1. 新しいサーバーの JSON 設定を準備する。

  2. add_server.py を実行する:

    python add_server.py
    

    このスクリプトは以下を実行します:

    • サーバーのタイプを検出します(NPX、UV、またはデフォルトで SSE)。
    • 新しい設定を適切なファイルに追加します(例:npx_servers.json、uv_servers.json、または sse_servers.json)。

ファイル例

  • main.py:
    EasyMCP クライアントのメインエントリーポイントです。サーバー接続、チャットループ、および OpenAI 統合によるクエリ処理を処理します。

  • add_server.py:
    JSON ファイルに新しい MCP サーバー設定を追加するスクリプトです。

  • .env:
    API キーやモデル設定などの環境変数を含みます。

  • requirements.txt:
    プロジェクトの依存関係をリストします。

貢献

貢献を歓迎します。リポジトリをフォークして、変更の詳細な説明とともにプルリクエストを送信してください。

ライセンス

このプロジェクトはオープンソースであり、MIT ライセンスで利用可能です。

お問い合わせ

ご質問や機能リクエストがある場合は、GitHub リポジトリで issue を開いてください。

コーディングをお楽しみください!

コメント

MCP は初めてですか?

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

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