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

@eastgold15/everything-mcp

v1.0.1

Published

MCP server for Everything search engine - blazing fast file search for Windows

Readme

Everything MCP Server

License MCP

Model Context Protocol server for Everything, the instant file-search engine for Windows. Wraps Everything's es.exe command-line client and exposes it as two MCP tools.

Written in TypeScript, shipped as a single ESM bundle.

Prerequisites

Windows only. Everything must be installed and runninges.exe is a client for Everything's index, not a search engine of its own.

  1. Install Everything and let it index your drives.
  2. es.exe is found automatically in the usual install locations. Set ES_PATH to override, or rely on the copy bundled in bin/ (see Bundled es.exe).

Installation

No clone, no build, no paths to fill in — point your MCP client at the published package:

{
  "mcpServers": {
    "everything": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@eastgold15/everything-mcp"]
    }
  }
}

Or with Bun:

{
  "mcpServers": {
    "everything": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@eastgold15/everything-mcp"]
    }
  }
}

ES_PATH is optional — the server finds es.exe in the usual install locations and falls back to the copy shipped inside the package. Set it only to force a specific binary:

"env": { "ES_PATH": "C:\Program Files\Everything\es.exe" }

From source

git clone https://github.com/eastgold15/everything-mcp.git
cd everything-mcp
bun install
bun run build

Then use "command": "node" with "args": ["<path>/dist/index.mjs"], or run bun link and invoke everything-mcp directly.

Tools

search

Searches the Everything index. Returns structured JSON, not raw text:

{
  "resultCount": 2,
  "truncated": false,
  "results": [
    {
      "path": "G:\api-gen\package.json",
      "name": "package.json",
      "size": 1136,
      "dateModified": "2026-08-01T01:06:03"
    }
  ]
}

resultCount: 0 means the query ran and matched nothing. A malformed query or an unreachable Everything service is reported as an error instead — the two are never conflated.

| Option | Type | Notes | |---|---|---| | query | string | Required. Everything search syntax. | | maxResults | number | Default 50, max 1000. | | regex | boolean | Treat the query as a regular expression. | | caseSensitive | boolean | Match case. | | wholeWord | boolean | Match whole words only. | | matchPath | boolean | Match the full path, not just the file name. | | foldersOnly | boolean | Folders only. Mutually exclusive with filesOnly. | | filesOnly | boolean | Files only. Mutually exclusive with foldersOnly. | | sortBy | string | name, path, size, extension, date-created, date-modified, date-accessed. | | sortDescending | boolean | Reverse the sort. | | showSize | boolean | Include size in bytes. | | showDateModified | boolean | Include modification time (ISO-8601). | | parentPath | string | Restrict to this directory and its subdirectories. Spaces need no escaping. |

get_file_info

Given a path (or bare file name), returns size, all three timestamps, and decoded attribute flags:

{
  "path": "G:\api-gen\package.json",
  "name": "package.json",
  "size": 1136,
  "dateCreated": "2026-08-01T01:03:51",
  "dateModified": "2026-08-01T01:06:03",
  "dateAccessed": "2026-08-02T18:47:34",
  "attributes": ["archive"]
}

An unindexed path is an error, not an empty result.

Query syntax

Terms are space-separated and combine with AND. The server splits the query into the separate arguments es.exe expects, so multi-term queries work as written:

name:package.json !path:node_modules      exclude a directory
*.md|*.txt                                either extension
ext:jpg;png;gif                           extension list
size:>1mb                                 larger than 1 MB
dm:today                                  modified today
path:"Program Files"                      quoted phrase, space preserved

Prefix a term with ! to exclude it. Wrap a term in double quotes to keep spaces inside it.

Development

bun install
bun test            # 62 tests
bun run type-check   # tsc --noEmit
bun run build       # packem → dist/index.mjs
bun run dev         # rebuild on change

| Path | Contents | |---|---| | src/index.ts | Server setup and tool registration — no business logic. | | src/es/ | es.exe interaction: path resolution, argv construction, execution, output parsing. | | src/tools/ | One file per MCP tool: JSON Schema plus handler. | | src/types/ | Single source of truth for interfaces. | | src/__tests__/ | Unit tests, plus end-to-end tests that skip when es.exe is absent. |

Bundled es.exe

bin/es.exe is voidtools' ES 1.1.0.27, unmodified:

It is probed last, after every system install, so a version you upgrade yourself always wins. Everything must still be running for it to return anything.

Notes on es.exe

Behaviours worth knowing, all verified against ES 1.1.0.37:

  • Search terms are separate arguments. es.exe [options] search text builds its query from multiple argv entries; it never re-splits the spaces inside one. Passing a whole query as a single argument matches nothing, silently, with exit code 0.
  • Errors go to stdout, not stderr. A bad switch prints Error 6: Unknown switch. followed by the full help text to stdout and leaves stderr empty. The exit code is the only reliable failure signal.
  • Exit code 0 covers both success and no matches. Documented non-zero codes run 1–8; 8 means the Everything client is not running.
  • -path recurses, -parent does not. -parent-path searches the parent of the given directory, which is rarely what a caller means.

Credits

License

MIT — see LICENSE.