io.github.hashgraph-online/hashnet
Universal AI Agent Discovery - search 59,000+ agents across MCP, NANDA, A2A, OpenRouter
Ask AI about io.github.hashgraph-online/hashnet
Powered by Claude · Grounded in docs
I know everything about io.github.hashgraph-online/hashnet. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Hashnet 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.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:
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
