AI智能摘要
GPT
这里是萌新AI,这篇文章介绍了 MCP 中 Client 执行需要用户确认的服务器行为。文章从代码入手,先说明删除文件无需确认,随后重点讲解实现用户确认的客户端创建方法。通过导入 ElicitRequestParams 和 ElicitResult 类,并定义 elicitation_callback 回调函数,客户端可接收服务端消息并返回确认结果。
URL
type
Post
status
Published
date
May 25, 2026
slug
mcp_client
summary
MCP client
tags
实用教程
Python
大模型
推荐
category
大模型
icon
password
当MCP的Client或者智能体(大模型)调用一些MCP工具时,有一些操作需要用户确认,服务端才能继续执行。例如:删除文件、修改文件、修改配置等等。
Tips
- Client的基本概念已经在记录-MCP:Client-服务器回调Client模型中简单记录,伙伴们可以查看这篇博客。
- 这篇博客,博主会直接从代码入手。服务器行为用户确认的代码很简单,与服务器回调客户端模型生成文本一样。
- 这里的服务端依然使用FastMCP类。
- 删除文件且不需要用户确认,这个功能很简单,仅仅获取地址,然后删除。博主不再去实现。
📝 代码
Client
实现用户确认,需要导入一些额外的必要类:ElicitRequestParams, ElicitResult。这两个类分别用于表示输入参数类型和返回结果类型。
我们一起来看一下:想要实现用户确认,我们应如何创建客户端?
与记录-MCP:Client-服务器回调Client模型中实现服务端回调client一样,我们需要创建一个用户确认的回调函数。
首先,我们来看一下用户确认的回调函数:
接着,我们需要将elicitation_callback函数放在客户端会话(ClientSession)中:
与服务端回调Client模型一样,我们需要将定义好的函数放入ClientSession中,代表着ClientSession可以让服务端回调这个函数。
再接着,完成StreamableHttpClient类。
最后,完整的代码。
Server
想要实现服务端与客户端(Client)交互确认,不仅仅需要为客户端(Client)增加函数配置,也需要为服务端增加一些配置。这里依然与服务端回调客户端大模型一样,在目标Tool中增加专用的用户确认函数。
首先,在目标Tool中使用.session.elicit()来实现与client的交互。
接着,将上述整段代码放入Tool函数中:
最后,完整代码。
执行结果




欢迎您在底部评论区留言,一起交流~
- 作者:不爱吃香菜的萌新
- 链接:https://hexo.levsongsw.com//largemoder/mcp_client
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





