원클릭으로
dynamic-mcp-loader
动态 MCP 工具加载器,支持运行时连接远程 HTTP/SSE MCP 服务或启动本地 MCP 进程,让 Agent 根据需求即时扩展能力。适用于用户提到不熟悉的 MCP 服务时,通过搜索发现连接方式后动态加载。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
动态 MCP 工具加载器,支持运行时连接远程 HTTP/SSE MCP 服务或启动本地 MCP 进程,让 Agent 根据需求即时扩展能力。适用于用户提到不熟悉的 MCP 服务时,通过搜索发现连接方式后动态加载。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
赋予 Agent 作为集群指挥官(Leader)的能力,通过去中心化任务队列将子任务派发给 Worker 节点并发执行。
Captures learnings, errors, and corrections to .learnings/ directory for continuous improvement.
【系统级后备工具】仅用于网络诊断、进程管理等基础任务。代码搜索/数据分析等应使用专用 skill。
用于管理长耗时、异步任务的工具集。当任务预计执行时间超过 10 秒(如模型训练、大型构建、批量数据处理)时,必须使用此工具,而不是 bash。
编程化工具调用指南。允许 Agent 编写并执行 Python 代码,从而能够在一个沙箱环境中动态调用其他工具,实现循环、批处理和复杂逻辑。
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
| name | Dynamic MCP Loader |
| description | 动态 MCP 工具加载器,支持运行时连接远程 HTTP/SSE MCP 服务或启动本地 MCP 进程,让 Agent 根据需求即时扩展能力。适用于用户提到不熟悉的 MCP 服务时,通过搜索发现连接方式后动态加载。 |
Dynamic MCP Loader 是一个元工具(Meta-Tool),赋予 Agent "自主扩张能力"。
它允许 Agent 在运行时动态加载新的 MCP 工具,而无需重启服务或修改配置文件。Agent 可以:
connect_mcp 工具动态挂载该服务核心优势:实现"Just-in-Time Tooling"(即时工具化)模式,Agent 不再需要背负几百个工具运行,而是按需"下载"技能。
触发场景:
典型工作流:
用户请求 → Web Search 查找连接方式 → connect_mcp 动态加载 → 使用新工具
功能:全能型 MCP 加载器,支持远程和本地两种模式。
参数说明:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
mode | "remote" 或 "local" | 是 | 连接模式 |
source | str | 是 | 远程模式填 URL,本地模式填基础命令(如 npx) |
args | List[str] | 本地模式必需 | 命令参数列表 |
env_vars | Dict[str, str] | 否 | 本地模式专用,环境变量(如 BRAVE_API_KEY) |
api_key | str | 否 | 远程模式专用,API Key 用于服务认证(如 Context7) |
返回值:执行结果信息字符串
适用场景:MCP 服务以 HTTP 或 Server-Sent Events (SSE) 方式提供。
执行步骤:
connect_mcp,mode="remote",source 填写 URL示例 1:无需认证的远程服务
用户请求:"连接公开的 MCP 服务"
Tool: connect_mcp(
mode="remote",
source="https://example.com/mcp"
)
Result: "[Success] remote MCP 工具加载成功!"
示例 2:需要 API Key 认证的远程服务(Context7)
用户请求:"用 context7 查一下 fastmcp 库的最新版本,我的 API Key 是 ctx7sk-xxxxx"
Step 1: Web Search
Tool: web_search("context7 mcp server url")
Result: "Context7 MCP is available at https://mcp.context7.com/mcp"
Step 2: Dynamic Load with API Key
Tool: connect_mcp(
mode="remote",
source="https://mcp.context7.com/mcp",
api_key="ctx7sk-xxxxx"
)
Result: "[Success] remote MCP 工具加载成功!"
Step 3: Use New Tool
Tool: resolve_library_id(library_name="fastmcp")
Tool: query_docs(library_id="/...", query="latest version")
重要说明:
CONTEXT7_API_KEY(非标准 Bearer Token)ctx7sk-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxcontext7.com 域名并使用正确的 header 名称适用场景:MCP 服务需要通过 npx、python 等命令在本地启动。
执行步骤:
npx -y @modelcontextprotocol/server-git)command 和 args 列表connect_mcp,mode="local"env_vars 传入示例 1:Git MCP
用户请求:"帮我启用 git 的 mcp 工具"
Step 1: Web Search (如果不知道启动方式)
Tool: web_search("modelcontextprotocol git server npx")
Result: "Run using: npx -y @modelcontextprotocol/server-git"
Step 2: Dynamic Load
Tool: connect_mcp(
mode="local",
source="npx",
args=["-y", "@modelcontextprotocol/server-git"]
)
Result: "[Success] local MCP 工具加载成功!"
Step 3: Use New Tool
Tool: git_status()
Tool: git_log(limit=10)
示例 2:Brave Search MCP(需要 API Key)
用户请求:"用 Brave Search 的 MCP,我的 Key 是 BS-xxxxx"
Step 1: Web Search
Tool: web_search("brave search mcp server installation")
Result: "npx -y @modelcontextprotocol/server-brave-search"
Step 2: Dynamic Load with Env Vars
Tool: connect_mcp(
mode="local",
source="npx",
args=["-y", "@modelcontextprotocol/server-brave-search"],
env_vars={"BRAVE_API_KEY": "BS-xxxxx"}
)
Result: "[Success] local MCP 工具加载成功!"
Step 3: Use New Tool
Tool: brave_web_search(query="AI news today")
关键点:从搜索结果的字符串命令转化为结构化参数。
原始命令:npx -y @modelcontextprotocol/server-sqlite --db-path ./data.db
拆解为:
mode="local"
source="npx"
args=["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data.db"]
注意事项:
args 必须是列表,不能是字符串何时使用 env_vars:
BRAVE_API_KEY, OPENAI_API_KEY)示例:
env_vars={
"BRAVE_API_KEY": "用户提供的Key",
"DEBUG": "true" # 如果需要调试模式
}
本地模式仅允许以下基础命令:
npx, uvx: Node.js 包管理工具node: Node.js 运行时python, python3: Python 解释器拒绝示例:
connect_mcp(mode="local", source="rm", args=["-rf", "/"])
# 返回: "[Security] 拒绝执行:命令 'rm' 不在白名单中"
禁止参数中包含以下字符:
|>, <;, &`, $(拒绝示例:
connect_mcp(mode="local", source="npx", args=["-y", "package; rm -rf /"])
# 返回: "[Security] 参数 'package; rm -rf /' 含非法字符"
防止重复加载同一服务:
command + args 完全匹配示例:
# 第一次调用
connect_mcp(mode="remote", source="https://mcp.context7.com/mcp")
# 返回: "[Success] ..."
# 第二次调用相同 URL
connect_mcp(mode="remote", source="https://mcp.context7.com/mcp/")
# 返回: "无需重复连接:已连接到远程服务 https://mcp.context7.com/mcp"
问题 1:[System] 找不到命令 'npx'
原因:系统未安装 Node.js。
解决:提示用户安装 Node.js,或使用 bash skill 先执行 node --version 确认环境。
问题 2:[Error] 加载 MCP 失败: Connection timeout
原因:
解决:
问题 3:工具加载成功但 Agent 没有调用新工具
原因:ADK 的工具列表更新需要在下一轮对话时生效。
解决:确保 connect_mcp 成功返回后,Agent 在下一次思考时会自动看到新工具。如果仍未调用,可能是工具描述不够清晰或用户需求表述不明确。
最佳实践:在动态加载前,先用 bash skill 确认环境。
Step 1: Environment Check
Tool: bash(command="node --version", timeout=5)
Result: "v20.10.0"
Step 2: Install if Needed
Tool: bash(command="npm install -g @modelcontextprotocol/server-git", timeout=60)
Step 3: Dynamic Load
Tool: connect_mcp(mode="local", source="npx", args=["-y", "@..."])
重要提示:
agent 实例,修改 agent.tools 不会影响其他用户McpToolset 管理)通用流程模板:
User: "我想试用一个叫 [SERVICE_NAME] 的 MCP 工具"
Agent 执行:
1. web_search("[SERVICE_NAME] mcp server installation")
2. 分析搜索结果,识别连接方式
3. 如果是 URL → connect_mcp(mode="remote", source="URL")
4. 如果是命令 → 拆解后 connect_mcp(mode="local", ...)
5. 等待工具加载成功提示
6. 探索新工具的功能并完成用户任务
为了让 Agent 正确使用此 Skill,建议在 System Prompt 中添加:
### 动态 MCP 能力扩展
你可以使用 `connect_mcp` 工具来扩展你的能力。使用步骤:
1. **先搜索**:使用搜索引擎查找目标 MCP 的安装或连接方式。
2. **后连接**:
- **远程服务**(HTTP URL)→ `connect_mcp(mode="remote", source="URL")`
- **本地包**(npx/python 命令)→ `connect_mcp(mode="local", source="npx", args=[...])`
3. **参数构造**:
- 将搜索到的命令字符串拆解为列表
- 例如:`npx -y pkg arg` → `args=["-y", "pkg", "arg"]`
- 如果需要 API Key,通过 `env_vars` 参数传入
4. **使用新工具**:连接成功后,下一轮思考时即可看到并使用新工具。
运行时工具注入:
get_tools(agent, ...) 获取当前 agent 实例agent.tools.append(new_toolset) 直接修改运行中的工具列表agent.tools,将新工具 Schema 发送给 LLMMcpToolset 自动发现:
McpToolset 对象被添加到工具列表后,ADK 会自动调用其内部的工具发现机制tools/list JSON-RPC 请求获取工具定义此 Skill 不包含额外的 scripts/references/assets 资源,因为:
tools.py 中如果未来需要扩展,可以添加:
references/mcp_registry.json:预定义的常用 MCP 服务列表scripts/validate_mcp.py:MCP 服务健康检查脚本