当前位置: 首页 > backend >正文

LangChain MCP Adapters Quickstart

目录

    • 环境准备
    • math_server.py
    • client.py
    • 输出结果

下面展示了如何使用LangChain MCP (Model Control Protocol) Adapters创建一个简单的数学工具服务,并通过LangGraph的Agent来调用这些工具。

环境准备

uv init
uv venv
source .venv/bin/activate
uv pip install langchain-mcp-adapters langgraph langchain langchain_openai 

math_server.py

# math_server.py
from mcp.server.fastmcp import FastMCPmcp = FastMCP("Math")@mcp.tool()
def add(a: int, b: int) -> int:"""Add two numbers"""return a + b@mcp.tool()
def multiply(a: int, b: int) -> int:"""Multiply two numbers"""return a * bif __name__ == "__main__":mcp.run(transport="stdio")

client.py

# Create server parameters for stdio connection
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
import asynciofrom langchain_openai import ChatOpenAI
llm = ChatOpenAI(temperature=0,model="qwen-turbo",openai_api_key="your api key",openai_api_base="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
server_params = StdioServerParameters(command="uv",args=["run", "math_server.py"],
)async def main():async with stdio_client(server_params) as (read, write):async with ClientSession(read, write) as session:# Initialize the connectionawait session.initialize()# Get toolstools = await load_mcp_tools(session)# Create and run the agentagent = create_react_agent(llm, tools)agent_response = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})print(agent_response["messages"][-1].content)# 运行异步主函数
if __name__ == "__main__":asyncio.run(main())

输出结果

uv run client.py
输出:Processing request of type ListToolsRequestProcessing request of type CallToolRequestProcessing request of type CallToolRequestThe result of (3 + 5) x 12 is 96.

参考链接:
https://github.com/langchain-ai/langchain-mcp-adapters

http://www.xdnf.cn/news/13579.html

相关文章:

  • 无人机避障——感知篇(基于ZED2实现Vins Fusion)
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: SameText, SameStr, 比较字符串更简单
  • Git 介绍、安装以及基本操作
  • 【行云流水AI笔记】游戏里面的强化学习使用场景
  • 博客系统自动化测试
  • Linux基本指令(包含vim,用户,文件等方面)超详细
  • 服务器BMC相关问题-重启-挂起-HANG
  • java超大文件上传
  • 【评测】flux-dev文生图模型初体验
  • 股指期货贴水率怎么计算?
  • 知识图谱和图数据库Neo4j
  • AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则
  • APP Trace 传参安装流程详解 (开发者视角)
  • Flotherm许可的跨平台兼容性
  • 在RK3588上部署ROS2与ORB-SLAM3实现Gazebo小车自主导航-环境搭建过程
  • 6月11日day51打卡
  • 机器学习与深度学习18-线性代数01
  • Java八股文——Spring「MyBatis篇」
  • RPC启动机制及注解实现
  • 基于OpenCV的图像增强技术:直方图均衡化与自适应直方图均衡化
  • JavaWeb期末速成
  • 力扣 Hot100 动态规划刷题心法:从入门到精通的蜕变之路
  • 论文略读:When Attention Sink Emerges in Language Models: An Empirical View
  • VAS1085Q奇力科技LED驱动芯片车规级线性芯片
  • OpenCV CUDA模块图像变形------ 构建仿射变换的映射表函数buildWarpAffineMaps()
  • Python文件读写操作详解:从基础到实战
  • 【笔记】NVIDIA AI Workbench 中安装 PyTorch
  • Monkey 测试的基本概念及常用命令(Android )
  • 网络安全中对抗性漂移的多智能体强化学习
  • 硬件测试 图吧工具箱分享(附下载链接)