AI agent 大模型实战之 stdio创建本地mcp服务和客户端
AI
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Math Tools")
@mcp.tool()
def add(a:int,b:int)->int:
return a+b
@mcp.tool()
def mult(a:int,b:int)->int:
return a*b
if __name__=="__main__":
mcp.run(transport="stdio")from langchain.agents import create_agent
from langchain_mcp_adapters.tools import load_mcp_tools
from mcp import StdioServerParameters, ClientSession
from mcp.client.stdio import stdio_client
import asyncio
from app.bailian.common import llm
SYSTEM_PROMPT="""
你是数学计算专家
你有2个工具函数:
- add :根据这个函数去把用户输入的2个值相加 并且返回
- mult :根据这个函数去把用户输入的2个值相乘 并且返回
- 先算乘后算加
"""
async def create_mcp_stdio_client():
server_params = StdioServerParameters(
command="python",
args=["/Volumes/c/workspace/ai-agent-test/mcp_all/stdio_test/mcp_stdio_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)
print(tools)
agent = create_agent(
model=llm,
tools=tools,
debug=True,
system_prompt=SYSTEM_PROMPT,
)
resp = await agent.ainvoke( {"messages": [{"role": "user", "content": "1 + 100 * 100 = ?"}]})
print(resp)
return resp
asyncio.run(create_mcp_stdio_client())
![[衡天云]爆款云服务器 低至12元/月](/hty.png)