Skip to main content

access_mcp_resource

access_mcp_resource工具从连接的Model Context Protocol (MCP)服务器暴露的资源中检索数据。它允许Roo访问文件、API响应、文档或系统信息,为任务提供额外上下文。


参数

该工具接受以下参数:

  • server_name (必填): 提供资源的MCP服务器名称
  • uri (必填): 标识要访问的特定资源的URI

功能

此工具连接到MCP服务器并从其暴露的资源中获取数据。与执行操作的use_mcp_tool不同,此工具专门检索作为任务上下文的信息。


使用时机

  • 当Roo需要来自外部系统的额外上下文时
  • 当Roo需要从专业MCP服务器访问领域特定数据时
  • 当Roo需要检索MCP服务器托管的参考文档时
  • 当Roo需要通过MCP集成来自外部API的实时数据时

关键特性

  • 从MCP资源检索文本和图像数据
  • 执行资源访问前需要用户批准
  • 使用基于URI的寻址精确识别资源
  • 与Model Context Protocol SDK集成
  • 根据内容类型适当显示资源内容
  • 支持网络操作超时以确保可靠性
  • 处理服务器连接状态(已连接、连接中、断开连接)
  • 发现来自已连接服务器的可用资源
  • 处理带有元数据的结构化响应数据
  • 特殊处理图像内容渲染

限制

  • 依赖外部MCP服务器的可用性和连接状态
  • 仅限于已连接服务器提供的资源
  • 无法访问已禁用服务器的资源
  • 网络问题可能影响可靠性和性能
  • 资源访问受配置超时限制
  • URI格式由特定MCP服务器实现决定
  • 无离线或缓存资源访问能力

工作原理

当调用access_mcp_resource工具时,它遵循以下流程:

  1. 连接验证:

    • 验证MCP hub是否可用并已初始化
    • 确认指定服务器存在于连接列表中
    • 检查服务器是否被禁用(如果被禁用则返回错误)
  2. 用户批准:

    • 向用户呈现资源访问请求以获取批准
    • 提供服务器名称和资源URI供用户验证
    • 仅在用户批准资源访问后继续
  3. 资源请求:

    • 使用Model Context Protocol SDK与服务器通信
    • 通过MCP hub向服务器发出resources/read请求
    • 应用配置超时以防止无响应服务器挂起
  4. 响应处理:

    • 接收带有元数据和内容数组的结构化响应
    • 处理文本内容以供用户显示
    • 特殊处理图像数据以适当显示
    • 将处理后的资源数据返回给Roo用于当前任务

资源类型

MCP服务器可以提供两种主要资源类型:

  1. 标准资源:

    • 具有特定URI的固定资源
    • 定义名称、描述和MIME类型
    • 无需参数直接访问
    • 通常表示静态数据或实时信息
  2. 资源模板:

    • URI中带有占位符值的参数化资源
    • 允许基于提供参数动态生成资源
    • 可以表示数据查询或过滤视图
    • 更灵活但需要额外的URI格式化

使用示例

访问当前天气数据:

<access_mcp_resource>
<server_name>weather-server</server_name>
<uri>weather://san-francisco/current</uri>
</access_mcp_resource>

检索API文档:

<access_mcp_resource>
<server_name>api-docs</server_name>
<uri>docs://payment-service/endpoints</uri>
</access_mcp_resource>

访问领域特定知识:

<access_mcp_resource>
<server_name>knowledge-base</server_name>
<uri>kb://medical/terminology/common</uri>
</access_mcp_resource>

获取系统配置:

<access_mcp_resource>
<server_name>infra-monitor</server_name>
<uri>config://production/database</uri>
</access_mcp_resource>