跳到主要内容

工具、资源、提示和技能

已连接的 MCP servers 会向 IaC Code 暴露四类 capabilities。

Tools

Each MCP tool becomes an IaC Code tool:

mcp__<server>__<tool>

工具描述和 JSON 输入模式来自 MCP 服务器。 IaC 代码将模型的工具输入转发到 MCP 服务器,然后将 MCP 内容块转换为正常的工具结果。

权限提示和审计元数据包括MCP服务器名称、原始工具名称、公共规范化工具名称和只读/破坏性注释。

MCP 工具注释在可能的情况下受到尊重:

MCP annotationIaC Code behavior
readOnlyHint: true该工具被视为只读且并发安全的。
destructiveHint: true该工具被视为对权限决策具有破坏性。

MCP工具仍然通过IaC Code现有的权限系统。使用正常的 permissions 设置或 CLI 标志(例如 --allowed-tools--disallowed-tools--permission-mode)配置权限策略。

MCP 进度通知出现在交互式渲染、无头进度输出、ACP 工具进度更新和 A2A 工具元数据中。

Tool Results and Artifacts

IaC 代码将 MCP 内容块转换为模型可见文本:

MCP contentIaC Code result
Text contentIncluded directly in the tool result when small; 大文本会保存为私有 .txt.json.md artifact.
structuredContent在结构化内容部分下呈现为格式化 JSON。
文本资源使用服务器和 URI 来源进行渲染。
resource_link呈现为具有 URI 和 MIME 类型的资源链接。
图像、音频和 Blob 数据存储为私有工件文件并由工件 ID 引用。

对于 v2 会话,二进制工件存储在会话拥有的 MCP 工具结果目录中:

<config-dir>/projects/<project>/<session-id>/tool-results/mcp/<server>/<tool>/

没有受支持的布局标记的旧会话继续使用:

<config-dir>/tool-results/<session-id>/mcp/<server>/<tool>/

The model sees the artifact id and metadata, not raw base64 data. 大文本 artifact 会包含 path so the full output can be read without flooding the conversation.

Resources

当任何连接的服务器公开资源时,IaC Code 会注册两个全局工具:

ToolPurpose
list_mcp_resources列出来自连接的 MCP 服务器的资源。可以选择按服务器名称进行过滤。
read_mcp_resource通过 serveruri 读取一项资源。

资源行包括服务器名称、URI、可选资源名称和可选 MIME 类型。

Prompts

MCP prompts become slash commands:

/mcp__<server>__<prompt> key=value

调用时,IaC Code 调用 MCP prompts/get,呈现返回的提示消息,将呈现的提示注入对话中,并让模型继续。提示参数可以传递为:

template_name=prod-vpc region=cn-hangzhou

or as JSON:

{"template_name": "prod-vpc", "region": "cn-hangzhou"}

在 MCP 调用之前验证所需的提示参数。支持带引号的值,包括带反斜杠的 Windows 路径。

Skills

具有 skill:// URI 的 MCP 资源成为技能命令:

$mcp__<server>__<skill>

IaC Code读取远程技能资源,解析frontmatter,并将其注册为普通技能命令。远程 MCP 技能受到安全限制:

  • Remote allowed_tools are cleared.
  • 远程自动触发路径规则被清除。
  • 远程技能主体和描述长度有限制。
  • 如果远程技能与现有命令冲突,则会跳过该命令并显示 MCP 警告。

MCP 技能资源可以在启动期间读取,因此可以在用户调用命令之前注册该命令。

当没有命令冲突时,MCP技能还会获得一个兼容性别名:

$<server>:<skill>

例如,$mcp__yuque__search$yuque:search 可以解析为相同的远程技能。

Server Instructions(服务器指令)

如果连接的服务器从初始化返回 instructions,IaC 代码会将它们作为专用 MCP 服务器指令部分注入到代理提示符中。这些说明被视为服务器范围的指导,不会覆盖本地项目说明。

Elicitation(交互式请求)

交互式 session 可以把 MCP elicitation request 转给用户。URL 模式的 elicitation 可以要求用户完成外部 URL flow,然后在有界重试次数内重试原始 MCP tool call。非交互上下文会安全取消 elicitation。

Dynamic Updates

如果 MCP 服务器发送 tools/list_changedresources/list_changedprompts/list_changed,IaC Code 会刷新受影响的功能列表并更新工具或命令注册表。刷新失败将报告为 MCP 警告,并且不会停止活动会话。