e18e-module-replacements-mcp
v1.0.0
Published
MCP server exposing e18e module replacement data for AI assistants
Maintainers
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-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 |
Prerequisites
- Node.js >= 18
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-mcpOption 3: Build from source
git clone https://github.com/santoshyadavdev/e18e-module-replacements-mcp.git
cd e18e-module-replacements-mcp
npm install
npm run buildConfiguration
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/fetchMore 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/lodashUsage 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 changesHow it works
- On startup, the server fetches all three e18e manifests from GitHub
- Manifests are cached in memory for the lifetime of the server process
- The server communicates over stdio using the MCP protocol
- 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
