MCPAdapt について
MCPAdapt は、MCP サーバーのツールを複数のエージェントフレームワークで利用できるようにするオープンソースの Python ライブラリです。smolagents や LangChain などで既存の MCP サーバーを再利用したい開発者を想定しています。
主な機能
- 01MCP ツールをフレームワーク固有のツールに変換
- 02stdio および SSE ベースのリモートサーバーに対応
- 03複数の MCP サーバーを同時に接続
- 04フレームワークが対応する場合は非同期呼び出しに対応
- 05新しいフレームワーク向けの拡張可能なアダプターインターフェース
活用シーン
- 01LangChain エージェントから MCP サーバーのツールを呼び出す
- 02smolagents で既存の MCP サーバーを利用する
- 03未対応のエージェントフレームワーク向けにカスタムアダプターを作成する
MCP 対応
MCPAdapt はクライアント側のアダプター層として動作し、MCP サーバーに接続してそのツールをエージェントフレームワークで使用可能な形式に変換します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCPAdapt
背景情報、ガイド、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.
...
基盤となるエージェントフレームワークが対応していれば、非同期処理もサポートしています。
使用方法の詳細については、例をご覧ください。
コントリビュート
お気に入りのエージェントフレームワークが見当たらなくても問題ありません。自分で簡単に追加できます。
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.
- これで完了です。アダプターが動作することをテストし、世界中の人々と共有するために PR を送ってください。
ロードマップ
- 誰でもアダプターの作成を始められる基本フレームワーク
- smolagents のサポート
- pydantic-ai のサポート
- langchain のサポート
- llamaindex のサポート
- swarm のサポート
- crewAI のサポート
- google genai のサポート
- SSE 経由のリモート MCP サーバーのサポート
- jupyter notebook のサポート
- テストの追加
コントリビューター
貢献してくださったすべてのコントリビューターとメンテナーの皆さまに感謝いたします。
コアメンテナー:
コントリビューター:
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。