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

@enclz/mcp

v0.1.0

Published

Model Context Protocol server for the Enclz agent API. Exposes 5 tools (transfer, swap, deposit, withdraw, simulate) and 3 resources (enclz://balance, enclz://limits, enclz://history) over stdio. Compatible with Claude Desktop, Cursor, Claude Code, and an

Readme

@enclz/mcp

Model Context Protocol server for the Enclz agent API. Exposes 5 tools (transfer, swap, deposit, withdraw, simulate) and 3 resources (enclz://balance, enclz://limits, enclz://history) over stdio. Works with Claude Desktop, Cursor, Claude Code, and any MCP SDK client.

Install

npx @enclz/mcp

Configuration

| Var | Required | Description | |---|---|---| | ENCLZ_API_KEY | yes | Agent API key minted by POST /api/v1/register. Surfaced once at registration; store it in a secrets manager. | | ENCLZ_API_URL | yes | Base URL of the Enclz agent API (e.g. https://enclz.com or http://localhost:3001 for local dev). |

The server exits with code 1 if either is missing.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "enclz": {
      "command": "npx",
      "args": ["-y", "@enclz/mcp"],
      "env": {
        "ENCLZ_API_KEY": "enclz_your_api_key",
        "ENCLZ_API_URL": "https://enclz.com"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in the project root):

{
  "mcpServers": {
    "enclz": {
      "command": "npx",
      "args": ["-y", "@enclz/mcp"],
      "env": {
        "ENCLZ_API_KEY": "enclz_your_api_key",
        "ENCLZ_API_URL": "https://enclz.com"
      }
    }
  }
}

Claude Code

claude mcp add enclz -- npx -y @enclz/mcp
# then set ENCLZ_API_KEY / ENCLZ_API_URL via your shell or .claude/mcp.json

What you get

Tools — actions the agent invokes

| Tool | Wraps | Purpose | |---|---|---| | transfer | POST /api/v1/transfer | Send tokens to an allow-listed recipient. | | swap | POST /api/v1/swap | Swap one token for another with a min-out guarantee. | | deposit | POST /api/v1/deposit | Deposit into an allow-listed lending venue. | | withdraw | POST /api/v1/withdraw | Withdraw from an allow-listed lending venue. | | simulate | POST /api/v1/intents/simulate | Dry-run a transfer without committing. |

Tool names are bare (transfer, not enclz_transfer); MCP clients namespace by server name. Input schemas come verbatim from openapi.json — see SKILL.md for per-tool guidance.

Resources — auto-attached to context

| URI | Wraps | Use case | |---|---|---| | enclz://balance | GET /api/v1/balance | Vault balances + remaining headroom. | | enclz://limits | GET /api/v1/limits | Active spend limits and counters. | | enclz://history | GET /api/v1/history | Recent confirmed-intent activity. |

Compliant MCP hosts pull resources every turn so the model has up-to-date balance / limits / history without burning a tool call.

Idempotency

Mutating tools accept an idempotency_key argument; if present, it is forwarded as the Idempotency-Key request header. Reuse the same key on retry — generating a new key submits a duplicate operation. Cache window: 24 hours.

The MCP layer does not auto-mint keys — that would silently defeat the contract on retry.

Errors

Tool errors come back with isError: true and a JSON body of { error: <code>, message: <prose> }. Codes are business-level (whitelist_violation, daily_limit_exceeded, idempotency_in_progress, etc); see the full list in SKILL.md. Internal stack traces and vendor-specific terminology never leak through the MCP layer.

Local development

From the repo root:

npm install                      # install workspace deps
npm run openapi:generate         # write openapi.json from Fastify routes
cd mcp
npm run build                    # prebuild syncs schemas; tsc emits dist/
ENCLZ_API_KEY=... ENCLZ_API_URL=http://localhost:3001 node dist/index.js

Smoke-test without a host using the MCP inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Layout

mcp/
  package.json              # @enclz/mcp, bin: enclz-mcp
  tsconfig.json             # NodeNext / ES2022 / strict
  index.ts                  # stdio bootstrap + handler dispatch
  tools.ts                  # 5 tool wrappers (transfer, swap, deposit, withdraw, simulate)
  resources.ts              # 3 resource wrappers (balance, limits, history)
  client.ts                 # Bearer-auth fetch wrapper, idempotency header
  scripts/
    sync-schemas.mjs        # prebuild step: derives schemas from ../openapi.json
  generated/
    schemas.ts              # auto-derived; do not hand-edit
  README.md