正版资源 getfromcode我的博客 会员免费
AI agent 大模型实战之 stdio创建本地mcp服务和客户端
这门课解决什么问题 MCP(Model Context Protocol)是连接 AI agent 与外部工具的标准协议。这门课聚焦于 stdio 传输方式——即 agent 与本地 MCP 服务之间通过标准输入输出进行通信的技术实现。你需要解决的核心问题是:如何快速搭建一个本地 MCP 服务,并让
单课价¥29新品 上架
正版保障 极速发货 售后无忧
这门课解决什么问题
MCP(Model Context Protocol)是连接 AI agent 与外部工具的标准协议。这门课聚焦于stdio传输方式——即 agent 与本地 MCP 服务之间通过标准输入输出进行通信的技术实现。你需要解决的核心问题是:如何快速搭建一个本地 MCP 服务,并让 agent 调用它执行具体任务(如数学计算、文件处理等),而无需依赖外部 API 或复杂部署。
适合什么基础
建议读者具备 Python 基础,了解基本的函数定义与装饰器用法。课程不会从零讲语法,而是聚焦于 MCP 架构设计与代码落地。如果你熟悉 LangChain 或其他 agent 框架,理解起来会更快;即使不熟悉,课程也会用清晰的代码示例带你走通。
建议先看哪几块
- MCP 服务端创建:使用 FastMCP 框架注册工具函数,理解
@mcp.tool()装饰器的用法与参数传递机制。 - stdio 客户端连接:通过
StdioServerParameters和ClientSession建立与服务端的通信通道。 - LangChain agent 集成:使用
load_mcp_tools将 MCP 工具注入 agent,理解工具注册与调用流程。
学完能独立做什么
学完这门课,你可以独立搭建一个本地 MCP 服务(如数学计算、文件读写等),并通过 agent 框架调用这些工具完成实际任务。更重要的是,你会掌握 MCP 服务的标准开发模式,能够将其应用到自己的项目中,比如为 AI 助手添加自定义工具能力,或构建更复杂的 agent 工作流。
资料怎么配合练习
课程资料包含可直接运行的 Python 代码示例,建议边看边改:尝试修改工具函数的参数和返回值,尝试添加新的工具,或尝试连接不同的 MCP 服务。每个模块结束后,尝试用课程中的代码搭建一个最小可运行示例,验证自己的理解是否正确。资料本身即是练习的起点,动手修改和扩展比单纯阅读更有价值。
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())




