Lazy loaded image
记录-MCP:Client-服务器行为用户确认
字数 1442阅读时长 4 分钟
2026-5-25
2026-5-28
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
  • 这篇博客,博主会直接从代码入手。服务器行为用户确认的代码很简单,与服务器回调客户端模型生成文本一样。
  • 这里的服务端依然使用FastMCP类。
  • 删除文件且不需要用户确认,这个功能很简单,仅仅获取地址,然后删除。博主不再去实现。

📝 代码

Client

实现用户确认,需要导入一些额外的必要类:ElicitRequestParams, ElicitResult。这两个类分别用于表示输入参数类型和返回结果类型。
我们一起来看一下:想要实现用户确认,我们应如何创建客户端?
记录-MCP:Client-服务器回调Client模型中实现服务端回调client一样,我们需要创建一个用户确认的回调函数。
首先,我们来看一下用户确认的回调函数:
接着,我们需要将elicitation_callback函数放在客户端会话(ClientSession)中:
与服务端回调Client模型一样,我们需要将定义好的函数放入ClientSession中,代表着ClientSession可以让服务端回调这个函数。
再接着,完成StreamableHttpClient类。
最后,完整的代码。

Server

想要实现服务端与客户端(Client)交互确认,不仅仅需要为客户端(Client)增加函数配置,也需要为服务端增加一些配置。这里依然与服务端回调客户端大模型一样,在目标Tool中增加专用的用户确认函数。
首先,在目标Tool中使用.session.elicit()来实现与client的交互。
接着,将上述整段代码放入Tool函数中:
最后,完整代码。

执行结果

notion image
notion image
notion image
notion image
💡
欢迎您在底部评论区留言,一起交流~
上一篇
记录-MCP:Client-服务器回调Client模型
下一篇
记录-Docker打包Python-Web服务

评论
Loading...