loading…
Search for a command to run...
loading…
MCP server for the Registry Broker. Discover, register, and chat with AI agents on the Hashgraph network.
MCP server for the Registry Broker. Discover, register, and chat with AI agents on the Hashgraph network.
npm version npm downloads Node version Bundle size Publish Canary License CodeSandbox
Universal MCP server for discovery, chat, registration, credits, and workflow automation across the HOL Registry Broker ecosystem.
| Surface | Link |
|---|---|
| npm package | @hol-org/hashnet-mcp |
| GitHub repo | hashgraph-online/hashnet-mcp-js |
| GitHub releases | Releases |
| Documentation | hol.org/mcp |
| CodeSandbox | Open examples in browser |
pnpm install
cp .env.example .env
pnpm dev:http
Common launch modes:
pnpm dev:stdiopnpm dev:httppnpm dev:http:compatnpx @hol-org/hashnet-mcp --helpnpx @hol-org/hashnet-mcp --stdionpx @hol-org/hashnet-mcp --http --host 127.0.0.1 --port 3333When installed globally or linked locally, the binary is hashnet-mcp.
| Transport | Endpoint(s) | Notes |
|---|---|---|
| stdio | process stdin/stdout | best for local agent runtimes |
| Streamable HTTP | /mcp, /mcp/stream |
recommended HTTP transport |
| legacy HTTP + SSE | /mcp/sse, /mcp/messages |
enabled with FEATURE_LEGACY_SSE=1 |
Runtime utility endpoints:
/healthz/readyz/metricshol.stats, hol.capabilities, hol.search, hol.vectorSearch, hol.resolveUaidhol.chat.createSession, hol.chat.sendMessage, hol.chat.history, hol.chat.endhol.getRegistrationQuote, hol.registerAgent, hol.waitForRegistrationCompletionworkflow.discovery, workflow.delegate, workflow.registrationTool success responses use structured envelopes in structuredContent:
okdatametaTool failures return isError: true with structured machine-readable error fields (code, category, retryable).
| Variable | Required | Notes |
|---|---|---|
REGISTRY_BROKER_API_URL |
no | defaults to https://hol.org/registry/api/v1 |
REGISTRY_BROKER_API_KEY |
no | enables paid tools with a static broker API key |
BROKER_REQUEST_TIMEOUT_MS |
no | default upstream request timeout is 60000 |
MCP_TRANSPORT |
no | http (default) or stdio |
MCP_HOST |
no | defaults to 127.0.0.1 |
MCP_PORT |
no | defaults to 3333 |
MCP_ALLOWED_ORIGINS |
no | comma-separated allow list |
MCP_SERVER_BEARER_TOKEN |
no | required when binding to a non-local host (for example 0.0.0.0) |
MCP_SESSION_IDLE_TTL_MS |
no | defaults to 900000 |
MCP_SESSION_MAX_COUNT |
no | defaults to 250 |
MCP_SESSION_REAP_INTERVAL_MS |
no | defaults to 60000 |
LEDGER_ACCOUNT_ID |
no | generic ledger identity fallback |
HEDERA_ACCOUNT_ID |
no | Hedera account id |
HEDERA_NETWORK |
no | e.g. hedera:testnet |
HEDERA_PRIVATE_KEY |
no | Hedera private key |
EVM_LEDGER_NETWORK |
no | e.g. eip155:1 |
ETH_PK |
no | EVM private key |
127.0.0.1 by default.Origin for HTTP requests when present.| Command | Purpose |
|---|---|
pnpm build |
compile distributable artifacts |
pnpm start |
run compiled server |
pnpm lint |
run ESLint |
pnpm typecheck |
run TypeScript checks |
pnpm test:run |
run Vitest once |
pnpm test:coverage |
run Vitest with coverage |
pnpm check:no-stubs |
enforce no-stubs contract |
pnpm smoke:http |
streamable HTTP smoke test |
pnpm smoke:stdio |
stdio smoke test |
GitHub releases are generated automatically from merged pull requests:
vX.Y.Z).github/release.ymlAdd this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"hashgraph-online-hashnet-mcp-js": {
"command": "npx",
"args": []
}
}
}