Back to the catalog

io.github.hashgraph-online/hashnet

Universal AI Agent Discovery - search 59,000+ agents across MCP, NANDA, A2A, OpenRouter

Open source Open in the app JSON README (API)

About

Universal AI Agent Discovery - search 59,000+ agents across MCP, NANDA, A2A, OpenRouter

Details

Kind
MCP servers
Topic
AI, RAG & memory
Publisher
hashgraph-online
Origin
official
Category
ferramentas
Transport
local
Version
1.0.24
Stars
13
Forks
4
Open pull requests
1
Last push
2026-09-06T18:55:54Z
Repository state
ativo
Language
TypeScript
License
NOASSERTION
Added
2026-08-29 03:02:56
Updated
2026-08-29 03:02:56
Origin id
io.github.hashgraph-online/hashnet

README

# Hashnet MCP JS

[![npm version](https://img.shields.io/npm/v/%40hol-org%2Fhashnet-mcp?logo=npm)](https://www.npmjs.com/package/@hol-org/hashnet-mcp)
[![npm downloads](https://img.shields.io/npm/dm/%40hol-org%2Fhashnet-mcp?logo=npm)](https://www.npmjs.com/package/@hol-org/hashnet-mcp)
[![Node version](https://img.shields.io/node/v/%40hol-org%2Fhashnet-mcp)](https://www.npmjs.com/package/@hol-org/hashnet-mcp)
[![Bundle size](https://img.shields.io/bundlephobia/minzip/%40hol-org%2Fhashnet-mcp)](https://bundlephobia.com/package/@hol-org/hashnet-mcp)
[![Publish](https://github.com/hashgraph-online/hashnet-mcp-js/actions/workflows/publish.yml/badge.svg?branch=master)](https://github.com/hashgraph-online/hashnet-mcp-js/actions/workflows/publish.yml)
[![Canary](https://github.com/hashgraph-online/hashnet-mcp-js/actions/workflows/publish-canary.yml/badge.svg?branch=master)](https://github.com/hashgraph-online/hashnet-mcp-js/actions/workflows/publish-canary.yml)
[![License](https://img.shields.io/github/license/hashgraph-online/hashnet-mcp-js)](https://github.com/hashgraph-online/hashnet-mcp-js/blob/master/LICENSE)
[![CodeSandbox](https://img.shields.io/badge/CodeSandbox-Open-151515?logo=codesandbox)](https://codesandbox.io/p/sandbox/github/hashgraph-online/hashnet-mcp-js/tree/master)

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`](https://www.npmjs.com/package/@hol-org/hashnet-mcp) |
| GitHub repo | [hashgraph-online/hashnet-mcp-js](https://github.com/hashgraph-online/hashnet-mcp-js) |
| GitHub releases | [Releases](https://github.com/hashgraph-online/hashnet-mcp-js/releases) |
| Documentation | [hol.org/mcp](https://hol.org/mcp) |
| CodeSandbox | [Open examples in browser](https://codesandbox.io/p/sandbox/github/hashgraph-online/hashnet-mcp-js/tree/master) |

## Quickstart

```bash
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

| 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`:

- `ok`
- `data`
- `meta`

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.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

| 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

More