LangChain MCP适配器如何实现MCP工具的无缝集成

AI行业现在已经火爆成这个样子,被宣传的可以说是无所不能,但是,我相信仍然有很多小伙伴用AI工具只是限于聊天,提问……这一类极其简单的应用场景,这不是极大的浪费了AI给我的红利吗?

图片

我们起码应该用AI工具实现一些相对更复杂,更智能的工作场景,比如我们能不能让AI在能回答问题的同时,还让它调用我们自己的数据库,读取我们的本地文件。

并且根据这些信息,在无需编码的情况下,帮我们执行一些类似浏览器检索,截图,email发送等等操作呢?

图片

那么,这就引出了我们今天的主题:Langchain ,它正是为了帮我们解决上述问题而生,Langchain 是一个开源框架,它支持用户将类似 GPT-4一样的大型语言模型与第三方外部计算和数据源相结合,实现复杂AI业务场景。

那什么又是LangChain MCP?LangChain MCP 适配器是一个功能强大的工具,它能够将Anthropic Model Context Protocol (MCP) 工具与LangChain 和 LangGraph 无缝集成。

图片

通过LangChainMCP适配器,我们开发人员就可以轻松地将MCP工具转换为 LangChain 工具,进而在LangGraph代理中使用这些工具。

LangChain MCP适配器还支持连接到多个MCP服务器,并从中加载工具,这就让我们开发人员可以同时利用多个 MCP服务器提供的工具来构建更强大的AI应用程序。

图片

同时LangChain MCP适配器也支持多种传输方式,包括标准输入输出(stdio)和服务器发送事件(SSE),这就让我们开发人员可以根据自己的实际体需求选择合适的传输方式。

LangChain MCP的应用场景也是非常广泛,下面给大家举些例子:

图片

LangChain MCP可以作为我们的个人助手,用AI来帮助我们实现出行预订航班、财务转账、缴费等。

在自主学习方面,可以帮我我们梳理整个课程大纲,画出重点,让我们更快的吃透学习资料。

数据分析,可以用LangChain MCP来连接到企业客户或相关市场源数据池,加以自动话分析,并根据分析结果执行相应商业决策。

LangChain MCP如何使用?下面我们给大家介绍一下具体配置方法:

MCP

安装

pip install langchain-mcp-adapters

以下是使用 MCP 工具与 LangGraph 代理的简单示例。

pip install langchain-mcp-adapters langgraph langchain-openaiexport OPENAI_API_KEY=<your_api_key>

服务器

首先,让我们创建一个可以进行加法和乘法运算的 MCP 服务器:​​​​​​​

# math_server.pyfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("Math")@mcp.tool()def add(a: int, b: int) -> int:    """将两个数字相加"""    return a + b@mcp.tool()def multiply(a: int, b: int) -> int:    """将两个数字相乘"""    return a * bif __name__ == "__main__":    mcp.run(transport="stdio")

客户端​​​​​​​

# 创建 stdio 连接的服务器参数from mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_clientfrom langchain_mcp_adapters.tools import load_mcp_toolsfrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAImodel = ChatOpenAI(model="gpt-4o")server_params = StdioServerParameters(    command="python",    # 确保更新为 math_server.py 文件的完整绝对路径    args=["/path/to/math_server.py"],)async with stdio_client(server_params) as (read, write):    async with ClientSession(read, write) as session:        # 初始化连接        await session.initialize()        # 获取工具        tools = await load_mcp_tools(session)        # 创建并运行代理        agent = create_react_agent(model, tools)        agent_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})

多个MCP服务器,该库还允许连接到多个 MCP 服务器并从中加载工具:

服务器​​​​​​​

# math_server.py...# weather_server.pyfrom typing import Listfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("Weather")@mcp.tool()async def get_weather(location: str) -> str:    """获取位置的天气。"""    return "纽约总是阳光明媚"if __name__ == "__main__":    mcp.run(transport="sse")
python weather_server.py

客户端​​​​​​​

from langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAImodel = ChatOpenAI(model="gpt-4o")async with MultiServerMCPClient(    {        "math": {            "command": "python",            # 确保更新为 math_server.py 文件的完整绝对路径            "args": ["/path/to/math_server.py"],            "transport": "stdio",        },        "weather": {            # 确保您在 8000 端口启动天气服务器            "url": "http://localhost:8000/sse",            "transport": "sse",        }    }) as client:    agent = create_react_agent(model, client.get_tools())    math_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})    weather_response = await agent.ainvoke({"messages": "what is the weather in nyc?"})

与 LangGraph API 服务器一起使用,如果你想在 LangGraph API 服务器上运行一个使用 MCP 工具的 LangGraph 代理,可以使用以下设置:​​​​​​​​​​​​​​

# graph.pyfrom contextlib import asynccontextmanagerfrom langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentfrom langchain_anthropic import ChatAnthropicmodel = ChatAnthropic(model="claude-3-5-sonnet-latest")@asynccontextmanagerasync def make_graph():    async with MultiServerMCPClient(        {            "math": {                "command": "python",                # 确保更新为 math_server.py 文件的完整绝对路径                "args": ["/path/to/math_server.py"],                "transport": "stdio",            },            "weather": {                # 确保您在 8000 端口启动天气服务器                "url": "http://localhost:8000/sse",                "transport": "sse",            }        }    ) as client:        agent = create_react_agent(model, client.get_tools())        yield agent

在你的 langgraph.json 中,确保将 make_graph 指定为图形入口点:​​​​​​​

{  "dependencies": ["."],  "graphs": {    "agent": "./graph.py:make_graph"  }}

小小总结,Langchain为我们打开了一个充满无限可能的AI新世界,让AI技术真正落地,更加贴近我们用户的实际使用需求,同时也让机器学习应用的发展更加多元化,普适化。

 

 一、大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

二、如何学习大模型 AI ?


🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

 

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

*   大模型 AI 能干什么?
*   大模型是怎样获得「智能」的?
*   用好 AI 的核心心法
*   大模型应用业务架构
*   大模型应用技术架构
*   代码示例:向 GPT-3.5 灌入新知识
*   提示工程的意义和核心思想
*   Prompt 典型构成
*   指令调优方法论
*   思维链和思维树
*   Prompt 攻击和防范
*   …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

*   为什么要做 RAG
*   搭建一个简单的 ChatPDF
*   检索的基础概念
*   什么是向量表示(Embeddings)
*   向量数据库与向量检索
*   基于向量检索的 RAG
*   搭建 RAG 系统的扩展知识
*   混合检索与 RAG-Fusion 简介
*   向量模型本地部署
*   …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

*   为什么要做 RAG
*   什么是模型
*   什么是模型训练
*   求解器 & 损失函数简介
*   小实验2:手写一个简单的神经网络并训练它
*   什么是训练/预训练/微调/轻量化微调
*   Transformer结构简介
*   轻量化微调
*   实验数据集的构建
*   …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

*   硬件选型
*   带你了解全球大模型
*   使用国产大模型服务
*   搭建 OpenAI 代理
*   热身:基于阿里云 PAI 部署 Stable Diffusion
*   在本地计算机运行大模型
*   大模型的私有化部署
*   基于 vLLM 部署大模型
*   案例:如何优雅地在阿里云私有部署开源大模型
*   部署一套开源 LLM 项目
*   内容安全
*   互联网信息服务算法备案
*   …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

### 关于LangChain中的MCP概念 目前,在已知的公开资料中并未提及LangChain框架中有具体名为"MCP"的概念或实现[^4]。然而,可以推测这里的"MCP"可能指代的是某种模型控制点(Model Control Point),或者是与链式调用、模块化设计相关的特定功能。 #### 可能的意义解释 1. **Model Control Points (模型控制点)** 如果假设MCP代表模型控制点,则其作用可能是为了定义和管理大型语言模型在执行过程中的关键节点。这些节点可用于监控模型状态、调整参数或者触发某些事件。这种机制类似于深度学习训练中的回调函数(callbacks)[^5],用于动态干预模型的行为。 2. **Module Connection Protocol (模块连接协议)** 基于LangChain的设计理念——即通过链条(chain)将不同组件组合起来形成复杂的工作流,MCP也可能是一种抽象层,用来描述如何高效地链接不同的模块并传递数据。这与SocketCAN框架中的低级API接口类似[^2],旨在提供一种标准化的方式以促进各部分之间的通信。 3. **Custom Implementation within Chains** 用户可以在自定义chain内部创建所谓的“control points”,从而更好地掌控整个流程逻辑。虽然这不是官方预设的功能名称,但从实际应用角度来看确实存在这样的需求场景[^6]。 以下是基于上述理解构建的一个简单示例代码片段展示如何模拟设置此类控制点: ```python from langchain import PromptTemplate, LLMChain from langchain.llms import OpenAI def create_mcp_chain(): template = """You are an AI assistant that helps people find information. Your task now includes a Model Control Point where you must verify the input before processing it. Input: {input} Verification Step: If the input contains any illegal characters like '@', '#', reject it immediately with error message 'Invalid Character Detected'. Processed Output:""" prompt = PromptTemplate(template=template, input_variables=["input"]) llm = OpenAI() verification_chain = LLMChain(prompt=prompt, llm=llm) return verification_chain if __name__ == "__main__": chain = create_mcp_chain() result = chain.run(input="Test string without special symbols.") print(result) ``` 此脚本展示了怎样向标准LLM Chain加入额外验证步骤作为假想中的'MCP'实例之一。 ### 结论 综上所述,“MCP”并非当前版本langchain文档里明确指出的一部分;但是依据项目特性以及其它技术领域常见模式推断得出几种合理诠释方向。如果确切含义超出常规猜测范围之外的话,则建议查阅最新版源码注释或是联系开发者团队获取权威解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值