@emblemvault/primitives-mcp-schemas
v0.1.0
Published
Single source of truth for the `emblem_*` MCP tool surface defined in `06-integration-contracts.md` §3.
Readme
@emblemvault/primitives-mcp-schemas
Single source of truth for the emblem_* MCP tool surface defined in 06-integration-contracts.md §3.
Every tool has a Zod schema for both its input and output. The package exports:
- The registry (
TOOLS,TOOLS_BY_NAME,TOOL_NAMES) — what nanoclaw skills iterate over to register MCP tools, and what the vault-proxy uses to gate read-only vs. signing calls. - Per-primitive schema modules (
Split,Sell,Gate,Receipt,Stake,Launch,Meter,AgentPay,Treasury,VaultProxy,Common) — for callers that want to validate one schema without pulling the whole registry. - JSON-Schema export (
buildExport()and theexport-jsonscript) — produces a static JSON file that external consumers (docs sites, codegen, third-party agents) point at.
Quick start
import { TOOLS, TOOLS_BY_NAME } from '@emblemvault/primitives-mcp-schemas';
// Validate an input before forwarding to an MCP server.
const tool = TOOLS_BY_NAME['emblem_split_simulate'];
const result = tool.input.safeParse({ configId: 'cfg-1', amount: 100, asset: 'USDC' });
if (!result.success) throw result.error;Generate the static JSON
pnpm --filter @emblemvault/primitives-mcp-schemas export-jsonWrites schemas-out/schemas.json — JSON Schema 2020-12 with one entry per tool. Gitignored; regenerate as needed.
Adding a new tool
- Define its Zod schemas in the appropriate primitive file (e.g.,
src/split.ts). - Add an entry to
TOOLSinsrc/registry.tswithname,primitive,readOnly,signing,description,input,output. - Bump the per-primitive count in
registry.test.tsso the count assertion passes. - Run
pnpm test.
The tests lock the per-primitive counts so a tool deletion can't sneak through silently.
