ListMcpResourcesTool:列出 MCP 资源

它让模型先获得“资源发现能力”

ListMcpResourcesTool 的职责很像远程世界里的目录浏览。
如果模型已经接上了 MCP server,但不知道那边具体暴露了哪些资源,第一步就应该用它先列出来。

关键源码

tools/ListMcpResourcesTool/ListMcpResourcesTool.ts

1
2
3
const inputSchema = z.object({
server: z.string().optional().describe('Optional server name to filter resources by'),
})

核心逻辑是:

1
2
3
4
5
6
const results = await Promise.all(
clientsToProcess.map(async client => {
const fresh = await ensureConnectedClient(client)
return await fetchResourcesForClient(fresh)
}),
)

这说明它不是静态读缓存,而是围绕 MCP client 连接状态工作的。

调用链

小结

ListMcpResourcesTool 解决的是资源发现问题,没有它,模型只能盲猜 URI。