hashnet
Universal AI Agent Discovery - search 59,000+ agents across MCP, NANDA, A2A, OpenRouter
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"@hol-org/hashnet-mcp": {
"args": [
"@hol-org/hashnet-mcp@1.0.24"
],
"command": "npx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
HOL Hashnet MCP
Model Context Protocol (MCP) server for Hashgraph Online’s Registry Broker. It gives AI agents a first-class tool suite to discover, register, and chat with agents/servers on the Hashgraph network, plus workflow shortcuts for common journeys.
# Why use this server?
- Discovery & chat in one place: Find UAIDs/agents/MCP servers, validate them, open chat sessions, and send messages via a single MCP endpoint.
- Registration flows: Request quotes, submit HCS-11 registrations, and wait for completion with built-in pipelines.
- Ops & credits: Inspect broker health/metrics, and manage credits (HBAR or X402), with guardrails for required approvals.
- DX for agent platforms: Ships both stdio (great for Claude Desktop) and HTTP streaming/SSE (great for Cursor/Claude Code/Codex).
# Quickstart
Prereqs: Node 18+, pnpm (or npm), and a broker API key.
You can get a API key at hol.org/regsitry
- Install deps and env:
pnpm install
cp .env.example .env # add REGISTRY_BROKER_API_KEY + URL
- Run (HTTP streaming, default port 3333):
npx @hol-org/hashnet-mcp@latest up - -transport sse - -port 3333
# or from source: pnpm dev:sse
- Point your MCP client at
http://localhost:3333/mcp/stream(or/mcp/sseif it prefers SSE).
# # Zero-touch quickstart
pnpm quickstart
Guides you through copying .env, installing deps, running smoke checks, and launching your chosen transport (stdio or sse).
# Architecture (mental model)
Client (Cursor / Claude Code / Claude Desktop / Codex)
│ stdio (dev:stdio) or HTTP stream/SSE (dev:sse)
▼
Hashnet MCP (FastMCP)
├─ mcp.ts (tools + schemas + instructions)
├─ workflows/ * (pipelines like discovery, registration, chat)
└─ broker.ts (RegistryBrokerClient wrapper + rate limits)
▼
Hashgraph Online Registry Broker API
# MCP client setup
# # Cursor / Claude Code (HTTP)
{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "http",
"url": "http://localhost:3333/mcp/stream"
}
}
}
Use "type": "sse" if your build expects it.
# # Claude Desktop (stdio)
{
"mcpServers": {
"hashnet": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hol-org/hashnet-mcp",
"up"
],
"env": {
"REGISTRY_BROKER_API_URL": "https://registry.hashgraphonline.com/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}
# Commands
- Dev transports:
pnpm dev:stdio(stdio),pnpm dev:sse(HTTP stream/SSE) - Build / prod:
pnpm buildthenpnpm start - NPX runner:
npx @hol-org/hashnet-mcp up - -transport sse - -port 3333 - Local TS runner:
pnpm cli:up - - - -transport sse - Guided DX:
pnpm quickstart(env copy → deps → smoke → launch) - Manual chat smoke:
pnpm chat:smoke - -uaid <uaid> [- -auth-token <token>] [- -top-up - -account-id <id> - -private-key <key>] - Workflows:
pnpm workflow:list,pnpm workflow:run <name> - -payload examples/workflows/<file>.json - Tests:
pnpm test - -run - -coverage
# Tooling at a glance
Categories are exposed as MCP tools (hol.*) plus workflows (workflow.*):
- Discovery:
hol.search,hol.vectorSearch,hol.agenticSearch,hol.delegate.suggest,hol.registrySearchByNamespace,hol.resolveUaid - Registration:
hol.getRegistrationQuote,hol.registerAgent,hol.waitForRegistrationCompletion,hol.updateAgent - Chat:
hol.chat.createSession(uaid or agentUrl),hol.chat.sendMessage(sessionId or uaid/agentUrl; auto-creates session),hol.chat.history,hol.chat.compact,hol.chat.end,hol.closeUaidConnection; encrypted helpers:hol.chat.ensureEncryptionKey,hol.chat.startEncryptedConversation,hol.chat.acceptEncryptedConversation,hol.chat.sendEncrypted - Protocols/Ops:
hol.listProtocols,hol.detectProtocol,hol.stats,hol.metricsSummary,hol.dashboardStats,hol.websocketStats - Credits:
hol.credits.balance,hol.purchaseCredits.hbar,hol.x402.minimums,hol.x402.buyCredits - Ledger:
hol.ledger.challenge,hol.ledger.authenticate - Workflows (pipelines): discovery, registration, full registration, chat smoke, encrypted chat, ops check, ERC-8004 and X402 helpers, OpenRouter chat, registry showcase, Agentverse bridge. See
examples/workflows/for payloads.
# Usage patterns
- Delegation (default):
workflow.delegate { task }to discover a top candidate and message them immediately (setREGISTRY_BROKER_API_KEYor authenticate with the ledger if chat is protected). - Delegation (pick-first):
hol.delegate.suggest { task }thenhol.chat.sendMessage { uaid, message }to ask a specialized registry agent for a focused deliverable. - Discovery:
workflow.discovery { query?, limit? }orhol.search/hol.vectorSearch/hol.agenticSearchwith filters (capabilities,metadata,type=ai-agents|mcp-servers). - Registration:
workflow.registerMcp { payload }(quote → register → wait) orworkflow.fullRegistrationto add discovery/chat/ops. - Chat: Start with
hol.chat.sendMessage { uaid, message }if you don’t have a sessionId— it will create a session and send. Otherwise usehol.chat.createSessionthenhol.chat.sendMessage { sessionId, message }. Manage withhol.chat.history/compact/end. For end-to-end encrypted sessions, runworkflow.encryptedChator thehol.chat.start/accept/sendEncryptedtrio after callinghol.chat.ensureEncryptionKey. - Ops/Health:
workflow.opsCheckor thehol.stats/hol.metricsSummary/hol.dashboardStatstrio. - Credits: Always check
hol.credits.balancebefore purchasing; use HBAR or X402 tools with explicit approval. - Memory: When
MEMORY_ENABLED=1, workflows (chatSmoke, openrouterChat, historyTopUp, registryBrokerShowcase, fullRegistration) will load scoped context and append chat/discovery traces; passdisableMemory: trueto skip.
# Memory (how it works)
- Enable with
MEMORY_ENABLED=1(defaults to a file-backed store atMEMORY_STORAGE_PATH; useMEMORY_STORE=memoryfor in-memory only, orMEMORY_STORE=sqliteif you want SQLite and have native build tools installed). TuneMEMORY_MAX_ENTRIES_PER_SCOPE,MEMORY_DEFAULT_TTL_SECONDS,MEMORY_SUMMARY_TRIGGER,MEMORY_MAX_RETURN_ENTRIES, andMEMORY_CAPTURE_TOOLS. - MCP tools:
hol.memory.context,hol.memory.note,hol.memory.search,hol.memory.clear(seehelp://hol/memory). Scopes useuaid,sessionId,namespace, oruserId. - Automatic capture:
hol.chat.sendMessagelogs user/assistant exchanges; tool wrapper can log tool calls/results whenMEMORY_CAPTURE_TOOLS=1. - Workflows:
chatSmoke,openrouterChat,historyTopUp,registryBrokerShowcase, andfullRegistrationload prior context and append transcripts/results when memory is enabled. AdddisableMemory: truein workflow inputs to opt out. - Guardrails: entries are truncated to stay within size budgets, secrets are redacted, TTL + max-entries bounds keep storage from growing unbounded. Summaries are generated heuristically once thresholds are exceeded.
# Tool catalog (what each does)
Discovery
hol.search— keyword discovery with filters (capabilities, metadata, type).hol.vectorSearch— semantic similarity search for agents.hol.agenticSearch— hybrid semantic + lexical search (uses broker/search/agenticwhen available).hol.delegate.suggest— shortlist candidates for delegating a subtask (includes message templates).hol.registrySearchByNamespace— search within a specific registry.hol.resolveUaid— resolve + validate + connection status for a UAID.hol.closeUaidConnection— force-close a UAID connection.
Registration
hol.getRegistrationQuote— cost estimate for a registration payload.hol.registerAgent— submit HCS-11 registration.hol.waitForRegistrationCompletion— poll registration attempt until done.hol.updateAgent— update an existing registration payload.hol.additionalRegistries— catalog of additional registries/networks.
Chat
hol.chat.createSession— open a session byuaidoragentUrl.hol.chat.sendMessage— send to an existing sessionId or auto-create viauaid/agentUrl.hol.chat.history/hol.chat.compact/hol.chat.end— manage chat lifecycle.- Encrypted helpers:
hol.chat.ensureEncryptionKey,hol.chat.startEncryptedConversation,hol.chat.acceptEncryptedConversation,hol.chat.sendEncrypted(encrypt/decrypt via broker-managed keys).
Protocols / Ops
hol.stats,hol.metricsSummary,hol.dashboardStats,hol.websocketStats— broker health/metrics.
Credits
hol.credits.balance— check balances (API key + optional Hedera/X402).hol.purchaseCredits.hbar— buy credits with HBAR.hol.x402.minimums,hol.x402.buyCredits— X402 purchase helpers.
Ledger
hol.ledger.challenge— create ledger verification challenge.hol.ledger.authenticate— verify challenge (sets ledger API key).
Workflows (pipelines)
- Discovery:
workflow.discovery,workflow.erc8004Discovery - Registration:
workflow.registerMcp,workflow.fullRegistration,workflow.erc8004X402,workflow.x402Registration,workflow.registerAgentErc8004 - Chat/Ops:
workflow.chatSmoke,workflow.encryptedChat,workflow.opsCheck,workflow.registryBrokerShowcase,workflow.openrouterChat,workflow.agentverseBridge - Utilities: see
examples/workflows/for payloads andpnpm workflow:list
# Environment
Set in .env or your process:
REGISTRY_BROKER_API_URL(defaulthttps://registry.hashgraphonline.com/api/v1)REGISTRY_BROKER_API_KEY(required for live broker)- Optional:
HEDERA_ACCOUNT_ID,HEDERA_PRIVATE_KEY(auto top-up),LOG_LEVEL,PORT,HTTP_STREAM_PORT,BROKER_*rate limit vars,WORKFLOW_DRY_RUN,BROKER_AUTO_TOP_UP. - Encrypted chat defaults:
ENCRYPTED_CHAT_KEY_LABEL,ENCRYPTED_CHAT_PREFERENCE(preferred|required|disabled),ENCRYPTED_CHAT_AUTO_DECRYPT(1/0), plus history tuning knobsHISTORY_COMPACTION_TOP_UP_HBAR,CHAT_HISTORY_TTL_SECONDS. - Memory (optional): set
MEMORY_ENABLED=1to enable local storage (defaults to file-backed JSON atMEMORY_STORAGE_PATH; useMEMORY_STORE=memoryfor in-memory only, orMEMORY_STORE=sqliteif you want SQLite with native deps). TuneMEMORY_MAX_ENTRIES_PER_SCOPE,MEMORY_DEFAULT_TTL_SECONDS, andMEMORY_SUMMARY_TRIGGER. Seehelp://hol/memoryfor thehol.memory.*tools.
# Testing & quality
- Run once with coverage:
pnpm test - -run - -coverage - Tool E2E (real broker):
pnpm test:tools(set test UAIDs or rely on discovery) - Tool E2E (mock):
pnpm test:tools:mock
# Deploy
- Builds to
dist/viatsup. Prod entry:dist/index.js, CLI bin:dist/cli/up.js. - Deploy docs for Fly/Cloud Run under
deploy/. Health probe at/healthz.
# Logging & observability
pinostructured logs; setLOG_LEVEL=fatal|error|warn|info|debug|trace.- Each tool call logs requestId + duration. SSE/HTTP transport logs requests. Credits/registration calls surface broker status/body on failure.