首页
/ LangChain MCP Adapters:零门槛实现MCP协议与LangChain生态的无缝集成

LangChain MCP Adapters:零门槛实现MCP协议与LangChain生态的无缝集成

2026-04-08 09:14:34作者:秋阔奎Evelyn

核心价值:打破AI工具生态壁垒的协议转换桥梁

在当前AI应用开发中,不同工具生态间的兼容性问题一直是开发者面临的主要挑战。LangChain MCP Adapters作为一款轻量级协议转换工具,通过实现Anthropic Model Context Protocol (MCP)与LangChain/LangGraph生态的无缝对接,为开发者提供了三大核心价值:

  • 协议转换枢纽:自动将MCP工具转换为LangChain兼容格式,无需手动适配
  • 多服务集成能力:同时连接多个MCP服务器,聚合不同领域工具集
  • 跨平台协同:支持stdio、sse等多种传输协议,实现异构系统间的顺畅通信

MCP协议架构

场景化应用:从环境准备到五分钟上手

环境准备:搭建基础开发环境

依赖安装

pip install langchain-mcp-adapters langgraph langchain-openai

密钥配置

export OPENAI_API_KEY=<你的_api_key>

代码获取

git clone https://gitcode.com/gh_mirrors/la/langchain-mcp-adapters
cd langchain-mcp-adapters

五分钟上手:构建你的第一个MCP应用

1. 实现MCP数学工具服务器

创建math_server.py文件,定义基础数学运算能力:

from mcp.server.fastmcp import FastMCP

mcp = 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 * b

if __name__ == "__main__":
    mcp.run(transport="stdio")

2. 开发LangChain代理客户端

创建math_agent.py文件,连接服务器并构建智能代理:

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o")
server_params = StdioServerParameters(
    command="python",
    args=["math_server.py"],
    transport="stdio"
)

async def calculate_expression(expression: str):
    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)
            return await agent.ainvoke({"messages": expression})

# 使用示例
import asyncio
result = asyncio.run(calculate_expression("what's (3 + 5) x 12?"))
print(result)

⚠️ 常见错误处理

  • 确保服务器文件路径正确,避免"File not found"错误
  • 网络环境不稳定时,考虑增加连接超时处理
  • 工具调用参数类型不匹配时,检查函数定义的类型注解

进阶实践:多服务集成与复杂场景应用

多MCP服务器协同工作

通过MultiServerMCPClient实现多领域工具的统一调用:

from langchain_mcp_adapters.client import MultiServerMCPClient

async def multi_server_demo():
    async with MultiServerMCPClient({
        "math": {
            "command": "python",
            "args": ["math_server.py"],
            "transport": "stdio"
        },
        "weather": {
            "url": "http://localhost:8000/sse",
            "transport": "sse"
        }
    }) as client:
        agent = create_react_agent(model, client.get_tools())
        
        # 数学计算任务
        math_result = await agent.ainvoke({"messages": "3的4次方乘以5再加20等于多少?"})
        
        # 天气查询任务
        weather_result = await agent.ainvoke({"messages": "今天纽约的天气如何?"})
        
        return math_result, weather_result

LangGraph API服务器集成方案

将MCP工具集成到LangGraph API服务中:

# graph.py
from contextlib import asynccontextmanager
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o")

@asynccontextmanager
async def make_graph():
    async with MultiServerMCPClient({
        "math": {
            "command": "python",
            "args": ["math_server.py"],
            "transport": "stdio"
        },
        "weather": {
            "url": "http://localhost:8000/sse",
            "transport": "sse"
        }
    }) as client:
        agent = create_react_agent(model, client.get_tools())
        yield agent

生态拓展:企业级部署与社区贡献

企业级部署方案

Docker容器化部署

创建Dockerfile实现应用容器化:

FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

# 暴露应用端口
EXPOSE 8000

# 启动命令
CMD ["uvicorn", "server:app", "--host", "0.0.0.0", "--port", "8000"]

创建docker-compose.yml管理多服务部署:

version: '3.8'

services:
  math-server:
    build: .
    command: python math_server.py
    volumes:
      - ./:/app
      
  weather-server:
    build: .
    command: python weather_server.py
    ports:
      - "8000:8000"
      
  langgraph-agent:
    build: .
    command: uvicorn graph:app --host 0.0.0.0 --port 8080
    ports:
      - "8080:8080"
    depends_on:
      - math-server
      - weather-server

社区贡献指南

我们欢迎任何形式的社区贡献,包括但不限于:

  • 代码改进与新功能开发
  • 文档完善与教程编写
  • 问题反馈与bug报告
  • 测试用例补充

详细贡献指南请参考项目中的贡献说明文档。

通过LangChain MCP Adapters,开发者可以轻松构建跨平台、多服务协同的AI应用,充分利用MCP生态的丰富工具与LangChain/LangGraph的强大编排能力,为各类业务场景提供灵活高效的智能解决方案。无论是快速原型验证还是企业级应用部署,本工具都能显著降低开发复杂度,提升AI应用构建效率。

登录后查看全文
热门项目推荐
相关项目推荐