SmolAgents + MCP servers について
SmolAgents を使った Python 製 AI アシスタントで、ウェブ検索とサイトのクロールに対応します。クラスベースの構成により、MCP サーバーやツールを追加できます。
主な機能
- 01Brave Search と Crawl4ai の連携
- 02対話型の検索セッション
- 03クラスベースのエージェント構成
- 04拡張可能な MCP サーバー一覧
活用シーン
- 01Brave Search でウェブを検索
- 02Crawl4ai でウェブサイトをクロール
MCP 対応
Brave Search と Crawl4ai の MCP サーバーに接続し、そのツールを SmolAgents のアシスタントで利用します。サーバー一覧には追加の MCP サーバーを登録できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SmolAgents + MCP サーバー
このプロジェクトでは、Brave Search と Crawl4ai の Model Context Protocol(MCP)サーバーと連携し、ウェブ検索やウェブサイトのスクレイピング/クロールを実行できる、SmolAgents ライブラリを使用した AI アシスタントの構築方法を紹介します。
必要条件
このプロジェクトを実行する前に、次の依存関係がインストールされていることを確認してください。
smolagentspython-dotenvmcp@modelcontextprotocol/server-brave-search(npm/npx でグローバルにインストール)litellm
Python パッケージは pip を使用してインストールできます。
pip install -r requirements.txt
MCP サーバーを実行するために、Node.js、npm/npx、uv がインストールされていることを確認してください。
環境変数
プロジェクトのルートディレクトリに .env ファイルを作成し、次の変数を追加してください。
BRAVE_API_KEY=your_brave_api_key
OPENAI_API_KEY=your_openai_api_key
your_brave_api_key と your_openai_api_key を、実際の API キーに置き換えてください。
使い方
-
リポジトリをクローンするか、スクリプト(
smolagent_with_mcp.py)をダウンロードします。 -
ターミナルでプロジェクトディレクトリに移動します。
-
スクリプトを実行します。
python smolagent_with_mcp.py -
検索クエリを入力してアシスタントとやり取りします。セッションを終了するには、
exitまたはquitと入力します。
このコードでは、エージェントの初期化とメインの対話ループを Python クラス(SmolAgentWithMCP)内にまとめています。このオブジェクト指向のアプローチによりモジュール性が高まり、追加の MCP サーバーやそのツールとの連携など、エージェントの機能を拡張しやすくなります。
注意事項
- Brave Search MCP サーバーの実行に必要なため、
npxがインストールされ、システムの PATH から利用できることを確認してください。 - SmolAgents の
ToolCallingAgentは、ツール呼び出しを(JSON などの)構造化された形式で出力し、環境によって実行されるように設計されています。この場合は、MCPClientを使用するスクリプトのメインループが実行します。
MCP サーバーの追加
smolagent_with_mcp.py ファイルは、MCP サーバーやそのツールを簡単に追加できるモジュール構成になっています。新しい MCP サーバーを追加するには、次の手順に従います。
-
新しいサーバーの
StdioServerParametersを定義します。サーバーの実行コマンド、その引数、必要な環境変数を指定します(brave_server_paramsとcrawl4ai_server_paramsの定義方法を参考にしてください)。 -
定義したサーバーパラメーターオブジェクトを、
main関数内のserver_listに追加します。BraveSearchAgentAppクラスが新しいサーバーを自動的に初期化し、そのツールをエージェントの機能に含めます。
例:
# Define parameters for a new server (replace with actual command and args)
new_server_params = StdioServerParameters(
command="your_server_command",
args=["arg1", "arg2"],
env={"YOUR_API_KEY": os.getenv("YOUR_API_KEY")},
)
def main():
# Define the list of MCP server parameters
server_list = [
brave_server_params,
crawl4ai_server_params,
new_server_params # Add the new server parameters here
# Add other server parameters here as needed
]
app = BraveSearchAgentApp(server_list)
app.run()
if __name__ == "__main__":
main()
プロジェクトで使用している MCP:
https://playbooks.com/mcp/ritvij14-crawl4ai https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳しくは LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。