openclaw/docs/nodes
Peter Steinberger 49b5b862ac
feat: node-hosted plugins — dynamic tools, MCP servers, and skills (#90431)
* feat: node-hosted plugins — dynamic tools, MCP servers, and skills

Nodes become declarative plugin hosts:
- node.pluginTools.update: node hosts publish plugin-registered agent tool
  descriptors; gateway materializes them as agent tools executing via
  node.invoke under the node command allowlist, with tools.effective
  invalidation and node online/offline removal.
- Trusted paired-node descriptors: no gateway-side plugin registration
  required; gateway.nodes.pluginTools.enabled off-switch (default on);
  description/count caps; deterministic node-prefixed collision names.
- Declarative node-hosted MCP: nodeHost.mcp.servers (McpServerConfig shape)
  starts MCP clients on the node host, publishes tools as pluginId node-mcp,
  executes via built-in mcp.tools.call.v1 with per-layer timeouts, failure
  isolation, and orphan-safe shutdown. No re-pairing when servers change.
- Node-hosted skills: node.skills.update publishes ~/.openclaw/skills
  content (64 skills/64KB/512KB caps both sides); gateway merges them into
  the skills snapshot while connected and exec host=node is available, with
  node:// locators, node-prefixed collisions, disabled command dispatch,
  and gateway.nodes.skills.enabled + nodeHost.skills.enabled switches.
- Security: node-supplied pluginIds cannot satisfy pluginId-scoped tool
  allowlists unless gateway-registered; reserved node-mcp id requires the
  core MCP descriptor shape; protocol registry kept out of public
  plugin-sdk dts.
- E2E: pond harness proves publication, MCP round-trip, skills locator, and
  disconnect/reconnect for all three surfaces.

* style: format node-plugin-tools test

* fix(skills): keep status loader unfiltered when eligibility is passed

skills.status started passing eligibility for the node-skill merge, which
flipped loadWorkspaceSkillEntries into filtered mode and dropped disabled
skills from status reports (QA plugin-lifecycle-hot-reload timeout). Status
now merges node skills explicitly around an unfiltered load. Also: regen
docs_map for new node docs sections; add the intentional node-host MCP
onclose suppression to the lint-suppression allowlist.
2026-07-11 10:16:34 -07:00
..
audio.md fix(media): verify local STT acceleration before prioritizing it (#104210) 2026-07-11 13:58:53 +08:00
camera.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
computer-use.md docs(security): clarify computer act authorization 2026-07-10 13:06:53 -05:00
images.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
index.md feat: node-hosted plugins — dynamic tools, MCP servers, and skills (#90431) 2026-07-11 10:16:34 -07:00
location-command.md feat(android): support opt-in background location (#100967) 2026-07-06 16:36:58 +01:00
media-understanding.md chore: migrate active GPT-5.5 references to GPT-5.6 (#104452) 2026-07-11 06:30:57 -07:00
talk.md feat(voice): universal talk waveform driven by real audio levels (#102901) 2026-07-09 16:33:25 +01:00
troubleshooting.md fix(computer): prevent stale, replayed, and post-cancel desktop actions (#103422) 2026-07-10 06:47:56 +01:00
voicewake.md fix(gateway): use truncateUtf16Safe for voice-wake trigger truncation (#103210) 2026-07-10 14:41:25 +01:00