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

psclawmcp

v0.3.0

Published

MCP server for the OpenClaw CLI ecosystem

Downloads

151

Readme

psclawmcp

npm

MCP server for the OpenClaw CLI ecosystem. Exposes feedclaw, dustclaw, driftclaw, dietclaw, and wirewatch as tools over the Model Context Protocol, so AI assistants can use them directly.

What It Does

  • wraps existing OpenClaw CLIs as MCP tools — no library rework needed
  • spawns each CLI as a subprocess with --json for structured output
  • one MCP tool per CLI subcommand (25 tools across 5 CLIs)
  • auto-discovers tool definitions — add a new CLI by dropping a file in src/tools/
  • communicates over stdio transport

Architecture

AI Client (Claude, etc.)
    │
    │  MCP (JSON-RPC over stdio)
    │
┌───▼──────────────┐
│   psclawmcp       │
│                   │
│  ┌─────────────┐  │
│  │  MCP Server  │  │   registers tools from src/tools/*.ts
│  └──────┬──────┘  │
│         │         │
│  ┌──────▼──────┐  │
│  │   runner.ts  │  │   spawns CLI subprocess with --json
│  └──────┬──────┘  │
└─────────┼─────────┘
          │
    ┌─────▼─────┐
    │  CLI tools │   feedclaw, dustclaw, driftclaw, dietclaw
    └───────────┘

Each tool file in src/tools/ exports an array of ToolDef objects. The server loads them all at startup and registers them with the MCP SDK. When a tool is called, the runner spawns the corresponding CLI binary, passes --json plus any arguments, and returns the structured output to the client.

File Structure

psclawmcp/
├── src/
│   ├── index.ts          # CLI entry point
│   ├── server.ts         # MCP server
│   ├── config.ts         # config persistence
│   ├── registry.ts       # available tools registry
│   ├── runner.ts         # subprocess runner
│   └── tools/
│       ├── types.ts      # ToolDef interface
│       ├── index.ts      # tool aggregator
│       ├── feedclaw.ts
│       ├── dustclaw.ts
│       ├── driftclaw.ts
│       ├── dietclaw.ts
│       └── wirewatch.ts
├── tests/
│   ├── runner.test.ts
│   ├── tools.test.ts
│   ├── server.test.ts
│   ├── feedclaw.test.ts
│   ├── dustclaw.test.ts
│   ├── driftclaw.test.ts
│   ├── dietclaw.test.ts
│   └── wirewatch.test.ts
├── package.json
├── tsconfig.json
├── tsup.config.ts
├── biome.json
├── LICENSE
└── README.md

Requirements

  • Node 22+

Install

npm install -g psclawmcp

Usage

Pick which tools to enable:

psclawmcp add feedclaw
psclawmcp add dustclaw
psclawmcp list
Available tools:

  [✓] feedclaw     RSS/Atom feeds and AI digests
  [✓] dustclaw     disk space analysis
  [ ] driftclaw    deployment version drift
  [ ] dietclaw     codebase health monitoring

Remove a tool:

psclawmcp remove feedclaw

Start the MCP server:

psclawmcp start

Running psclawmcp with no arguments starts the server if tools are enabled, or shows help if none are.

Configuration is stored at ~/.psclawmcp/config.json.

MCP Client Configuration

Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "psclawmcp": {
      "command": "psclawmcp",
      "args": ["start"]
    }
  }
}

Available Tools

feedclaw — RSS/Atom feeds and AI digests

| Tool | Description | |------|-------------| | feedclaw_init | Set up default curated feeds | | feedclaw_add | Subscribe to a feed by URL | | feedclaw_remove | Unsubscribe from a feed | | feedclaw_list | List subscribed feeds | | feedclaw_fetch | Pull new articles from feeds | | feedclaw_digest | Generate AI-powered article summary | | feedclaw_opml_import | Import feeds from OPML file | | feedclaw_opml_export | Export feeds as OPML |

dustclaw — disk space analysis

| Tool | Description | |------|-------------| | dustclaw_overview | Disk usage, free space, top directories | | dustclaw_scan | Ranked list of largest files and folders | | dustclaw_wasteland | Find known dev/OS space wasters |

driftclaw — deployment version drift

| Tool | Description | |------|-------------| | driftclaw_report | Full version matrix across all environments | | driftclaw_check | Check a single service across environments | | driftclaw_drift | Show only services with version drift |

dietclaw — codebase health monitoring

| Tool | Description | |------|-------------| | dietclaw_scan | Project health report | | dietclaw_deps | Dependency analysis — outdated, unused, heavy | | dietclaw_trend | Health trends over time |

wirewatch — network traffic monitoring

| Tool | Description | |------|-------------| | wirewatch_start | Start the background capture daemon | | wirewatch_stop | Stop the background capture daemon | | wirewatch_status | Daemon status, uptime, and connection count | | wirewatch_list | List captured connections with filters | | wirewatch_show | Full details for a single connection by ID | | wirewatch_analyze | Send recent connections to AI for anomaly detection | | wirewatch_analyses | List past AI analyses with risk levels | | wirewatch_db_stats | Database statistics |

Adding a New Tool

Create a new file in src/tools/, for example src/tools/newclaw.ts:

import { z } from "zod";
import { runTool } from "../runner.js";
import type { ToolDef } from "./types.js";

const BIN = "newclaw";

export const tools: ToolDef[] = [
  {
    name: "newclaw_scan",
    title: "Scan Something",
    description: "What this tool does.",
    inputSchema: z.object({
      path: z.string().optional().describe("Target path"),
    }),
    run: async (args) => {
      const cmd = ["scan"];
      if (args.path) cmd.push(String(args.path));
      return runTool(BIN, cmd);
    },
  },
];

Then add the import to src/tools/index.ts:

import { tools as newclawTools } from "./newclaw.js";

export const allTools: ToolDef[] = [
  ...feedclawTools,
  ...dustclawTools,
  ...driftclawTools,
  ...dietclawTools,
  ...newclawTools,
];

Testing

pnpm test

Current bar:

  • 77 tests across 8 test files
  • every tool's argument mapping verified against CLI flags
  • runner tests use mocked child_process

Development

pnpm install
pnpm build
pnpm dev        # run with tsx
pnpm lint
pnpm test

Related

  • feedclaw — RSS/Atom feed reader and AI digest builder
  • dustclaw — Disk space analysis
  • driftclaw — Deployment version drift detection
  • dietclaw — Codebase health monitoring
  • wirewatch — Network traffic monitoring and AI anomaly detection

License

See MIT