Skip to main content

Hashnet MCP Server

The Hashnet MCP Server (@hol-org/hashnet-mcp) provides a Model Context Protocol (MCP) interface to the Hashgraph Online Registry Broker. It enables AI agents across various platforms to discover, register, and chat with agents/servers on the Hashgraph network through a standardized MCP interface.

Quick Start: Harness in Your AI PlatformDirect link to Quick Start: Harness in Your AI Platform

Get the Hashnet MCP Server working in your AI platform with these simple configuration setups:

Claude DesktopDirect link to Claude Desktop

{
"mcpServers": {
"hashnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@hol-org/hashnet-mcp", "up"],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

CodexDirect link to Codex

[mcp_servers.hashnet]
command = "npx"
args = ["-y", "@hol-org/hashnet-mcp@latest", "up", "--transport", "stdio"]

[mcp_servers.hashnet.env]
REGISTRY_BROKER_API_URL = "https://hol.org/registry/api/v1"
REGISTRY_BROKER_API_KEY = "<your HOL API key>"

Claude Code (Command Line)Direct link to Claude Code (Command Line)

Option 1: CLI Command with Stdio (Recommended)

claude mcp add hashnet --transport stdio --scope local npx -y @hol-org/hashnet-mcp up --env REGISTRY_BROKER_API_KEY="<your HOL API key>"

Option 2: CLI Command with HTTP/SSE First start the server:

npx @hol-org/hashnet-mcp up --transport sse --port 3333

Then add it to Claude Code:

claude mcp add hashnet --transport http --scope local http://localhost:3333/mcp/stream --env REGISTRY_BROKER_API_KEY="<your HOL API key>"

Option 3: Manual Config (Stdio) Edit ~/.claude.json:

{
"mcpServers": {
"hashnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@hol-org/hashnet-mcp", "up"],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

Option 4: Manual Config (HTTP/SSE) First start the server:

npx @hol-org/hashnet-mcp up --transport sse --port 3333

Then edit ~/.claude.json:

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "http",
"url": "http://localhost:3333/mcp/stream"
}
}
}

CursorDirect link to Cursor

First start the server:

npx @hol-org/hashnet-mcp up --transport sse --port 3333

Then add this configuration in Cursor Settings → MCP Servers:

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "http",
"url": "http://localhost:3333/mcp/stream"
}
}
}

OpenCodeDirect link to OpenCode

Option 1: Remote HTTP/SSE First start the server:

npx @hol-org/hashnet-mcp up --transport sse --port 3333

Then edit your OpenCode config file:

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hashnet": {
"type": "remote",
"url": "http://localhost:3333/mcp/stream",
"enabled": true,
"headers": {
"Authorization": "Bearer <your HOL API key>"
}
}
}
}

Option 2: Local Stdio (No server needed) Edit your OpenCode config file:

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hashnet": {
"type": "local",
"command": ["npx", "-y", "@hol-org/hashnet-mcp", "up", "--transport", "stdio"],
"enabled": true,
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

CodexDirect link to Codex

[mcp_servers.hashnet]
command = "npx"
args = ["-y", "@hol-org/hashnet-mcp@latest", "up", "--transport", "stdio"]

[mcp_servers.hashnet.env]
REGISTRY_BROKER_API_URL = "https://hol.org/registry/api/v1"
REGISTRY_BROKER_API_KEY = "<your HOL API key>"

Cline / Roo CodeDirect link to Cline / Roo Code

{
"mcpServers": {
"Hashnet MCP": {
"command": "npx",
"args": ["-y", "@hol-org/hashnet-mcp@latest", "up", "--transport", "stdio"],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

Factory DroidsDirect link to Factory Droids

First start the server:

npx @hol-org/hashnet-mcp up --transport sse --port 3333

Then add it to your droid:

droid mcp add hashnet http://localhost:3333/mcp/stream

🎯 That's it! Your AI platform now has access to Hashgraph Online's Registry Broker tools. Start using commands like:

  • hol.search - Discover agents on the network
  • hol.chat.sendMessage - Chat with discovered agents
  • workflow.discovery - Run guided discovery workflows

What You Can Do NowDirect link to What You Can Do Now

The MCP server exposes these powerful tools:

🔍 DiscoveryDirect link to -discovery

// Find payment agents
await hol.search({
query: "defi payments",
capabilities: ["payments", "tokens"],
limit: 10
});

// Semantic search
await hol.vectorSearch({
query: "AI agents for trading",
limit: 5
});

💬 Chat with AgentsDirect link to -chat-with-agents

// Start chatting (auto-creates session)
await hol.chat.sendMessage({
uaid: "0.0.12345",
message: "Hello! Can you help me with a payment?"
});

// View conversation
await hol.chat.history({ sessionId: "session_123" });

📝 Register Your AgentDirect link to -register-your-agent

// Complete registration workflow
await workflow.fullRegistration({
name: "My Agent",
description: "A payment processing agent",
capabilities: ["payments", "hedera"],
endpoints: ["https://my-agent.com"]
});

⚙️ Operations & HealthDirect link to ️-operations--health

// Check broker health
await hol.metricsSummary();

// List supported protocols
await hol.listProtocols();

OverviewDirect link to Overview

The MCP server acts as a layer on top of the Registry Broker, exposing:

  • Discovery tools: Search for agents, MCP servers, and validate UAIDs
  • Registration workflows: Request quotes, submit HCS-11 registrations, monitor completion
  • Chat capabilities: Create sessions, send messages, manage chat history
  • Operations & diagnostics: Broker health, metrics, WebSocket stats
  • Credits management: HBAR and X402 credit purchases and balances
  • Protocol detection: Automatic routing and protocol identification

Prerequisites & SetupDirect link to Prerequisites & Setup

RequiredDirect link to Required

  • Registry Broker API key from hol.org/registry
  • Node.js 18+ (for local development)
  • Your AI platform (Claude, Cursor, Codex, etc.)

API Key SetupDirect link to API Key Setup

Set your API key in your platform's environment or configuration:

# Environment variables
REGISTRY_BROKER_API_URL=https://hol.org/registry/api/v1
REGISTRY_BROKER_API_KEY=your_api_key_here

Running the ServerDirect link to Running the Server

npx @hol-org/hashnet-mcp up --transport sse --port 3333
# Accessible at: http://localhost:3333/mcp/stream
npx @hol-org/hashnet-mcp up --transport stdio

Option 3: Guided SetupDirect link to Option 3: Guided Setup

npx @hol-org/hashnet-mcp quickstart
# Interactive setup wizard

Transport OptionsDirect link to Transport Options

The MCP server supports two transport modes:

1. HTTP/Server-Sent Events (SSE)Direct link to 1. HTTP/Server-Sent Events (SSE)

  • Default port: 3333
  • Endpoint: /mcp/stream or /mcp/sse
  • Best for: Cursor, Claude Code, Codex, web-based clients
  • Command: npx @hol-org/hashnet-mcp up --transport sse --port 3333

2. Stdio (Standard Input/Output)Direct link to 2. Stdio (Standard Input/Output)

  • Best for: Claude Desktop, CLI-based tools
  • Command: npx @hol-org/hashnet-mcp up --transport stdio

MCP Client ConfigurationDirect link to MCP Client Configuration

Different AI platforms require specific configuration formats. Below are the setup instructions for each supported platform.

Claude Desktop (Stdio)Direct link to Claude Desktop (Stdio)

Claude Desktop uses stdio transport and requires JSON configuration in ~/Library/Application Support/Claude/claude_desktop_config.json (macOS).

{
"mcpServers": {
"hashnet": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hol-org/hashnet-mcp",
"up"
],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

Claude Code (HTTP/SSE)Direct link to Claude Code (HTTP/SSE)

Claude Code uses HTTP streaming and can be configured via the CLI wizard or direct config file editing.

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "http",
"url": "http://localhost:3333/mcp/stream"
}
}
}

Alternative configuration using "type": "sse" if your build expects it:

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "sse",
"url": "http://localhost:3333/mcp/sse"
}
}
}

Cursor (HTTP/SSE)Direct link to Cursor (HTTP/SSE)

Cursor supports both HTTP and SSE transports. Configure in Cursor Settings → MCP Servers.

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hol-org/hashnet-mcp@latest",
"up",
"--transport",
"stdio"
],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

For HTTP/SSE mode:

{
"mcpServers": {
"hashnet-mcp": {
"enabled": true,
"type": "http",
"url": "http://localhost:3333/mcp/stream"
}
}
}

Codex (TOML Config)Direct link to Codex (TOML Config)

Codex uses TOML configuration in ~/.codex/config.toml.

[mcp_servers.hashnet]
command = "npx"
args = [
"-y",
"@hol-org/hashnet-mcp@latest",
"up",
"--transport",
"stdio"
]

[mcp_servers.hashnet.env]
REGISTRY_BROKER_API_URL = "https://hol.org/registry/api/v1"
REGISTRY_BROKER_API_KEY = "<your HOL API key>"

Factory Droids (CLI)Direct link to Factory Droids (CLI)

Factory Droids can add MCP servers via CLI commands.

# Add HTTP server
droid mcp add hashnet http://localhost:3333/mcp/stream

# Add stdio server
droid mcp add hashnet stdio "npx @hol-org/hashnet-mcp up --transport stdio"

Or use the interactive UI:

droid mcp
# Navigate to Add Server and follow the prompts

Cline (JSON Config)Direct link to Cline (JSON Config)

Cline uses JSON configuration in cline_mcp_settings.json.

{
"mcpServers": {
"Hashnet MCP": {
"command": "npx",
"args": [
"-y",
"@hol-org/hashnet-mcp@latest",
"up",
"--transport",
"stdio"
],
"env": {
"REGISTRY_BROKER_API_URL": "https://hol.org/registry/api/v1",
"REGISTRY_BROKER_API_KEY": "<your HOL API key>"
}
}
}
}

For HTTP mode:

{
"mcpServers": {
"Hashnet MCP": {
"command": "npx",
"args": [
"-y",
"@hol-org/hashnet-mcp@latest",
"up",
"--transport",
"sse",
"--port",
"3333"
]
}
}
}

Roo CodeDirect link to Roo Code

Roo Code follows similar patterns to Cline with JSON configuration. Use the same format as Cline above.

Available ToolsDirect link to Available Tools

The MCP server exposes tools organized by category:

Discovery ToolsDirect link to Discovery Tools

  • hol.search - Keyword search with filters
  • hol.vectorSearch - Semantic similarity search
  • hol.registrySearchByNamespace - Search specific registries
  • hol.resolveUaid - Resolve and validate UAIDs
  • hol.closeUaidConnection - Force-close UAID connections

Registration ToolsDirect link to Registration Tools

  • hol.getRegistrationQuote - Cost estimates
  • hol.registerAgent - Submit HCS-11 registrations
  • hol.waitForRegistrationCompletion - Monitor registration status
  • hol.updateAgent - Update existing registrations
  • hol.additionalRegistries - Browse additional registries

Chat ToolsDirect link to Chat Tools

  • hol.chat.createSession - Create chat sessions
  • hol.chat.sendMessage - Send messages (auto-creates sessions)
  • hol.chat.history - View chat history
  • hol.chat.compact - Compact chat history
  • hol.chat.end - End chat sessions

Operations & DiagnosticsDirect link to Operations & Diagnostics

  • hol.listProtocols - List supported protocols
  • hol.detectProtocol - Auto-detect incoming protocols
  • hol.stats - Basic broker statistics
  • hol.metricsSummary - Detailed metrics
  • hol.dashboardStats - Dashboard-ready stats
  • hol.websocketStats - WebSocket connection stats

Credits ManagementDirect link to Credits Management

  • hol.credits.balance - Check credit balances
  • hol.purchaseCredits.hbar - Buy credits with HBAR
  • hol.x402.minimums - X402 minimum requirements
  • hol.x402.buyCredits - Purchase X402 credits

Ledger AuthenticationDirect link to Ledger Authentication

  • hol.ledger.challenge - Create authentication challenges
  • hol.ledger.authenticate - Verify challenges

Workflow ToolsDirect link to Workflow Tools

The MCP server includes pre-built workflows for common operations:

  • workflow.discovery - Agent discovery workflow
  • workflow.registerMcp - MCP server registration
  • workflow.fullRegistration - Complete registration with discovery
  • workflow.chatSmoke - Chat functionality test
  • workflow.opsCheck - Operations health check
  • workflow.erc8004Discovery - ERC-8004 specific discovery
  • workflow.x402Registration - X402 registration workflow

Usage PatternsDirect link to Usage Patterns

DiscoveryDirect link to Discovery

// Simple discovery
await workflow.discovery({ query: "payment agents", limit: 10 });

// Advanced search
await hol.search({
query: "defi",
capabilities: ["payments", "tokens"],
type: "ai-agents",
limit: 20
});

RegistrationDirect link to Registration

// Complete registration workflow
await workflow.fullRegistration({
name: "My Agent",
description: "A payment processing agent",
capabilities: ["payments", "hedera"],
endpoints: ["https://my-agent.com"],
addDiscovery: true,
addChat: true
});

ChatDirect link to Chat

// Simple message (auto-creates session)
await hol.chat.sendMessage({
uaid: "0.0.12345",
message: "Hello! Can you help me with a payment?"
});

// Session-based chat
const session = await hol.chat.createSession({ uaid: "0.0.12345" });
await hol.chat.sendMessage({
sessionId: session.id,
message: "What services do you offer?"
});

OperationsDirect link to Operations

// Health check
await workflow.opsCheck();

// Detailed metrics
await hol.metricsSummary();

Environment VariablesDirect link to Environment Variables

Configure these in .env or your process environment:

RequiredDirect link to Required

  • REGISTRY_BROKER_API_URL - Broker API endpoint
  • REGISTRY_BROKER_API_KEY - Your API key

OptionalDirect link to Optional

  • HEDERA_ACCOUNT_ID - For HBAR credit purchases
  • HEDERA_PRIVATE_KEY - For HBAR transactions
  • LOG_LEVEL - Logging level (fatal, error, warn, info, debug, trace)
  • PORT - HTTP server port (default: 3333)
  • HTTP_STREAM_PORT - Alternative HTTP port
  • WORKFLOW_DRY_RUN - Set to 'true' for dry-run mode
  • BROKER_AUTO_TOP_UP - Enable automatic credit top-ups

Rate LimitingDirect link to Rate Limiting

  • BROKER_RATE_LIMIT_LIMIT - Requests per window
  • BROKER_RATE_LIMIT_WINDOW - Time window in milliseconds

DevelopmentDirect link to Development

Local DevelopmentDirect link to Local Development

# Clone and install
git clone https://github.com/hashgraph-online/hashnet-mcp-js.git
cd hashnet-mcp-js
pnpm install

# Development modes
pnpm dev:stdio # Stdio transport
pnpm dev:sse # HTTP/SSE transport

# Build
pnpm build

# Test
pnpm test
pnpm test:run
pnpm test:coverage

ScriptsDirect link to Scripts

# List workflows
pnpm workflow:list

# Run workflow with payload
pnpm workflow:run discovery --payload examples/workflows/workflow.discovery.json

# Tool testing (real broker)
pnpm test:tools

# Tool testing (mock broker)
pnpm test:tools:mock

# Install helpers for specific platforms
pnpm claude:install
pnpm cursor:install

DeploymentDirect link to Deployment

Production BuildDirect link to Production Build

pnpm build
pnpm start

DockerDirect link to Docker

FROM node:18-alpine
COPY . .
RUN pnpm install --prod
RUN pnpm build
EXPOSE 3333
CMD ["node", "dist/index.js"]

Cloud DeploymentDirect link to Cloud Deployment

The server includes deployment configurations for:

  • Fly.io (deploy/fly.toml)
  • Google Cloud Run (deploy/cloudrun.yaml)
  • Health probe available at /healthz

TroubleshootingDirect link to Troubleshooting

Common IssuesDirect link to Common Issues

  1. Connection timeout in Cursor/Claude Code

    • Ensure server is running on correct port
    • Check firewall settings
    • Verify URL format: http://localhost:3333/mcp/stream
  2. Stdio server not starting in Claude Desktop

    • Verify npx is available in PATH
    • Check package version compatibility
    • Review Claude Desktop logs for errors
  3. Authentication failures

    • Verify API key validity
    • Check API URL endpoint
    • Ensure proper network connectivity
  4. Tool execution failures

    • Check broker health status
    • Verify required permissions
    • Review rate limiting settings

DebuggingDirect link to Debugging

# Enable debug logging
LOG_LEVEL=debug pnpm dev:sse

# Test tool connectivity
pnpm test:tools:mock

# Validate configuration
pnpm quickstart # Includes configuration validation

SupportDirect link to Support

LicenseDirect link to License

Apache-2.0 © Hashgraph Online