Everything File Search

io.github.elis132Published by GitHub account elis132v1.0.9Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyFiles & StorageData & Analytics

Overview

AI-generated overview

A local MCP server that lets an AI assistant search Windows files instantly through voidtools Everything's real-time NTFS index.

What you can do
Search files by name, extension, path, size, date or regex, with sorting and pagination, and count results with size and extension breakdowns without listing every file. Search by file category such as audio, video, image, document, code or archive. Find files changed within a period from one minute to one year. Inspect up to 20 paths for full metadata, directory listings and the first lines of text files.
When to use it
Useful on a Windows machine where an assistant needs to locate files, check what changed recently, measure disk usage by file type, or peek at a config or text file without a full filesystem walk.
Requirements
Windows with voidtools Everything installed and running, plus its command-line tool es.exe (bundled with Everything 1.5 alpha or installed separately). Python 3.10+ or uv to run the package. Optional environment variables EVERYTHING_ES_PATH, EVERYTHING_INSTANCE and EVERYTHING_MAX_RESULTS_CAP override auto-detection.
Before you install
Reads the local file index and can return file paths, metadata and the opening lines of text files to the assistant, so sensitive filenames or content may end up in the conversation. Setting EVERYTHING_INSTANCE unnecessarily breaks the connection. Content and other slow query functions can stall Everything's other searches, so the server limits or refuses them.

Installation

In SourceWeft

  1. Open Everything File Search in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

⚡ Everything MCP

MCP server for voidtools Everything - search millions of Windows files in milliseconds from any AI agent.

[PyPI] [Python] [License]


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
Reproduce this benchmark
powershell
@'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 -

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

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

From source:

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

Add it to your client

Every client below uses the same MCP server definition:

json
{  "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
Using pip instead of uvx
json
{ "mcpServers": { "everything": { "command": "everything-mcp" } } }

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

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.

json
{  "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 filesext:py;js;ts                  multiple extensionsext:py path:C:\Projects       Python files under a pathsize:>10mb                    larger than 10 MBsize:1kb..1mb                 between 1 KB and 1 MBdm:today / dm:last7days       modified today / in the last 7 dayspath:D:\Photos dc:2024        created in 2024 (slow function, see below)"exact name.txt"              exact filename matchproject1 | project2           OR search!node_modules                 exclude a termext:py path:C:\proj content:TODO   files containing TODO (slow function, see below)regex:^test_.*\.py$           regex searchparent:src ext:py             files directly inside 'src' foldersdupe:  /  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:

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

Development

bash
pip install -e ".[dev]"   # install with dev dependenciespytest                    # run testsruff 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.

Source: README.md at commit 22a60bd

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

4
  1. v1.0.9LatestSep 25, 2026
  2. v1.0.8Sep 23, 2026
  3. v1.0.7Sep 23, 2026
  4. v1.0.6Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts