PluginBench
MCP Server
Active
MIT

Everything File Search MCP Server

io.github.elis132/everything-mcp

Lightning-fast Windows file search for AI agents using Everything's real-time NTFS index

What is the Everything File Search MCP server?

Everything MCP is an MCP server that exposes voidtools Everything's search capabilities to AI agents. It enables searching millions of Windows files in milliseconds using Everything's real-time NTFS index, with support for advanced query syntax, filtering, and file metadata inspection.

Everything MCP connects AI agents to voidtools Everything, a Windows file search engine that indexes NTFS in real-time. Instead of slow filesystem walks, agents can search millions of files in milliseconds using powerful query syntax (wildcards, regex, size/date ranges, content search). Use it to help find files, analyze disk usage, locate duplicates, or inspect file metadata—roughly 300x faster than naive directory traversal.

How to install Everything File Search

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "everything-mcp": {
      "command": "uvx",
      "args": [
        "everything-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • everything_search — Core search tool supporting Everything query syntax with filters for size, date, extension, path, regex, and content. Supports pagination and multiple sort options.
  • everything_search_by_type — Category-based search for audio, video, image, document, code, archive, executable, font, 3d, and data files.
  • everything_find_recent — Find files modified within a time period (1 minute to 1 year), optionally filtered by path and extension.
  • everything_file_details — Retrieve full metadata for 1-20 files, including directory contents and text file previews.
  • everything_count_stats — Get file count and size statistics without listing individual files, with optional breakdown by extension.

Use cases

  • Find all Python files modified today in a project directory
  • Analyze disk usage by file type or extension
  • Locate duplicate filenames across your system
  • Search for files matching complex criteria (size, date, regex patterns, content)
  • Quickly inspect file metadata and preview text file contents

Everything File Search MCP server FAQ

What is Everything MCP?

Everything MCP is an MCP server that gives AI agents access to voidtools Everything, a Windows file search engine. It enables searching millions of files in milliseconds using a real-time NTFS index, roughly 300x faster than filesystem walks.

Is it free?

Yes. Everything MCP is open-source (MIT license) and free. voidtools Everything is also free.

How do I install it in Claude or Cursor?

For Claude Code, run `/plugin install everything-mcp@everything-mcp`. For Claude Desktop or Cursor, add the MCP server definition to your config file (claude_desktop_config.json or Cursor's MCP settings) with command `uvx everything-mcp`.

What are the requirements?

Windows with voidtools Everything installed and running, es.exe (Everything's CLI), and Python 3.10+. You can install es.exe via winget, scoop, choco, or download from GitHub.

Does it require authentication?

No authentication required. Everything MCP communicates with Everything via the es.exe subprocess on your local machine.

What query syntax does it support?

Everything's full query syntax: wildcards (*.py), extensions (ext:py;js), paths, size ranges (size:>10mb), date filters (dm:today), regex, content search, OR queries (|), exclusions (!), and more.

README (reference)

Source of truth, from the repository.

<div align="center"> <h1>⚡ Everything MCP</h1> <p> <strong>MCP server for <a href="https://www.voidtools.com/">voidtools Everything</a> - search millions of Windows files in milliseconds from any AI agent.</strong> </p> <p> <a href="https://pypi.org/project/everything-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/everything-mcp.svg?cacheSeconds=300&v=20260204"></a> <a href="https://pypi.org/project/everything-mcp/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/everything-mcp.svg?cacheSeconds=300&v=20260204"></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/github/license/elis132/everything-mcp.svg?cacheSeconds=300&v=20260204"></a> </p> </div>

Quick start

/plugin marketplace add elis132/everything-mcp
/plugin install everything-mcp@everything-mcp

That's it for Claude Code - the plugin bundles the MCP server and a skill that teaches the query syntax. For every other client, see Installation below.

Why this one

everything-mcp (this)mamertofabian (342⭐)Josephur (26⭐)essovius
Tools51116
SetupAuto-detects es.exeManual SDK DLL pathManual HTTP server + host/portManual es.exe in PATH
Everything 1.5Auto-detects instanceNot supportedUntestedManual flag
Talks to Everything viaes.exe subprocessEverything SDK (DLL)Everything's HTTP server plugin (unauthenticated)es.exe subprocess
Tests / CIpytest, GitHub ActionsNone visibleNone visibleNone visible

Performance

es.exe (Everything's real-time NTFS index) vs. a naive filesystem walk, same query:

  • everything-mcp: 220 ms avg (5 runs)
  • Naive walk of C:\: 66,539 ms
  • ~300x faster
<details> <summary>Reproduce this benchmark</summary>
@'
import os, subprocess, time, statistics

ES = os.path.expandvars(r"%LOCALAPPDATA%\Everything\es.exe")
QUERY = "everything.exe"

es_runs = []
for _ in range(5):
    t0 = time.perf_counter()
    subprocess.run([ES, "-n", "100", QUERY], capture_output=True, text=True)
    es_runs.append((time.perf_counter() - t0) * 1000)

t0 = time.perf_counter()
matches = []
for dirpath, _, filenames in os.walk(r"C:\\"):
    for name in filenames:
        if name.lower() == QUERY:
            matches.append(os.path.join(dirpath, name))
walk_ms = (time.perf_counter() - t0) * 1000

es_avg = statistics.mean(es_runs)
print("ES avg ms:", round(es_avg, 2))
print("Walk ms:", round(walk_ms, 2))
print("Speedup x:", round(walk_ms / es_avg, 1))
print("Matches:", len(matches))
'@ | python -
</details>

Installation

Prerequisites

  1. Windows with Everything installed and running
  2. es.exe (Everything's command-line interface) - included with Everything 1.5 alpha, or install separately:
    • winget install voidtools.Everything.Cli
    • scoop install everything-cli
    • choco install es
    • or download from github.com/voidtools/es and place it in your PATH
  3. Python 3.10+ or uv

Run the server

uvx everything-mcp          # recommended, no install needed
pip install everything-mcp  # or via pip

From source:

git clone https://github.com/elis132/everything-mcp.git
cd everything-mcp && pip install -e ".[dev]"

Add it to your client

Every client below uses the same MCP server definition:

{
  "mcpServers": {
    "everything": {
      "command": "uvx",
      "args": ["everything-mcp"]
    }
  }
}
ClientHow to add it
Claude Code/plugin install everything-mcp@everything-mcp (see Quick start), or claude mcp add everything -- uvx everything-mcp
Claude DesktopPaste the JSON above into %APPDATA%\Claude\claude_desktop_config.json
Codex CLIcodex mcp add everything -- uvx everything-mcp
Gemini CLIgemini mcp add -s user everything uvx everything-mcp
Kimi CLIkimi mcp add --transport stdio everything -- uvx everything-mcp
Qwen CLIqwen mcp add -s user everything uvx everything-mcp
CursorPaste the JSON above into Cursor's MCP settings UI
WindsurfPaste the JSON above into %USERPROFILE%\.codeium\windsurf\mcp_config.json
Any other MCP clientUse the JSON above verbatim
<details> <summary>Using pip instead of uvx</summary>
{ "mcpServers": { "everything": { "command": "everything-mcp" } } }

Or with explicit Python: {"command": "python", "args": ["-m", "everything_mcp"]}

</details>

Environment variables (optional)

Everything MCP auto-detects your setup, but you can override:

VariableDescriptionExample
EVERYTHING_ES_PATHPath to es.exeC:\Program Files\Everything\es.exe
EVERYTHING_INSTANCENamed Everything instance1.5a
EVERYTHING_MAX_RESULTS_CAPHard cap on results per search (default 1000)200

Only set EVERYTHING_INSTANCE if you explicitly configured a named instance in Everything (Tools → Options → General → Instance). Most installs - including most Everything 1.5 installs - run on the default instance; setting this unnecessarily breaks the connection. If in doubt, leave it out.

{
  "mcpServers": {
    "everything": {
      "command": "uvx",
      "args": ["everything-mcp"],
      "env": { "EVERYTHING_INSTANCE": "1.5a" }
    }
  }
}

Tools

1. everything_search - the workhorse

ParameterDefaultDescription
query(required)Everything search query
max_results501-500
sortdate-modified-descname, path, size, date-modified, date-created, extension (+ -desc variants). date-created needs 'Index date created' in Everything
match_case / match_whole_word / match_regex / match_pathfalseMatch modifiers
offset0Pagination offset

Query syntax:

*.py                          all Python files
ext:py;js;ts                  multiple extensions
ext:py path:C:\Projects       Python files under a path
size:>10mb                    larger than 10 MB
size:1kb..1mb                 between 1 KB and 1 MB
dm:today / dm:last7days       modified today / in the last 7 days
path:D:\Photos dc:2024        created in 2024 (slow function, see below)
"exact name.txt"              exact filename match
project1 | project2           OR search
!node_modules                 exclude a term
ext:py path:C:\proj content:TODO   files containing TODO (slow function, see below)
regex:^test_.*\.py$           regex search
parent:src ext:py             files directly inside 'src' folders
dupe:  /  empty:               duplicate filenames / empty folders

Slow functions. content:, width:/height:, music tags (artist:, album:, ...) and, unless their property is indexed (Everything > Tools > Options > Indexes), dc:, da: and attrib: (and dm:/size: if you turned their indexing off) make Everything read every candidate file from disk - and Everything answers no other search until it is done. On Everything 1.4 the server therefore runs these terms last and only when the rest of the query narrows the candidates enough (1,000 files and 100 MB for content:; 1,000 files for image and tag functions; 30,000 for dates, attributes and sizes). Otherwise it refuses and reports the candidate count, so add path:, ext: or a name.

2. everything_search_by_type - category search

Categories: audio, video, image, document, code, archive, executable, font, 3d, data

Parameters: file_type (required), query, path, max_results, sort

3. everything_find_recent - what changed?

Periods: 1min … 12hours, today, yesterday, 1day … 1year

Parameters: period (default 1hour), path, extensions, query, max_results

4. everything_file_details - deep inspection

Parameters: paths (required, 1-20), preview_lines (0-200)

Returns full metadata; for directories, item count and listing; for text files with a preview, the first N lines.

5. everything_count_stats - quick analytics

Parameters: query (required), include_size (default true), breakdown_by_extension

Count and size stats without listing every file - check scope before a big search.


Examples

AskCall
Python files modified today in my projecteverything_find_recent(period="today", extensions="py", path="C:\Projects\myapp")
How much space do my log files use?everything_count_stats(query="ext:log", include_size=true, breakdown_by_extension=true)
First 50 lines of a config fileeverything_file_details(paths=["C:\Projects\app\config.yaml"], preview_lines=50)
Duplicate filenames in Documentseverything_search(query='dupe: path:"C:\Users\me\Documents"')
Images larger than 5MBeverything_search(query="ext:jpg;png;gif size:>5mb")

Troubleshooting

"es.exe not found" - Install Everything and es.exe, or set EVERYTHING_ES_PATH.

"Everything IPC window not found" - Make sure Everything is running (check the system tray). If you set EVERYTHING_INSTANCE, try removing it - most installs don't need it. Everything Lite doesn't support IPC.

No results for valid queries - Confirm Everything's index has finished building, try the same query in Everything's GUI, and check the drive/path is included in Everything's index settings.

Debugging:

everything-mcp 2>everything-mcp.log                        # server logs
npx @modelcontextprotocol/inspector uvx everything-mcp      # MCP Inspector

Development

pip install -e ".[dev]"   # install with dev dependencies
pytest                    # run tests
ruff check src/ tests/    # lint

Contributions welcome - see CLAUDE.md for the architecture and design decisions. Areas of interest: direct named-pipe IPC, Everything SDK3 for 1.5, content search, file-watching, bookmark/tag support.

License

MIT - see LICENSE

Acknowledgments

voidtools for Everything, Anthropic for the Model Context Protocol, and the MCP community.

<!-- mcp-name: io.github.elis132/everything-mcp -->

Related MCP servers

ELelisym logo

elisym

Active

AI agent discovery, marketplace, messaging, and payments on Nostr - no platform, no middleman

7
TypeScript
MIT
View repository →
LILinkBit logo

LinkBit

Active

Shorten URLs, bulk create, QR, and click analytics for LinkBit.

0
JavaScript
MIT
View repository →

Provision global eSIM data plans and real mobile phone numbers for AI agents. 200+ countries.

View repository →

Headless Blender asset QA over MCP: background script runs and FBX reimport verification.

1
JavaScript
MIT
View repository →

Utility MCP server: JSON repair, encoding fixes, conversion, duplicates, batch rename, archives.

1
TypeScript
MIT
View repository →

Developer MCP server: code analysis, JSON repair, imports, diffs, regex, format conversion.

3
TypeScript
MIT
View repository →