Use plugins

Existing MCP packages

Give agents a tool from PyPI, npm or a remote MCP server without writing code.

There are thousands of MCP servers already. A plugin can point at one instead of shipping code of its own.

From PyPI

oz0-plugin.yaml
tools:
  - id: fetch
    package: pypi:mcp-server-fetch==2026.8.18
    affinity: any

Each pypi: package gets a virtual environment of its own, built with uv on the node. The node starts it with the package's own name as the command; when the command differs, set it with mcp:

  - id: git
    package: pypi:mcp-server-git==<version>
    mcp: ["mcp-server-git", "--repository", "/srv/repo"]

From npm

oz0-plugin.yaml
tools:
  - id: everything
    package: npm:@modelcontextprotocol/server-everything@<version>

npm packages run on Node.js 24 LTS, which the node installs on first use. Install scripts do not run, and the package starts as node <bin script>, without a shell.

A remote server

oz0-plugin.yaml
tools:
  - id: search
    url: https://mcp.example.com/mcp

Remote MCP servers are reached over Streamable HTTP. Use https://; plugin lint warns about http://.

Pinning

A package without a version is pinned by the edge to the newest version the registry lists at install time, so every node runs the same one. plugin lint warns about unpinned packages; pin them yourself to know exactly what runs.

oci: (container images) and binary: (a downloaded executable) packages are accepted by the manifest but not run yet; the node skips them with a warning.

Copyright © 2026