About hashnet
hashnet is an MCP server for discovering, chatting with, and registering agents in the HOL Registry Broker ecosystem. It also exposes workflow automation and supports stdio and HTTP transports.
Key features
- 01Search and vector search agents
- 02Chat sessions and message history
- 03Register agents and track completion
- 04Discovery, delegation, and registration workflows
- 05stdio and HTTP transports
Use cases
- 01Find agents by capabilities or query
- 02Start or resume agent conversations
- 03Register an agent with the registry
- 04Delegate work through a workflow
MCP support
Exposes discovery, chat, registration, and workflow tools to MCP clients. Supports stdio, Streamable HTTP, and legacy HTTP with SSE.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @hol-org/hashnet-mcpREGISTRY_BROKER_API_KEYSecretYour Registry Broker API key from https://hol.orgLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEHashnet MCP JS
Universal MCP server for discovery, chat, registration, credits, and workflow automation across the HOL Registry Broker ecosystem.
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 |
Quickstart
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 3333
When installed globally or linked locally, the binary is hashnet-mcp.
Supported Transports
| 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/metrics
Tool Surface
- Discovery:
hol.stats,hol.capabilities,hol.search,hol.vectorSearch,hol.resolveUaid - Chat:
hol.chat.readiness,hol.chat.createSession,hol.chat.sendMessage,hol.chat.retry,hol.chat.history,hol.chat.resume,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:
okdatameta
Tool failures return isError: true with structured machine-readable error fields (code, category, retryable).
Configuration
| 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 |
Security Defaults
- Binds to
127.0.0.1by default. - Validates
Originfor 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
| 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 |
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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.