@demystify/tools-mcp
v0.1.0
Published
Local MCP (stdio) server — deterministic Demystify tool engines, zero network. The AI passes input; golden-verified engines compute the output.
Maintainers
Readme
@demystify/tools-mcp
A local MCP (Model Context Protocol) server that exposes the Demystify tool engines to any MCP client (Claude Desktop, IDE agents, …) over stdio.
The AI passes structured input; a golden-verified engine computes the output.
No model is invoked inside the tool, so results are deterministic and never
hallucinated — an LLM asking gst-calculator for ₹1,000 at 18% gets exactly
₹1,180.00 every time, computed by the same engine the website uses. And it runs
with zero network access — the engines and their schemas are bundled.
Run
# from a published install
npx demystify-tools-mcp
# from this repo
pnpm --filter @demystify/tools-mcp build
node packages/mcp/dist/cli.jsClaude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"demystify-tools": { "command": "demystify-tools-mcp" }
}
}What it exposes
Every tool that has a pure engine binding (@demystify/tools-engines/api) —
the same zod I/O the web app, REST API and self-hosted runner use. Today that is
the verified pure-lane set (JSON/base64/hash/UUID/JWT, epoch & cron, GST/GSTIN/
UPI/gold/amount-to-words, JSON→CSV/TS/Schema). The list grows one batch at a time
as more engines are bound; the server always mirrors the bindings.
Each tool's inputSchema is derived from its zod schema (a client hint); every
call is still validated against the real zod schema server-side, and invalid
input comes back as an MCP tool error the model can read and correct.
Protocol
Implements the tools surface of MCP (initialize, tools/list, tools/call,
ping) as newline-delimited JSON-RPC 2.0 over stdio — no third-party runtime
dependencies, so the trust story (deterministic, offline, no tracking) holds end
to end. The pure handler (src/server.ts) is unit-tested independently of stdio.
Status
Pre-1.0, versioned but not yet published — see the repo's
docs/verification/user-actions.md (U19) for the publish checklist.
