Ovanek MCP
A hand-rolled Model Context Protocol server (JSON-RPC 2.0 over stdio,
protocol version 2025-06-18) exposing the Ovanek platform's tools.
- Read tools query the platform API and the ERC-8004 registries. They aim at
whatever
ACM_BASE_URL points to (default http://127.0.0.1:5000).
- Write tools are DRY-RUN BY DEFAULT — they return the exact payload they
would send, to nowhere. A real write requires
MCP_ALLOW_WRITES=1 and a
local ACM_BASE_URL; writes against a remote deployment are refused unless the
operator also sets MCP_ALLOW_REMOTE_WRITES=1.
- No key material lives in this process. Sign with the Ovanek SDK
(
@ovanek/sdk) and pass the finished signature in.
Environment
ACM_BASE_URL | Platform base URL (default local dev server). |
MCP_ALLOW_WRITES | 1 allows dryRun: false writes. |
MCP_ALLOW_REMOTE_WRITES | 1 allows writes against a non-local ACM_BASE_URL. |
MCP_SERVER_INVOKED | Set 0 to import the module without starting the stdio loop (test seam). |
Run from source
NODE_OPTIONS="--dns-result-order=ipv4first" \
npx tsx --conditions=react-server mcp/server.ts
Build / pack
prepack bundles mcp/server.ts (with the SDK inlined) to
dist/server.js, which carries a #!/usr/bin/env node shebang and is exposed
as the ovanek-mcp bin.
npm run build --prefix mcp
npm pack ./mcp --dry-run
viem is a peer dependency. Not published — see the repository root
README.md.