
更多背景信息、指南和API参考,请访问我们的新文档。
解锁超过650个MCP服务器工具在您最喜欢的代理框架中。
模型上下文协议是由Anthropic引入的一个开源协议,它允许任何人简单快速地将工具和资源作为“MCP服务器”提供。
自发布以来,已有超过650个MCP服务器被创建,提供了许多数据和工具给支持的“MCP客户端”。
这个项目使得从任何代理框架调用任何MCP服务器工具变得无缝。几乎为您的代理工作流程提供了对超过650个MCP服务器工具的访问。
查看glama.ai或smithery.ai以了解您的代理可以访问的内容。
Smolagents 1.4.1及以上版本直接集成了mcpadapt到它们的工具集合对象中。 这意味着您可以直接从smolagents使用它:
uv add smolagents[mcp]
每个代理框架都有自己的可选依赖项,以避免不必要的依赖项。 您可以通过在安装命令中的方括号内添加您的框架来选择所需的口味。
# 使用uv
uv add mcpadapt[langchain]
# 或者使用pip
pip install mcpadapt[langchain]
目前支持的框架:smolagents, langchain, crewAI, google-genai。
如果需要,您也可以添加多个框架,用逗号分隔。
⚠️ 安全警告:当使用MCP服务器时,尤其是在使用SSE(服务器发送事件)时,请格外小心,并仅连接到可信且经过验证的服务器。在连接之前始终验证任何MCP服务器的来源和安全性。
由于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:
... # 享受您的工具!
MCPAdapt将任何MCP服务器转换成您可以在代理工作流程中使用的工具:
from mcp import StdioServerParameters
from mcpadapt.core import MCPAdapt
from mcpadapt.smolagents_adapter import SmolAgentsAdapter
with MCPAdapt(
# 指定运行您最喜欢的MCP服务器的命令(也支持smithery等)
StdioServerParameters(command="uv", args=["run", "src/echo.py"]),
# 或者一个sse服务器参数字典,例如{"url": http://localhost:8000, "headers": ...}
# 指定您希望使用的适配器,将MCP适配到您的工具,在这种情况下是smolagents。
SmolAgentsAdapter(),
) as tools:
# 享受您自己编写的smolagents工具
...
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现在是一个来自两个MCP服务器的工具扁平列表。
...
我们还支持异步操作,前提是底层代理框架支持。
请参阅我们的示例以获取更多详细信息。
如果您最喜欢的代理框架缺失,没有问题,您可以自行添加,这相当容易:
src/mcpadapt/{name_of_your_framework}_adapter.py中创建一个新的模块:class YourFrameworkAdapter(ToolAdapter):
def adapt(
self,
func: Callable[[dict | None], mcp.types.CallToolResult],
mcp_tool: m
cp.types.Tool,
) -> YourFramework.Tool:
# 在这里实现适配器应如何将简单的函数和mcp_tool(JSON Schema)转换为您框架的工具。参见smolagents_adapter.py以获取示例
def async_adapt(
self,
afunc: Callable[[dict | None], Coroutine[Any, Any, mcp.types.CallToolResult]],
mcp_tool: mcp.types.Tool,
) -> YourFramework.Tool:
# 如果您的框架支持异步函数,甚至更好,使用async_adapt。
我们感谢每一位贡献者和维护者的贡献。
核心维护者:
贡献者: