Published: 08 Aug 2026 › Updated: 08 Aug 2026
LangChain MCP client集成开发 / ai #67
在MCP的集成开发方面,LangChain是个做得不错的项目,其它方面也很优秀!它有个专门的库来处理,就是langchain-mcp-adapterslibrary。导入的MultiServerMCPClient是官方提供的多服务器管理客户端,可以同时连接多个 MCP 服务器。
https://docs.langchain.com/oss/python/langchain/mcp
主要能力
- 工具调用与管理:能够将各种 MCP 服务器提供的工具转换为Agent可直接使用的标准化工具。
- 多协议通信支持:支持两种主要的通信方式 – stdio 模式(将 MCP 服务器作为本地子进程运行)和 HTTP 模式(通过 SSE 通道和 POST 请求进行通信)。
- 资源与提示词操作:可以访问和管理 MCP 服务器提供的资源文件以及预定义的提示词模板。
- 多服务器协同:通过 MultiServerMCPClient 能够同时连接和管理多个 MCP 服务器,从它们加载工具、提示和资源。
应用场景
- 数据集成:连接内部的知识库、数据库和业务系统,让 AI 能够访问最新的数据。例如,可以连接 SalesForce、Google Drive 等系统。
- 文件操作自动化:通过文件系统 MCP 服务器,AI 智能体可以自动执行文件读写、目录管理等操作。
- 多工具协同工作流:通过连接多个专用 MCP 服务器,构建能够处理复杂任务的 AI 智能体系统。
集成代码
主要是MultiServerMCPClient连接 MCP 服务器,以提供工具调用。
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
{
"fetch_weather": {
"transport": "stdio", # Local subprocess communication
"command": "python",
# path to your server.py file
"args": ["weather_server.py"],
},
"httpserver": {
"transport": "http", # HTTP-based remote server
# Ensure you start your weather server on port 8000
"url": "http://localhost:8005/mcp/mcp",
}
}
)
tools = await client.get_tools()
print(123, "tools", tools)
MCPClient完整案例
uv add "mcp<2" # 注意:mcp2.0暂不与LangChain包兼容,要装低版本的
uv add langchain-mcp-adapters
uv add langchain langchain-openai python-dotenv
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from dotenv import dotenv_values
env_vars = dotenv_values('.env')
DEEPSEEK_API_KEY = env_vars['DEEPSEEK_API_KEY']
DEEPSEEK_BASE_URL = env_vars['DEEPSEEK_BASE']
llm = ChatOpenAI(model="deepseek-v4-flash", api_key=DEEPSEEK_API_KEY, base_url=DEEPSEEK_BASE_URL)
async def main():
client = MultiServerMCPClient(
{
"httpserver": {
"transport": "http", # HTTP-based remote server
# Ensure you start your weather server on port 8005
"url": "http://localhost:8005/mcp/mcp",
}
}
)
tools = await client.get_tools()
print(123, "tools", tools) # get_weather
agent = create_agent(model=llm, tools=tools)
weather_response = await agent.ainvoke(
{"messages": [{"role": "user", "content": "what is the weather in beijing?"}]}
)
print(996, weather_response["messages"][-1].content)
if __name__ == "__main__":
asyncio.run(main())
集成起来还是蛮方便的。如果用其它的Agent工具,比如Openclaw、Cherry Studio这些也是可以很方便的管理MCP工具的。有了MCP工具可以很方便地拓展Agent的能力边界,设计很多自己可能并不擅长的项目。好了,快试试吧。
Leave LangChain MCP client集成开发 / ai #67 to:
Read more #cn posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.