Appearance
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
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
serverName | string | 否 | 过滤特定服务器的资源;省略时列出所有服务器的资源 |
行为:
- 遍历所有已连接的 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
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
uri | string | 是 | 要读取的 MCP 资源 URI |
行为:
- 根据 URI 定位对应的资源和服务器
- 调用服务器的
resources/read方法 - 处理响应,提取文本或二进制数据
输出:资源内容;二进制数据返回占位符说明数据类型。
确认:无(只读检索工具)
资源与工具的区别
| 维度 | 资源(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 工具按需读取,不自动加载。