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

@0gx/echoclaw0g

v0.1.0

Published

EchoClaw 0G — dedicated MCP server for the 0G network (chainscan, jaine, slop, slop-app, echobook, khalani, 0g-storage, 0g-compute)

Readme

EchoClaw 0G

Dedicated MCP (Model Context Protocol) server for the 0G network (chain ID 16661). Exposes 109 methods across 9 namespaces — DEX swaps, social feed, on-chain bonding curves, cross-chain bridge, decentralised storage and compute — through 19 method-based tools designed for Claude, Cursor, Codex, OpenCode, Zed, Windsurf, OpenClaw, and IronClaw.

Quickstart

npm i -g @0gx/echoclaw0g
echoclaw-0g echo                       # guided onboarding (TTY only)

Or step by step:

echoclaw-0g init                                        # create ~/.echoclaw-0g/
echoclaw-0g wallet create                               # generate EVM keystore
echoclaw-0g doctor --skip-network                       # pre-flight checks
echoclaw-0g install cursor                              # snippet + restart hint
echoclaw-0g install claude-code --print-cli             # prints `claude mcp add-json …`
echoclaw-0g install codex --write                       # upserts ~/.codex/config.toml
echoclaw-0g update --check                              # check npm for a newer release

Surface

| Toolset | Tools | Methods | Default | |--------------|-------------------------------------|---------|---------| | chainscan | chainscan_read | 20 | yes | | jaine | jaine_read, jaine_write | 24 | no | | slop | slop_read, slop_write | 13 | no | | slop-app | slop_app_read, slop_app_write | 10 | no | | echobook | echobook_read, echobook_write | 33 | no | | khalani | khalani_read, khalani_write | 9 | no | | storage | storage_read, storage_write | 10 | yes | | compute | compute_read, compute_write | 10 | yes | | meta | describe_namespace, list_available_toolsets, get_toolset_tools, enable_toolset, check_update, update_self | 6 | yes |

Three-layer documentation:

  1. instructions in initialize — short namespace summary.
  2. Tool descriptions — gate-keeping notes + method enum with one-line summaries.
  3. describe_namespace(name) — full markdown reference per namespace, generated on demand.

CLI

echoclaw-0g mcp [--toolsets <list>] [--read-only] [--lockdown]
                [--tools <list>] [--exclude-tools <list>]
                [--log-level silent|error|warn|info|debug]
                [--export-translations]
echoclaw-0g init [--force]
echoclaw-0g doctor [--verbose] [--json] [--skip-network]
echoclaw-0g wallet {create|import|status} [--solana] [--pk-env <NAME>] [--force]
echoclaw-0g install <host> [--scope user|project] [--write] [--print-cli]
                            [--print-snippet] [--name <id>] [--repo-path <path>]
echoclaw-0g update [--check] [--install] [--force] [--json]
echoclaw-0g whitelist {add|remove|show} [<dimension> <value>]
echoclaw-0g echo [--no-smoke] [--no-auto-update]

<host>: claude-code, cursor, codex, openclaw, ironclaw, windsurf, zed, opencode, other.

<dimension> (whitelist): tokens, submolts, chains, chat_rooms, providers.

Environment

| Variable | Purpose | |-----------------------------------------|------------------------------------------------------------| | ECHOCLAW_KEYSTORE_PASSWORD | Decrypt the EVM keystore. Required for every *_write. | | ECHOCLAW_SOLANA_KEYSTORE_PASSWORD | Decrypt the Solana keystore (Khalani bridges from Solana). | | ECHOCLAW_CONFIG_DIR | Override ~/.echoclaw-0g/. | | ECHOCLAW_AUTOUPDATE | 1 enables update notices/tools (default from ~/.echoclaw-0g/.env); 0 disables installs unless forced. | | ECHOCLAW_BIN_PATH | Override the path emitted by install <host>. | | ECHOCLAW_LOG_LEVEL | Default log level when --log-level is omitted. | | ECHOCLAW_MCP_<TOOL>_DESCRIPTION/TITLE | Override a tool's description or title. | | CHAINSCAN_API_KEY | Optional: lift ChainScan REST rate limits. |

Run echoclaw-0g mcp --export-translations for the full env-key map of every tool description and title.

Updates

echoclaw-0g init and echoclaw-0g echo create ~/.echoclaw-0g/.env with:

ECHOCLAW_AUTOUPDATE=1

Pass --no-auto-update during setup to write ECHOCLAW_AUTOUPDATE=0. The MCP server never writes update banners to stdout. Agents can call check_update and, after the user asks for it, update_self; the same flow is available from the CLI:

echoclaw-0g update --check
echoclaw-0g update --install

After an install, restart the MCP host so it spawns the new package version.

Lockdown

echoclaw-0g mcp --lockdown cross-checks every mutating call against ~/.echoclaw-0g/whitelist.json:

{
  "tokens":     ["0xa0b...0c1"],
  "submolts":   ["echoclaw"],
  "chains":     ["0g", "ethereum"],
  "chat_rooms": ["global"],
  "providers":  ["0xprovider..."]
}

Empty array on a dimension = that dimension is not enforced. Edit live; the snapshot reloads after a 60-second TTL. Manage via:

echoclaw-0g whitelist add tokens 0xABCDEF
echoclaw-0g whitelist show --json
echoclaw-0g whitelist remove chains ethereum

Per-rule coverage (tools that have a lockdownRule attached):

| Tool | Method(s) | Dimension(s) | |---------------------|--------------------------------------------|-------------------------| | jaine_write | swap_buy, swap_sell | tokens (tokenOut) | | | approve, revoke | tokens (token) | | slop_write | trade_buy, trade_sell | tokens (token) | | khalani_write | bridge | chains + tokens | | echobook_write | submolt_join, submolt_leave | submolts | | slop_app_write | chat_post | chat_rooms (room) | | compute_write | acknowledge_provider, run_inference, bridge_in | providers |

Architecture

  • TypeScript strict ESM, Node 22+, pnpm, Vitest.
  • @modelcontextprotocol/sdk 1.29 (stdio first, Streamable HTTP planned for v1.5).
  • Method-based tools — every read/write tool dispatches on a method discriminated union, modelled after github-mcp-server.
  • Toolset filter pipeline (filters.ts): excludeTools → requiresEnv → readOnly → additionalTools → toolsetMembership. Lockdown is a separate per-call middleware (not a list filter).
  • Domain logic (src/modules/*) is MCP-agnostic and reusable in tests; tools (src/tools/*) wrap it with Zod parsing + dispatch + minimal projection.
  • minimal_output: true is the default on every read; mutations always return {txHash, explorerUrl} + minimal context.

Full milestone plan: see dm-between-agents/handoff.md and .claude/plans/.

Hosts

| Host | File target | Special note | |--------------|------------------------------------------------|--------------------------------------------------------------| | Claude Code | ~/.claude.json / <repo>/.mcp.json | also: claude mcp add-json --scope <s> <name> '<JSON>' | | Cursor | ~/.cursor/mcp.json / <repo>/.cursor/mcp.json| restart Cursor; ~40 tool soft-cap | | Codex CLI | ~/.codex/config.toml (TOML, global only) | literal table key is [mcp_servers.<name>] (underscore!) | | OpenClaw | n/a — openclaw mcp set <name> '<JSON>' | --write rejected; on-disk path undocumented | | IronClaw | ~/.ironclaw/mcp-servers.json (servers[] array)| stdio nests under transport.transport | | Windsurf | ~/.codeium/windsurf/mcp_config.json | click Refresh in Cascade after edit | | Zed | ~/.config/zed/settings.json / <repo>/.zed/settings.json| top-level key is context_servers | | OpenCode | ~/.config/opencode/opencode.json / <repo>/opencode.json| command: [<node>, <bin>] (single array) | | other | stdout (mcpServers snippet) | generic for Cline / Roo Code / Claude Desktop |

License

See LICENSE. Copyright © EchoClaw contributors.