access_mcp_resource
access_mcp_resource 工具用于从已连接的模型上下文协议(Model Context Protocol,MCP)服务器暴露的资源中检索数据,支持 VJSP 访问文件、API响应、文档或系统信息,为任务执行提供补充上下文。
参数说明
本工具接收以下参数:
server_name(必选):提供目标资源的 MCP 服务器名称uri(必选):标识待访问具体资源的统一资源标识符
功能定位
该工具通过与 MCP 服务器建立连接,拉取其暴露资源中的数据。与执行操作类的use_ MCP _tool工具不同,本工具专用于检索为任务提供上下文支撑的信息类数据。
适用场景
- VJSP 需从外部系统获取补充上下文时
- VJSP 需从专业 MCP 服务器调取领域专属数据时
- VJSP 需检索由 MCP 服务器托管的参考文档时
- VJSP 需通过 MCP 集成外部 API 的实时数据时
核心特性
- 支持从 MCP 资源中检索文本与图像双类型数据
- 执行资源访问操作前需获得用户授权
- 基于 URI 寻址机制实现资源的精准定位
- 深度集成模型上下文协议开发工具包(MCP SDK)
- 根据内容类型对资源内容进行适配性展示
- 支持超时配置,保障网络操作的可靠性
- 兼容服务器多连接状态处理(已连接、连接中、已断开)
- 支持从已连接服务器中发现可用资源
- 可处理附带元数据的结构化响应数据
- 针对图像内容提供专属渲染处理逻辑
局限性
- 依赖外部 MCP 服务器的在线状态与连接有效性
- 仅可访问已连接服务器所提供的资源范围
- 无法访问已禁用服务器中的资源
- 网络故障会影响工具的可靠性与执行性能
- 资源访问受配置的超时时间限制
- URI 格式由具体 MCP 服务器的实现逻辑定义
- 不支持资源的离线访问与缓存读取能力
执行流程
调用access_mcp_resource工具时,将按以下流程执行:
连接有效性校验
- 验证 MCP 中枢节点是否已部署并完成初始化
- 确认指定服务器已存在于连接列表中
- 检查服务器是否处于禁用状态(若禁用则直接返回错误)
用户操作授权
- 向用户推送资源访问请求,等待授权确认
- 展示待访问的服务器名称与资源 URI,供用户核验
- 仅在获得用户授权后,继续执行后续操作
资源请求发起
- 基于 MCP SDK 与目标服务器进行通信交互
- 通过 MCP 中枢节点向目标服务器发起
resources/read资源读取请求 - 启用配置的超时机制,避免因服务器无响应导致的流程阻塞
响应结果处理
- 接收包含元数据与内容数组的结构化响应数据
- 对文本内容进行解析处理,适配用户展示场景
- 对图像数据执行专属处理逻辑,保障展示效果
- 将处理后的资源数据回传给 VJSP,支撑当前任务执行
资源类型
MCP 服务器可提供两类核心资源:
标准资源
- 拥有固定 URI 的静态资源
- 包含预定义的名称、描述与多用途互联网邮件扩展类型(MIME Type)
- 支持无参数直接访问
- 通常用于承载静态数据或实时更新的基础信息
资源模板
- URI 中包含占位符的参数化资源
- 支持根据传入参数动态生成资源内容
- 可用于实现数据查询或筛选视图
- 灵活性更高,但需遵循额外的 URI 格式化规则
实际应用场景
- 协助进行API开发时,VJSP 从 MCP 资源中调取接口规格说明,保障实现逻辑的准确性
- 协助进行数据可视化时,VJSP 从已连接的 MCP 服务器中获取最新数据样本
- 处理专业领域任务时,VJSP 检索技术文档,为操作提供精准指导
- 生成行业专属代码时,VJSP 参考文档资源中的合规要求,保障代码符合行业规范
使用示例
访问实时天气数据
<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>