Voiden Tool Beta
The Voiden Tool plugin lets you mark an existing request as a named, typed capability an AI agent can call directly — instead of only the six generic run/list/write/environment tools every project gets by default. Declare a /tool block once, and create_user, refund_order, search_products — whatever you name it — becomes a real, individually-described, individually-typed tool an agent can discover and call, with a verification policy deciding whether it's currently safe to serve.
Key Features
Tool Declaration
- Mark any existing request as an agent-callable tool, with its own name, title, description, and annotations (read-only, destructive, idempotent, open-world).
- A Parameters table declaring which
{{token}}in the request the agent supplies a value for on each call, with a type, required flag, and description shown to the agent. An Auto-populate params button scans the bound request and adds a row for every{{token}}it finds, so you don't have to type them in one by one. - A Verification policy: reference other requests as happy-path / error-contract / auth-check proof the tool works, each with its own mode (live / sandbox / none), optional cadence, and its own on-failure policy (withdraw or serve degraded) — set per verification row, not tool-wide. When more than one row fails at once, the most conservative policy among them wins.
- Cross-file request/verify references save a path relative to the referencing file's own project, not an absolute path baked to one machine — so they survive being cloned elsewhere.
Dynamic MCP Serving
- A verified tool is registered as a real MCP tool — by
@voiden/mcpon its own, or byvoiden-runner mcp servealongside the 6 built-in tools in CI/no-app setups — with its own name, description, and typed input schema, not a generic pass-through. - A failing tool is withdrawn from what's served by default, or kept and flagged degraded in its description, per its on-failure policy.
- A manual enabled override lets you add or remove a tool from what's served regardless of its current verification state.
Verification & Discovery from the CLI
voiden-runner tool list— discovers every/toolblock in a project.voiden-runner tool verify— runs each tool's verification requests for real and reports verified / unverified / failing, with--cadencefiltering and--json/--writeoutput modes.voiden-runner mcp serve [--http] [--check]— serves a project live over MCP (stdio or streamable-HTTP), or reports served / withdrawn / degraded / excluded without starting a session.
Load-Time Validation
A tool with an unbound or unresolved {{placeholder}}, a verification row pointing at a section that doesn't exist, a name collision with another tool, or a read-only tool whose underlying request actually mutates data is excluded from the served set entirely — reported separately from a verification failure, so you can tell "this is misconfigured" from "this is failing right now."
Block Ownership
This plugin owns 3 block types for tool identity, parameters, and verification policy:
tool ↗toolparams— the parameters table, part of the Tool blocktoolverifies— the verification table, part of the Tool block
Seeing What's Actually Served
This plugin doesn't add its own in-app preview — run voiden-mcp <path> --check (see Publishing with @voiden/mcp) to see served / withdrawn / degraded / excluded for every tool, with a reason for each, without starting a live server.
Dependencies
{
"core": ">=2.1.0",
"sdk": "1.0.10"
}