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

e18e-module-replacements-mcp

v1.0.0

Published

MCP server exposing e18e module replacement data for AI assistants

Readme

e18e Module Replacements MCP Server

An MCP (Model Context Protocol) server that exposes e18e module replacement data. It helps AI assistants suggest lighter, faster, or native alternatives to common JavaScript/Node.js packages.

What it does

The e18e project ("ecosystem performance") maintains curated lists of JavaScript module replacements — lighter alternatives, native API equivalents, and simple code snippets that can eliminate unnecessary dependencies.

This MCP server fetches three manifests from the e18e/module-replacements repository at startup and exposes them as tools:

| Manifest | Description | Example | |----------|-------------|---------| | native.json | Features replaceable by native browser/Node.js APIs | is-arrayArray.isArray() | | micro-utilities.json | Tiny packages replaceable by code snippets | array-flattenarray.flat(Infinity) | | preferred.json | Modules with better, lighter alternatives | axiosfetch / ofetch / ky |

Prerequisites

Installation

Option 1: Use directly with npx (no install needed)

No installation required — just reference it in your MCP config (see below). The package is fetched and run automatically.

Option 2: Global install

npm install -g e18e-module-replacements-mcp

Option 3: Build from source

git clone https://github.com/santoshyadavdev/e18e-module-replacements-mcp.git
cd e18e-module-replacements-mcp
npm install
npm run build

Configuration

Add the server to your AI assistant's MCP configuration. The examples below use npx so there's nothing to install. If you installed globally or built from source, replace npx with the path to the binary.

Claude Desktop

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "e18e-module-replacements": {
      "command": "npx",
      "args": ["-y", "e18e-module-replacements-mcp"]
    }
  }
}

Then restart Claude Desktop.

VS Code (GitHub Copilot)

Create or edit .vscode/mcp.json in your workspace (or add to your user settings):

{
  "servers": {
    "e18e-module-replacements": {
      "command": "npx",
      "args": ["-y", "e18e-module-replacements-mcp"]
    }
  }
}

Cursor

Open Cursor Settings → MCP and add a new server:

  • Name: e18e-module-replacements
  • Type: command
  • Command: npx -y e18e-module-replacements-mcp

Windsurf

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

{
  "mcpServers": {
    "e18e-module-replacements": {
      "command": "npx",
      "args": ["-y", "e18e-module-replacements-mcp"]
    }
  }
}

Tools

lookup_replacement

Search for a replacement by feature name, API name, or module name. Searches across all three manifests with case-insensitive partial matching.

Input:

{ "name": "axios" }

Example output:

## axios
**Source:** preferred
**Type:** module
**Replacements:** fetch, ofetch, ky
**URL:** https://e18e.dev/guide/module-replacements/fetch

More examples:

| Query | What you get | |-------|-------------| | "axios" | Preferred replacements: fetch, ofetch, ky | | "Array.from" | Native API — link to MDN docs | | "deep-merge" | Preferred replacements: defu, @fastify/deepmerge | | "array-flatten" | Micro-utility snippet: array.flat(Infinity) |

scan_dependencies

Scan a dependency map (like the dependencies field from package.json) and find which packages have recommended replacements.

Input:

{
  "dependencies": {
    "axios": "^1.6.0",
    "chalk": "^5.3.0",
    "express": "^4.18.0",
    "lodash": "^4.17.21"
  }
}

Example output:

Found 3 dependency replacement(s):

- **axios** → fetch, ofetch, ky
  https://e18e.dev/guide/module-replacements/fetch
- **chalk** → picocolors, ansis
  https://e18e.dev/guide/module-replacements/chalk
- **lodash** → es-toolkit
  https://e18e.dev/guide/module-replacements/lodash

Usage tips

Once the MCP server is connected to your AI assistant, you can ask things like:

  • "Is there a lighter alternative to chalk?"
  • "Scan my package.json dependencies for replacements"
  • "What's the native replacement for is-array?"
  • "Can I replace moment with something smaller?"

The AI assistant will automatically use the lookup_replacement and scan_dependencies tools to answer.

Development

npm run dev   # Watch mode — rebuilds on file changes

How it works

  1. On startup, the server fetches all three e18e manifests from GitHub
  2. Manifests are cached in memory for the lifetime of the server process
  3. The server communicates over stdio using the MCP protocol
  4. If a manifest fails to load (e.g., no internet), the server still starts — tools will return an error message for the missing data source

License

MIT