Skip to main content
Glama
e18e-module-replacements-mcp

e18e-module-replacements-mcp

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-array → Array.isArray()

micro-utilities.json

Tiny packages replaceable by code snippets

array-flatten → array.flat(Infinity)

preferred.json

Modules with better, lighter alternatives

axios → fetch / ofetch / ky

Related MCP server: mcp-npm-tools

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.

Remote Server (Cloudflare Workers)

This MCP server can also be deployed as a remote HTTP server on Cloudflare Workers.

Local Development

npm run dev:worker

The server starts at http://localhost:8787/mcp.

Deploy

# First time: authenticate with Cloudflare
npx wrangler login

# Deploy to Workers
npm run deploy

Your server will be available at https://e18e-module-replacements-mcp.<your-account>.workers.dev/mcp.

Add to GitHub Copilot

  1. Go to your GitHub organization/repo settings → Copilot → MCP Servers

  2. Click "Add MCP Server"

  3. Label: e18e-module-replacements

  4. Server URL: https://e18e-module-replacements-mcp.<your-account>.workers.dev/mcp

  5. Authentication: None

  6. Click "Connect"

Development

npm run dev          # Watch mode — rebuilds on file changes
npm run dev:worker   # Run Workers dev server locally

How it works

  1. On startup (stdio) or first request (Workers), the server fetches all three e18e manifests from GitHub

  2. Manifests are cached in memory for the lifetime of the server process (or Workers isolate)

  3. The server communicates over stdio (local) or HTTP (Workers) 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

Available Tools

2 tools
lookup_replacementB

Search for a JavaScript module or API replacement across native APIs, micro-utilities, and preferred module mappings from the e18e project

Inputs: name (required).

scan_dependenciesB

Scan a list of dependencies (from package.json) and find which ones have recommended replacements from the e18e project

Inputs: dependencies (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct purposes: lookup_replacement searches for a specific module replacement, while scan_dependencies processes a list of dependencies. No ambiguity between them.

    Naming Consistency5/5

    Both tools follow a consistent verb_noun pattern using snake_case: lookup_replacement and scan_dependencies. The naming is predictable and uniform.

    Tool Count3/5

    With only 2 tools, the surface is thin for the domain of module replacements. While the tools cover individual lookup and bulk scanning, the count is at the lower boundary of reasonable scope.

    Completeness4/5

    The tools cover the two main use cases: searching for a single replacement and scanning a dependency list. A minor gap is the lack of a tool to list all possible replacements, but the core functionality is present.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      MCP server providing npm registry search, package details, dependency auditing, bundle size estimation, and package comparison tools for AI agents.
      5
      49 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server providing dependency and package management tools for AI agents. Analyze licenses, find outdated packages, visualize dependency trees, estimate bundle sizes, and audit security vulnerabilities.
      5
      55 npm
      MIT