Hashnet MCP (Hashgraph Online Registry Broker)

MCP server for agent discovery, registration, and chat via the Hashgraph Online Registry Broker.

Hashnet MCP JS

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.

Ecosystem

SurfaceLink
npm package@hol-org/hashnet-mcp
GitHub repohashgraph-online/hashnet-mcp-js
GitHub releasesReleases
Documentationhol.org/mcp
CodeSandboxOpen examples in browser

Quickstart

pnpm install
cp .env.example .env
pnpm dev:http

Common launch modes:

  • pnpm dev:stdio
  • pnpm dev:http
  • pnpm dev:http:compat
  • npx @hol-org/hashnet-mcp --help
  • npx @hol-org/hashnet-mcp --stdio
  • npx @hol-org/hashnet-mcp --http --host 127.0.0.1 --port 3333

When installed globally or linked locally, the binary is hashnet-mcp.

Supported Transports

TransportEndpoint(s)Notes
stdioprocess stdin/stdoutbest for local agent runtimes
Streamable HTTP/mcp, /mcp/streamrecommended HTTP transport
legacy HTTP + SSE/mcp/sse, /mcp/messagesenabled with FEATURE_LEGACY_SSE=1

Runtime utility endpoints:

  • /healthz
  • /readyz
  • /metrics

Tool Surface

  • Discovery: hol.stats, hol.capabilities, hol.search, hol.vectorSearch, hol.resolveUaid
  • Chat: hol.chat.createSession, hol.chat.sendMessage, hol.chat.history, hol.chat.end
  • Registration: hol.getRegistrationQuote, hol.registerAgent, hol.waitForRegistrationCompletion
  • Workflows: workflow.discovery, workflow.delegate, workflow.registration

Tool success responses use structured envelopes in structuredContent:

  • ok
  • data
  • meta

Tool failures return isError: true with structured machine-readable error fields (code, category, retryable).

Configuration

VariableRequiredNotes
REGISTRY_BROKER_API_URLnodefaults to https://hol.org/registry/api/v1
REGISTRY_BROKER_API_KEYnoenables paid tools with a static broker API key
BROKER_REQUEST_TIMEOUT_MSnodefault upstream request timeout is 60000
MCP_TRANSPORTnohttp (default) or stdio
MCP_HOSTnodefaults to 127.0.0.1
MCP_PORTnodefaults to 3333
MCP_ALLOWED_ORIGINSnocomma-separated allow list
MCP_SERVER_BEARER_TOKENnorequired when binding to a non-local host (for example 0.0.0.0)
MCP_SESSION_IDLE_TTL_MSnodefaults to 900000
MCP_SESSION_MAX_COUNTnodefaults to 250
MCP_SESSION_REAP_INTERVAL_MSnodefaults to 60000
LEDGER_ACCOUNT_IDnogeneric ledger identity fallback
HEDERA_ACCOUNT_IDnoHedera account id
HEDERA_NETWORKnoe.g. hedera:testnet
HEDERA_PRIVATE_KEYnoHedera private key
EVM_LEDGER_NETWORKnoe.g. eip155:1
ETH_PKnoEVM private key

Security Defaults

  • Binds to 127.0.0.1 by default.
  • Validates Origin for HTTP requests when present.
  • Enforces bearer-token auth when binding to non-local hosts.
  • Reaps idle HTTP sessions and enforces max active sessions.
  • Redacts sensitive values in logs.

Development

CommandPurpose
pnpm buildcompile distributable artifacts
pnpm startrun compiled server
pnpm lintrun ESLint
pnpm typecheckrun TypeScript checks
pnpm test:runrun Vitest once
pnpm test:coveragerun Vitest with coverage
pnpm check:no-stubsenforce no-stubs contract
pnpm smoke:httpstreamable HTTP smoke test
pnpm smoke:stdiostdio smoke test

Release Notes Automation

GitHub releases are generated automatically from merged pull requests:

  • release tags are created during publish (vX.Y.Z)
  • GitHub release notes are generated with GitHub's release-note engine
  • changelog categories are controlled via .github/release.yml
  • canonical docs links are appended to each release

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension