npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

horizen-mcp

v0.1.0

Published

Horizen chain reference data for coding agents — MCP server

Readme

horizen-mcp

An MCP server that gives coding agents accurate, sourced facts about the Horizen chain — so they stop guessing.

When you ask an agent to deploy a contract on Horizen, configure a bridge, or integrate Stork oracle, it needs ground truth: the right chain ID, the right RPC URL, the right contract address. This server provides that — typed, versioned, with explicit provenance on every value. If something isn't in the registry, the agent is told so explicitly rather than making something up.


Quickstart

Claude Code

Add to ~/.claude/claude_desktop_config.json (or your project's .claude/mcp.json):

{
  "mcpServers": {
    "horizen": {
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  }
}

Claude Desktop

Same config file as Claude Code — ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "horizen": {
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "horizen": {
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "horizen": {
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  }
}

Cline (VS Code)

Open the Cline extension → MCP Servers tab → Edit MCP Settings → add:

{
  "mcpServers": {
    "horizen": {
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  }
}

Continue (VS Code / JetBrains)

Add to ~/.continue/config.json:

{
  "mcpServers": [
    {
      "name": "horizen",
      "command": "npx",
      "args": ["-y", "horizen-mcp"]
    }
  ]
}

Zed

Add to ~/.config/zed/settings.json:

{
  "context_servers": {
    "horizen": {
      "command": {
        "path": "npx",
        "args": ["-y", "horizen-mcp"]
      }
    }
  }
}

Restart your editor after saving. The server starts on demand — no separate process to manage.


What you can ask

Once connected, your agent has access to Horizen chain facts through natural language:

Network info

"What's the Horizen mainnet chain ID and RPC URL?" "Give me the testnet explorer URL for Horizen."

Contract addresses

"What's the Stork oracle address on Horizen?" "What's the PureFi verifier proxy address I should integrate against?" "Is Uniswap deployed on Horizen mainnet?"

Oracle feeds

"What's the Stork feed ID for ETHUSD on Horizen?" "How do I derive a Stork feed ID for a custom asset?"

Bridges

"How do I bridge assets to Horizen?" "Does Stargate support ETH on Horizen?"

Integrations

"How do I integrate Stork oracle on Horizen?" "Can I use Den from the command line, or is it browser-only?" "Where are the Goldsky indexing docs for Horizen?"

Docs search

"Search the Horizen docs for compliance gating." "Find the Horizen tutorial for setting up a multisig."


Tools

| Tool | What it does | |---|---| | get_chain_info | Chain ID, RPC/WS URLs, explorer, gas token, settlement layer for mainnet or testnet | | get_contract_address | Verified address for a given contract + network. Returns explicit not-found on miss — never fabricates. | | list_contracts | All contracts in the registry with per-network deployment status | | get_stork_feed_id | Stork oracle feed ID for an asset (e.g. ETHUSD), computed via keccak256 | | get_bridge_info | Bridge URLs, supported assets, and caveats — native bridge vs. Stargate | | get_integration_info | Docs paths, access method, status for Stork, Goldsky, PureFi, Den | | search_docs | Live search across docs.horizen.io with title, URL, and excerpt |

Every response includes a source field and a verified date. If a value isn't in the registry, the agent gets an explicit not-found with a list of what is known — never a guess.


Run from source

git clone https://github.com/horizenio/horizen-mcp
cd horizen-mcp
npm install
npm run build
node dist/index.js

To point your editor at a local build instead of npm:

{
  "mcpServers": {
    "horizen": {
      "command": "node",
      "args": ["/path/to/horizen-mcp/dist/index.js"]
    }
  }
}

Development

npm run dev        # watch mode — recompiles on save
npm run inspect    # MCP Inspector UI for interactive tool testing

The Inspector lets you call any tool directly and inspect the full JSON response before connecting to an editor.


Data

All facts live in data/chain-facts.json. Tool handlers query this file — nothing is hardcoded in source. To update a value, edit that file and run npm run build.

Every entry carries a source (URL or attribution) and a verified date. Values that haven't been confirmed are left as null rather than guessed — the tool will tell the agent the value is unknown rather than returning something fabricated.


Contributing

See CONTRIBUTING.md for how to add contracts, integrations, or tools.


License

MIT