Skip to content

MCP 服务器除了提供工具(Tool),还可以暴露资源(Resource)供模型读取——类似于文件系统,但数据来自外部服务。list_mcp_resources 发现可用资源列表,read_mcp_resource 按 URI 读取具体资源内容,两者均为只读操作,不弹确认窗口。

MCP 资源工具参考

MCP 资源工具让代理能够发现和读取 MCP 服务器暴露的外部数据资源。这是 MCP 协议中"资源"能力的客户端实现——区别于"工具"(Tool)的主动执行,"资源"(Resource)更像是可以被模型读取的外部数据源。

MCP 服务器配置参见 MCP 服务器完整参考


list_mcp_resources(列出 MCP 资源)

发现所有已连接 MCP 服务器暴露的可用资源列表,是模型了解外部数据源的入口工具。

工具名称list_mcp_resources

参数

参数类型必填说明
serverNamestring过滤特定服务器的资源;省略时列出所有服务器的资源

行为

  • 遍历所有已连接的 MCP 服务器
  • 获取每个服务器暴露的资源列表
  • 将结果格式化为 URI + 服务器名 + 描述的纯文本列表

输出:格式化的资源列表,例如:

Available MCP Resources:

[server: filesystem-server]
  file:///home/user/docs/readme.md - Project README
  file:///home/user/docs/api.md - API Documentation

[server: database-server]
  db://myapp/users - User table data
  db://myapp/products - Product catalog

确认:无(只读发现工具,不弹确认窗口)


read_mcp_resource(读取 MCP 资源)

按 URI 读取特定 MCP 资源的内容。

工具名称read_mcp_resource

参数

参数类型必填说明
uristring要读取的 MCP 资源 URI

行为

  1. 根据 URI 定位对应的资源和服务器
  2. 调用服务器的 resources/read 方法
  3. 处理响应,提取文本或二进制数据

输出:资源内容;二进制数据返回占位符说明数据类型。

确认:无(只读检索工具)


资源与工具的区别

维度资源(Resource)工具(Tool)
性质被动数据源主动执行操作
调用方式读取 URI 指定的内容执行特定动作
确认弹窗通常有(可 trust 跳过)
典型示例文件内容、数据库记录发送邮件、执行查询

常见问题

Q: 不是所有 MCP 服务器都有资源吗?

A: 正确。MCP 协议中资源是可选能力。如果某服务器没有资源,list_mcp_resources 不会列出该服务器。大多数常用 MCP 服务器(如 GitHub、Slack)以工具为主,资源能力相对少见,但文件系统类、数据库类服务器通常会暴露资源。

Q: 资源和 GEMINI.md 文件上下文有什么关系?

A: 完全独立。GEMINI.md 是 Gemini CLI 自身的上下文系统;MCP 资源是外部服务通过 MCP 协议暴露的数据,通过 read_mcp_resource 工具按需读取,不自动加载。