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