Hashnet MCP (Hashgraph Online Registry Broker)
Servidor MCP para descubrimiento, registro y chat de agentes a través del Hashgraph Online Registry Broker.
Documentación
Hashnet MCP JS
Servidor MCP universal para descubrimiento, chat, registro, créditos y automatización de flujos de trabajo en el ecosistema HOL Registry Broker.
Ecosistema
| Superficie | Enlace |
|---|---|
| Paquete npm | @hol-org/hashnet-mcp |
| Repositorio GitHub | hashgraph-online/hashnet-mcp-js |
| Lanzamientos GitHub | Lanzamientos |
| Documentación | hol.org/mcp |
| CodeSandbox | Abrir ejemplos en el navegador |
Inicio rápido
pnpm install
cp .env.example .env
pnpm dev:http
Modos de lanzamiento comunes:
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
Cuando se instala globalmente o se enlaza localmente, el binario es hashnet-mcp.
Transportes Soportados
| Transporte | Punto(s) de conexión | Notas |
|---|---|---|
| stdio | proceso stdin/stdout | mejor para entornos de ejecución de agentes locales |
| HTTP Streamable | /mcp, /mcp/stream | transporte HTTP recomendado |
| HTTP + SSE heredado | /mcp/sse, /mcp/messages | habilitado con FEATURE_LEGACY_SSE=1 |
Puntos de conexión de utilidad en tiempo de ejecución:
/healthz/readyz/metrics
Superficie de Herramientas
- Descubrimiento:
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 - Registro:
hol.getRegistrationQuote,hol.registerAgent,hol.waitForRegistrationCompletion - Flujos de trabajo:
workflow.discovery,workflow.delegate,workflow.registration
Las respuestas exitosas de las herramientas utilizan sobres estructurados en structuredContent:
okdatameta
Los fallos de las herramientas devuelven isError: true con campos de error estructurados legibles por máquina (code, category, retryable).
Configuración
| Variable | Requerida | Notas |
|---|---|---|
REGISTRY_BROKER_API_URL | no | por defecto https://hol.org/registry/api/v1 |
REGISTRY_BROKER_API_KEY | no | habilita herramientas de pago con una clave API estática del broker |
BROKER_REQUEST_TIMEOUT_MS | no | el tiempo de espera predeterminado de solicitudes ascendentes es 60000 |
MCP_TRANSPORT | no | http (predeterminado) o stdio |
MCP_HOST | no | por defecto 127.0.0.1 |
MCP_PORT | no | por defecto 3333 |
MCP_ALLOWED_ORIGINS | no | lista de permitidos separada por comas |
MCP_SERVER_BEARER_TOKEN | no | requerido al vincular a un host no local (por ejemplo 0.0.0.0) |
MCP_SESSION_IDLE_TTL_MS | no | por defecto 900000 |
MCP_SESSION_MAX_COUNT | no | por defecto 250 |
MCP_SESSION_REAP_INTERVAL_MS | no | por defecto 60000 |
LEDGER_ACCOUNT_ID | no | respaldo genérico de identidad de ledger |
HEDERA_ACCOUNT_ID | no | ID de cuenta de Hedera |
HEDERA_NETWORK | no | p. ej. hedera:testnet |
HEDERA_PRIVATE_KEY | no | clave privada de Hedera |
EVM_LEDGER_NETWORK | no | p. ej. eip155:1 |
ETH_PK | no | clave privada EVM |
Valores Predeterminados de Seguridad
- Se vincula a
127.0.0.1por defecto. - Valida
Originpara solicitudes HTTP cuando está presente. - Aplica autenticación con token de portador al vincular a hosts no locales.
- Recolecta sesiones HTTP inactivas y aplica un máximo de sesiones activas.
- Redacta valores sensibles en los registros.
Desarrollo
| Comando | Propósito |
|---|---|
pnpm build | compilar artefactos distribuibles |
pnpm start | ejecutar servidor compilado |
pnpm lint | ejecutar ESLint |
pnpm typecheck | ejecutar comprobaciones de TypeScript |
pnpm test:run | ejecutar Vitest una vez |
pnpm test:coverage | ejecutar Vitest con cobertura |
pnpm check:no-stubs | aplicar contrato sin stubs |
pnpm smoke:http | prueba de humo HTTP streamable |
pnpm smoke:stdio | prueba de humo stdio |
Automatización de Notas de Lanzamiento
Los lanzamientos de GitHub se generan automáticamente a partir de solicitudes de extracción fusionadas:
- las etiquetas de lanzamiento se crean durante la publicación (
vX.Y.Z) - las notas de lanzamiento de GitHub se generan con el motor de notas de lanzamiento de GitHub
- las categorías del registro de cambios se controlan mediante
.github/release.yml - los enlaces canónicos de documentación se añaden a cada lanzamiento