文章目录MCP课程概述MCP能干什么MCP是什么那些平台支持MCP查询MCP应用场景使用前的准备工作Cursor使用MCPCline中使用MCPMCP的工作原理MCP的工作流程手动开发MCP项目server.py的构建大众用户使用MCP热门MCP Servers 推荐A2A协议开启Agent间自然协作大厂为何抛弃MCP转向CLIMCP课程概述MCP能干什么MCP是什么那些平台支持MCP查询MCP应用场景使用前的准备工作Cursor使用MCP现在交给你一个任务编写一个北京一日游的出行攻略1、从高德地图的MCP服务中获取北京站到天安门、天安门到颐和园、颐和园到南锣鼓巷的地铁线路并保存在数据库beijing_trip的表subway_trips中2、从高德地图的MCP中获取颐和园、南锣鼓巷附件的美食信息每处获取三家美食店铺信息并将相应的信息存入表location_foods中3、在工作目录D:\MCPWorkSpace下创建一个新的文件夹命名为“北京旅行”在其中创建两个txt分别从数据库中将两个表的内容提取出存放进去。4、最后根据txt中的内容生成一个精美的html前端展示页面并存放在该目录下Cline中使用MCPMCP的工作原理MCP的工作流程手动开发MCP项目def__init__(self):# 创建 AsyncExitStack用于托管所有异步资源释放这是为了后续连接 MCP Server 时使用 asyncwith 语法自动管理上下文。 self.exit_stackAsyncExitStack()# 从环境中读取配置项self.openai_api_keyos.getenv(DASHSCOPE_API_KEY)self.base_urlos.getenv(BASE_URL)self.modelos.getenv(MODEL)# 对 LLM 相关配置进行初始化ifnotself.openai_api_key:raiseValueError(❌ 未找到 OpenAI API Key请在.env 文件中设置 DASHSCOPE_API_KEY)# 初始化 OpenAI 客户端对象self.clientOpenAI(api_keyself.openai_api_key,base_urlself.base_url)# 初始化 MCP Session用于延迟赋值等待连接 MCP Server 后再初始化它 self.session:Optional[ClientSession]Noneasyncdefconnect_to_server(self,server_script_path:str):# 对服务器脚本进行判断只允许是 .py 或 .jsis_pythonserver_script_path.endswith(.py)is_jsserver_script_path.endswith(.js)ifnot(is_pythonoris_js):raiseValueError(服务器脚本必须是 .py 或 .js 文件)# 确定启动命令.py 用 python.js 用 nodecommandpythonifis_pythonelsenode# 构造 MCP 所需的服务器参数包含启动命令、脚本路径参数、环境变量为None表示默认 server_paramsStdioServerParameters(commandcommand,args[server_script_path],envNone)# 启动 MCP 工具服务进程并建立 stdio 通信stdio_transportawaitself.exit_stack.enter_async_context(stdio_client(server_params))# 拆包通信通道读取服务端返回的数据并向服务端发送请求self.stdio,self.writestdio_transport# 创建 MCP 客户端会话对象self.sessionawaitself.exit_stack.enter_async_context(ClientSession(self.stdio,self.write))# 初始化会话awaitself.session.initialize()# 获取工具列表并打印responseawaitself.session.list_tools()toolsresponse.toolsprint(\n已连接到服务器支持以下工具:,[tool.namefortoolintools])在这里插入代码片server.py的构建大众用户使用MCP热门MCP Servers 推荐A2A协议开启Agent间自然协作
MCP实战指南,mcp视频教程,2小时学透mcp
文章目录MCP课程概述MCP能干什么MCP是什么那些平台支持MCP查询MCP应用场景使用前的准备工作Cursor使用MCPCline中使用MCPMCP的工作原理MCP的工作流程手动开发MCP项目server.py的构建大众用户使用MCP热门MCP Servers 推荐A2A协议开启Agent间自然协作大厂为何抛弃MCP转向CLIMCP课程概述MCP能干什么MCP是什么那些平台支持MCP查询MCP应用场景使用前的准备工作Cursor使用MCP现在交给你一个任务编写一个北京一日游的出行攻略1、从高德地图的MCP服务中获取北京站到天安门、天安门到颐和园、颐和园到南锣鼓巷的地铁线路并保存在数据库beijing_trip的表subway_trips中2、从高德地图的MCP中获取颐和园、南锣鼓巷附件的美食信息每处获取三家美食店铺信息并将相应的信息存入表location_foods中3、在工作目录D:\MCPWorkSpace下创建一个新的文件夹命名为“北京旅行”在其中创建两个txt分别从数据库中将两个表的内容提取出存放进去。4、最后根据txt中的内容生成一个精美的html前端展示页面并存放在该目录下Cline中使用MCPMCP的工作原理MCP的工作流程手动开发MCP项目def__init__(self):# 创建 AsyncExitStack用于托管所有异步资源释放这是为了后续连接 MCP Server 时使用 asyncwith 语法自动管理上下文。 self.exit_stackAsyncExitStack()# 从环境中读取配置项self.openai_api_keyos.getenv(DASHSCOPE_API_KEY)self.base_urlos.getenv(BASE_URL)self.modelos.getenv(MODEL)# 对 LLM 相关配置进行初始化ifnotself.openai_api_key:raiseValueError(❌ 未找到 OpenAI API Key请在.env 文件中设置 DASHSCOPE_API_KEY)# 初始化 OpenAI 客户端对象self.clientOpenAI(api_keyself.openai_api_key,base_urlself.base_url)# 初始化 MCP Session用于延迟赋值等待连接 MCP Server 后再初始化它 self.session:Optional[ClientSession]Noneasyncdefconnect_to_server(self,server_script_path:str):# 对服务器脚本进行判断只允许是 .py 或 .jsis_pythonserver_script_path.endswith(.py)is_jsserver_script_path.endswith(.js)ifnot(is_pythonoris_js):raiseValueError(服务器脚本必须是 .py 或 .js 文件)# 确定启动命令.py 用 python.js 用 nodecommandpythonifis_pythonelsenode# 构造 MCP 所需的服务器参数包含启动命令、脚本路径参数、环境变量为None表示默认 server_paramsStdioServerParameters(commandcommand,args[server_script_path],envNone)# 启动 MCP 工具服务进程并建立 stdio 通信stdio_transportawaitself.exit_stack.enter_async_context(stdio_client(server_params))# 拆包通信通道读取服务端返回的数据并向服务端发送请求self.stdio,self.writestdio_transport# 创建 MCP 客户端会话对象self.sessionawaitself.exit_stack.enter_async_context(ClientSession(self.stdio,self.write))# 初始化会话awaitself.session.initialize()# 获取工具列表并打印responseawaitself.session.list_tools()toolsresponse.toolsprint(\n已连接到服务器支持以下工具:,[tool.namefortoolintools])在这里插入代码片server.py的构建大众用户使用MCP热门MCP Servers 推荐A2A协议开启Agent间自然协作