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

@tscafejr/mcp

v0.3.0

Published

MCP servers by TScafeJR.

Readme

@tscafejr/mcp

MCP servers by TScafeJR, distributed as a single npm package with one bin per server.

Installation (consumers)

Wire a server into any MCP client config:

{
  "mcpServers": {
    "visualizer": {
      "command": "npx",
      "args": ["-y", "@tscafejr/mcp", "mcp-visualizer"]
    }
  }
}

Available servers

| Bin | Source | Description | | ----------------- | ---------------------------- | ---------------------------------------------------------------------------- | | mcp-visualizer | src/servers/visualizer.ts | Puppeteer-driven screenshots, typing, and network/console diagnostics. Framework-agnostic — works with Vite, Next.js, CRA, Netlify dev, deploy previews, etc. |

mcp-visualizer configuration

Target URL is resolved in this order (highest to lowest):

  1. Per-call base_url arg — full URL, e.g. https://my-site.netlify.app or http://localhost:8888.
  2. Per-call port arg — localhost shorthand.
  3. MCP_DEV_SERVER_URL env — full base URL.
  4. MCP_DEV_SERVER_HOST + MCP_DEV_SERVER_PORT env.
  5. Default: http://localhost:3000.

Example MCP client configs:

// Vite project
{ "mcpServers": { "visualizer": {
  "command": "npx", "args": ["-y", "@tscafejr/mcp", "mcp-visualizer"],
  "env": { "MCP_DEV_SERVER_PORT": "5173" }
}}}

// Netlify dev
{ "mcpServers": { "visualizer": {
  "command": "npx", "args": ["-y", "@tscafejr/mcp", "mcp-visualizer"],
  "env": { "MCP_DEV_SERVER_PORT": "8888" }
}}}

// Remote deploy preview
{ "mcpServers": { "visualizer": {
  "command": "npx", "args": ["-y", "@tscafejr/mcp", "mcp-visualizer"],
  "env": { "MCP_DEV_SERVER_URL": "https://preview-123.example.com" }
}}}

Adding a new server

  1. Create src/servers/<name>.ts. Start with a shebang so the built file is directly executable:

    #!/usr/bin/env node
    import { Server } from "@modelcontextprotocol/sdk/server/index.js";
    import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
    // ...
  2. Add one line to the bin map in package.json:

    "bin": {
      "mcp-visualizer": "dist/servers/visualizer.js",
      "mcp-<name>": "dist/servers/<name>.js"
    }
  3. Build and run locally:

    npm run build
    npm run dev <name>     # tsx, no build step
    npm run start <name>   # runs the built dist/ output

That's it — chmod-bins.js reads package.json on every build and marks all bin outputs executable, so new entries pick up automatically.

Add the new row to the table above so consumers know what's available.

Releasing

The release script prompts for the bump type (major / minor / patch), runs npm version, builds, publishes, and pushes the commit + tag to your git remote.

npm run release

Equivalent manual steps if you'd rather drive it yourself:

npm version patch          # or: minor / major — bumps, commits, tags
npm publish                # prepublishOnly rebuilds dist/
git push --follow-tags     # if/when this dir has a git remote

First-time publish prerequisites:

npm login                  # auth as a user with publish rights to @tscafejr
git init && git add -A && git commit -m "init"   # npm version requires a clean git tree

publishConfig.access is set to public so the scoped package publishes without --access public.