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

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

相关文章:

  • Linux CPU 亲和性
  • Pip Manager本地Python包管理器
  • 第五十一天打卡
  • 如何配置Dify中的MCP服务
  • 【AI News | 20250611】每日AI进展
  • MySQL之事务与读视图
  • 看板中如何管理技术债务
  • 【Java学习日记38】:C语言 fabs 与 Java abs 绝对值函数
  • Linux相关问题整理
  • Boring Blog
  • Vue 数据代理机制对属性名的要求
  • 前端将多个PDF链接的内容拼接成一个后返回出一个链接进行打开
  • 脑机新手指南(九):高性能脑文本通信:手写方式实现(上)
  • JS之Dom模型和Bom模型
  • Java SE - 类和对象入门指南
  • SQL29 验证刷题效果,输出题目真实通过率
  • Future与CompletableFuture:异步编程对比
  • Linux 文件内容的查询与统计
  • 万字深度解析注意力机制全景:掌握Transformer核心驱动力​
  • 【基于阿里云上Ubantu系统部署配置docker】
  • 餐饮网站制作/网页seo是什么意思
  • 燕郊医院网站建设/原创代写文章平台
  • 徐州网站建设推广/网站优化软件
  • 传媒公司网站建设方案/搜索引擎营销的主要方法包括
  • 海口手机建站模板/关键词排名优化易下拉霸屏
  • 网站ipc备案/seo网络推广有哪些