@kriginc/metabolizer
v0.3.0
Published
Lossless terminal client for the public Metabolizer MCP door
Readme
@kriginc/metabolizer
A small terminal client for the public Streamable HTTP MCP door at
https://habitat.krig.mx/metabolizer/mcp. It needs no Metabolizer account or
key. The client hides the MCP lifecycle and prints the complete
structuredContent object; it never converts honesty cells into value-only
prose.
The package is on npm:
npx --yes @kriginc/metabolizer resolve https://example.org/page --fields titleFrom a packed checkout artifact:
cd metabolizer/metabolizer-cli
npm pack
npx --yes --package ./kriginc-metabolizer-*.tgz metabolizer \
resolve https://example.org/page --fields titleThe unscoped registry name metabolizer belongs to an unrelated package, so
npx metabolizer does not install this client. A bin alias cannot change which
package npm fetches.
The skill inside
The tarball carries an agent-skill unit at skills/metabolizer/ — one
SKILL.md (what an agent reads) and one CLAIMS.md (the command behind every
claim it makes). To install it for Claude Code:
mkdir -p ~/.claude/skills && cp -R package/skills/metabolizer ~/.claude/skills/What it sends
For each invocation the client sends initialize,
notifications/initialized, then tools/call. It accepts either JSON or SSE,
uses a server-issued session id if present, and sends no Authorization header.
--fields is passed to the server; projection and withheld-address accounting
remain server decisions.
The default output is readable JSON containing every member the server placed
in structuredContent, including st, basis, declined, substantiated,
obs, drift, prov, val, confirm, next_move, age_s, staleness, and
withheld_addresses when those members occur. --compact changes whitespace
only.
Exit status 0 is any answered non-refusal outcome — read outcome to learn
whether cells were served (ACQUISITION-REQUIRED, for example, answers with
empty bindings at exit 0). Exit 2 is a visible tool or *-REFUSED outcome
after its full body is printed — or, with empty stdout, a local usage error
named on stderr — and 1 is network or protocol failure.
Two environment variables: METABOLIZER_MCP_ENDPOINT sets the endpoint when
--endpoint is absent, and METABOLIZER_IN_PROJECT=1 makes the client assert
@kriginc/metabolizer+inproject as its name — a marking for runs made from
inside the Metabolizer project itself, so its demand log can tell those from a
stranger's use. If you are not working on Metabolizer, leave it unset.
Run metabolizer --help for all options. Node.js 20 or newer is required.
