MCPAdapt
有关更多上下文、指南和API参考资料,请访问我们的新 文档.
解锁您最喜欢的代理框架中的650多个MCP服务器工具。
模型上下文协议是Anthropic引入的一种开源协议,它允许任何人简单快速地将工具和资源作为“MCP服务器”提供。
自发布以来,已经创建了650多台MCP服务器,可以访问受支持的“MCP客户端”的许多数据和工具。
该项目使从任何代理框架调用任何MCP服务器工具都变得无缝。几乎为您的代理工作提供了对650多个MCP服务器工具的访问。
看 glama.ai 或 史密斯艾 让你知道你的代理人可以访问什么。
安装说明
斯莫尔特工
Smolfagents 1.4.1及以上版本直接附带了集成在其工具集合对象中的mcpadapt。 这意味着您可以直接从烟雾中使用它:
uv add smolagents[mcp]其他框架
每个代理框架都有自己的一组可选依赖关系,以免被无用的依赖关系弄乱。 您可以通过在安装命令的括号中添加框架来选择所需的风格。
# with uv
uv add mcpadapt[langchain]
# or with pip
pip install mcpadapt[langchain]目前支持的框架:smolagents、langchain、crewAI、谷歌genai。
如果需要,您还可以添加多个逗号分隔的框架。
用法
⚠️ 安全警告:使用MCP服务器时,特别是通过SSE(服务器发送事件)时,要格外小心,只连接到受信任和经过验证的服务器。在连接之前,始终验证任何MCP服务器的来源和安全性。
斯莫尔特工
由于mcpadapt是烟雾简单使用工具集合的一部分,例如:
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支持Smolfagents、Langchain、CrewAI、谷歌genai\[pydantic.dev、Llamanidex等…\]\*。 \*即将到来。
注意:您还可以指定多个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,与全世界分享。
路线图
- \[x\] 任何人开始创建适配器的初始框架
- \[x\] 支持烟雾
- \[\]支持皮丹蒂奇·艾
- \[x\] 支持langchain
- \[\]支持llamaindex
- \[\]支持swarm
- \[x\] 对乘员AI的支持
- \[x\] 支持谷歌genai
- \[x\] 通过SSE支持远程MCP服务器
- \[x\] 支持jupyter笔记本
- \[x\] 添加测试
贡献者
我们认可这项工作,并感谢每一位贡献者和维护者的贡献。
核心维护人员:
贡献者:
