mcpField
M
MCPAdapt

MCPAdapt

ローカル
grll.github.ioAI・エージェント42553 週間前に更新

MCPAdapt について

MCPAdapt は、MCP サーバーのツールを複数のエージェントフレームワークで利用できるようにするオープンソースの Python ライブラリです。smolagents や LangChain などで既存の MCP サーバーを再利用したい開発者を想定しています。

主な機能

  1. 01MCP ツールをフレームワーク固有のツールに変換
  2. 02stdio および SSE ベースのリモートサーバーに対応
  3. 03複数の MCP サーバーを同時に接続
  4. 04フレームワークが対応する場合は非同期呼び出しに対応
  5. 05新しいフレームワーク向けの拡張可能なアダプターインターフェース

活用シーン

  1. 01LangChain エージェントから MCP サーバーのツールを呼び出す
  2. 02smolagents で既存の MCP サーバーを利用する
  3. 03未対応のエージェントフレームワーク向けにカスタムアダプターを作成する

MCP 対応

MCPAdapt はクライアント側のアダプター層として動作し、MCP サーバーに接続してそのツールをエージェントフレームワークで使用可能な形式に変換します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCPAdapt

MCPAdapt ロゴ

PyPI version Python versions Tests License PyPI downloads GitHub Repo stars

背景情報、ガイド、API リファレンスについては、新しいドキュメントをご覧ください。

お好みのエージェントフレームワークで、650 以上の MCP サーバーのツールを利用できます。

Model Context Protocol は Anthropic が公開したオープンソースプロトコルで、誰でも簡単かつ迅速にツールやリソースを「MCP サーバー」として利用可能にできます。

リリース以来、650 以上の MCP サーバーが作成され、対応する「MCP クライアント」からさまざまなデータやツールにアクセスできるようになりました。

このプロジェクトを使うと、どのエージェントフレームワークからでも、あらゆる MCP サーバーのツールをシームレスに呼び出せます。エージェントのワークフローから、650 以上の MCP サーバーのツールに実質的にアクセスできるようになります。

エージェントがアクセスできるものを知るには、glama.aiまたはsmithery.aiをご覧ください。

インストール手順

Smolagents

Smolagents 1.4.1 以降には、ツールコレクションオブジェクトに mcpadapt が統合されています。 つまり、smolagents から直接利用できます。

uv add smolagents[mcp]
その他のフレームワーク

各エージェントフレームワークには、不要な依存関係で環境が煩雑にならないよう、それぞれ独自のオプション依存関係があります。 インストールコマンドでフレームワーク名を角括弧に入れて追加し、利用するものを選択してください。

# with uv
uv add mcpadapt[langchain]

# or with pip
pip install mcpadapt[langchain]

現在サポートされているフレームワーク:smolagents、langchain、crewAI、google-genai。

必要に応じて、複数のフレームワークをカンマ区切りで追加することもできます。

使用方法

⚠️ セキュリティに関する警告:MCP サーバー、特に SSE(Server-Sent Events)経由で使用する場合は、細心の注意を払い、信頼できる検証済みのサーバーにのみ接続してください。接続する前に、MCP サーバーの提供元とセキュリティを必ず確認してください。

Smolagents

mcpadapt は smolagents の一部なので、次のように smolagents のツールコレクションを簡単に使用できます。

from mcp import StdioServerParameters
from smolagents.tools import ToolCollection

serverparams = StdioServerParameters(command="uv", args=["run", "src/echo.py"])

with ToolCollection.from_mcp(serverparams) as tool_collection:
    ... # enjoy your tools!
その他のフレームワーク

MCPAdapt はあらゆる MCP サーバーを、エージェントのワークフローですぐに使えるツールに変換します。

from mcp import StdioServerParameters
from mcpadapt.core import MCPAdapt
from mcpadapt.smolagents_adapter import SmolAgentsAdapter

with MCPAdapt(
    # specify the command to run your favorite MCP server (support also smithery and co.)
    StdioServerParameters(command="uv", args=["run", "src/echo.py"]),
    # or a dict of sse server parameters e.g. {"url": http://localhost:8000, "headers": ...}

    # specify the adapter you want to use to adapt MCP into your tool in this case smolagents.
    SmolAgentsAdapter(),
) as tools:
    # enjoy your smolagents tools as if you wrote them yourself
    ...

MCP Adapt は Smolagents、Langchain、CrewAI、google-genai [pydantic.dev、Llammaindex など…]*をサポートしています。 *近日対応予定です。

注:次のように、複数の MCP サーバーを指定することもできます。

from mcp import StdioServerParameters
from mcpadapt.core import MCPAdapt
from mcpadapt.smolagents_adapter import SmolAgentsAdapter

with MCPAdapt(
    [
        StdioServerParameters(command="uv", args=["run", "src/echo1.py"]),
        StdioServerParameters(command="uv", args=["run", "src/echo2.py"]),
    ],
    SmolAgentsAdapter(),
) as tools:
    # tools is now a flattened list of tools from the 2 MCP servers.
    ...

基盤となるエージェントフレームワークが対応していれば、非同期処理もサポートしています。

使用方法の詳細については、例をご覧ください。

コントリビュート

お気に入りのエージェントフレームワークが見当たらなくても問題ありません。自分で簡単に追加できます。

  1. src/mcpadapt/{name_of_your_framework}_adapter.py に新しいモジュールを作成します。
class YourFrameworkAdapter(ToolAdapter):
    def adapt(
        self,
        func: Callable[[dict | None], mcp.types.CallToolResult],
        mcp_tool: mcp.types.Tool,
    ) -> YourFramework.Tool:
        # HERE implement how the adapter should convert a simple function and mcp_tool (JSON Schema)
        # into your framework tool. see smolagents_adapter.py for an example
    
    def async_adapt(
        self,
        afunc: Callable[[dict | None], Coroutine[Any, Any, mcp.types.CallToolResult]],
        mcp_tool: mcp.types.Tool,
    ) -> YourFramework.Tool:
        # if your framework supports async function even better use async_adapt.
  1. これで完了です。アダプターが動作することをテストし、世界中の人々と共有するために PR を送ってください。

ロードマップ

  • 誰でもアダプターの作成を始められる基本フレームワーク
  • smolagents のサポート
  • pydantic-ai のサポート
  • langchain のサポート
  • llamaindex のサポート
  • swarm のサポート
  • crewAI のサポート
  • google genai のサポート
  • SSE 経由のリモート MCP サーバーのサポート
  • jupyter notebook のサポート
  • テストの追加

コントリビューター

貢献してくださったすべてのコントリビューターとメンテナーの皆さまに感謝いたします。

コアメンテナー:

コントリビューター:

コメント

MCP は初めてですか?

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

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