Skip to content
This repository was archived by the owner on Jul 6, 2025. It is now read-only.

Conversation

leech24
Copy link

@leech24 leech24 commented May 18, 2025

Pull Request Description

Changes

このPRはMCP Router APIのための完全なSDK(mcp-router-use)を提供します。MCP Routerの/mcpエンドポイントを介してMCPサーバーに接続し、サーバーの登録・起動を自動化する機能を実装しています。

Implementation Details

  1. MCPClientクラスの拡張:MCP Routerと連携するための機能を追加
  2. 自動サーバー登録と起動機能の実装:MCPサーバーが存在しない場合は自動的に登録・起動
  3. MCP Router APIエンドポイントのサポート:/api/servers, /api/servers/{id}/start など
  4. /mcpエンドポイントへの接続:SSEベースの通信でMCPプロトコルをサポート
  5. 不要なバックアップファイル(.bak, .swp)の削除と.gitignoreの更新
  6. プロジェクト構造の整理:一時ファイルの削除と適切なファイル管理

Example Usage (Before)

# mcp-useライブラリを使用した例(直接MCPサーバーに接続)
from mcp_use import MCPClient

# サーバー設定
config = {
    "mcpServers": {
        "puppeteer": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-puppeteer"],
            "env": {
                "PUPPETEER_LAUNCH_OPTIONS": "{ \"headless\": false }"
            }
        }
    }
}

# クライアントとセッションの作成
client = MCPClient(config)
session = await client.create_session("puppeteer")

# ツールの呼び出し
result = await session.call_tool("browser.navigate", {"url": "https://example.com"})

Example Usage (After)

# 環境変数からの読み込み
from dotenv import load_dotenv
import os
from mcp_router_use import MCPClient

# .envファイルから環境変数を読み込む
load_dotenv()

# MCP Router設定
config = {
    "mcpRouter": {
        "router_url": os.environ.get("MCP_ROUTER_URL", "http://localhost:3282"),
        "auth_token": os.environ.get("MCP_ROUTER_AUTH_TOKEN"),
    },
    "mcpServers": {
        "puppeteer": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-puppeteer"],
            "env": {
                "PUPPETEER_LAUNCH_OPTIONS": "{ \"headless\": false }"
            }
        }
    }
}

# クライアントとセッションの作成(auto_register=Trueでサーバーを自動登録・起動)
client = MCPClient(config)
session = await client.create_session("puppeteer", auto_register=True)

# ツールの呼び出し(MCP Routerの/mcpエンドポイントを介して実行)
result = await session.call_tool("browser.navigate", {"url": "https://example.com"})

Documentation Updates

  • README.md - MCP Routerとの連携方法、環境変数の設定方法を追加
  • examples/router_example.py - MCP Routerの使用例を追加
  • examples/auto_registration_example.py - 自動サーバー登録と起動の例を追加

Testing

このPRでは以下のテストを実施しました:

  • unittest: MCPClientのRouter機能に関するユニットテスト(tests/unit/test_router_functions.py)
  • integrationテスト: MCP Routerの/mcpエンドポイントに対する基本的な接続テスト(tests/integration/test_basic_integration.py)
  • 手動テスト: 実際のMCP RouterとPuppeteerサーバーを使用した動作確認

Backwards Compatibility

既存のmcp-useライブラリとのインターフェース互換性を維持しているため、ユーザーはコード変更を最小限に抑えて移行できます。設定ファイルにMCP Router関連の設定を追加するだけで、既存のコードを使用できます。

Related Issues

Closes mcp-use#5 - MCP Router APIサポートの実装
Closes mcp-use#7 - 自動サーバー登録・起動機能の追加

@leech24 leech24 changed the title /mcpのための簡単なtest /mcpに接続する簡単なtestを作成 May 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant