The definitive MCP server for voidtools Everything - lightning-fast file search for AI agents
Project description
⚡ Everything MCP
MCP server for voidtools Everything - search millions of Windows files in milliseconds from any AI agent.
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 | |
|---|---|---|---|---|
| Tools | 5 | 1 | 1 | 16 |
| Setup | Auto-detects es.exe | Manual SDK DLL path | Manual HTTP server + host/port | Manual es.exe in PATH |
| Everything 1.5 | Auto-detects instance | Not supported | Untested | Manual flag |
| Talks to Everything via | es.exe subprocess |
Everything SDK (DLL) | Everything's HTTP server plugin (unauthenticated) | es.exe subprocess |
| Tests / CI | pytest, GitHub Actions | None visible | None visible | None 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
@'
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
- Windows with Everything installed and running
- es.exe (Everything's command-line interface) - included with Everything 1.5 alpha, or install separately:
winget install voidtools.Everything.Cliscoop install everything-clichoco install es- or download from github.com/voidtools/es and place it in your PATH
- 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"]
}
}
}
| Client | How to add it |
|---|---|
| Claude Code | /plugin install everything-mcp@everything-mcp (see Quick start), or claude mcp add everything -- uvx everything-mcp |
| Claude Desktop | Paste the JSON above into %APPDATA%\Claude\claude_desktop_config.json |
| Codex CLI | codex mcp add everything -- uvx everything-mcp |
| Gemini CLI | gemini mcp add -s user everything uvx everything-mcp |
| Kimi CLI | kimi mcp add --transport stdio everything -- uvx everything-mcp |
| Qwen CLI | qwen mcp add -s user everything uvx everything-mcp |
| Cursor | Paste the JSON above into Cursor's MCP settings UI |
| Windsurf | Paste the JSON above into %USERPROFILE%\.codeium\windsurf\mcp_config.json |
| Any other MCP client | Use the JSON above verbatim |
Using pip instead of uvx
{ "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:
| Variable | Description | Example |
|---|---|---|
EVERYTHING_ES_PATH |
Path to es.exe | C:\Program Files\Everything\es.exe |
EVERYTHING_INSTANCE |
Named Everything instance | 1.5a |
EVERYTHING_MAX_RESULTS_CAP |
Hard cap on results per search (default 1000) |
200 |
Only set
EVERYTHING_INSTANCEif 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
| Parameter | Default | Description |
|---|---|---|
query |
(required) | Everything search query |
max_results |
50 | 1-500 |
sort |
date-modified-desc |
name, path, size, date-modified, date-created, extension (+ -desc variants) |
match_case / match_whole_word / match_regex / match_path |
false | Match modifiers |
offset |
0 | Pagination 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:last1week modified today / in the last week
dc:2024 created in 2024
"exact name.txt" exact filename match
project1 | project2 OR search
!node_modules exclude a term
content:TODO files containing TODO (needs content indexing)
regex:^test_.*\.py$ regex search
parent:src ext:py files directly inside 'src' folders
dupe: / empty: duplicate filenames / empty folders
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
| Ask | Call |
|---|---|
| Python files modified today in my project | everything_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 file | everything_file_details(paths=["C:\Projects\app\config.yaml"], preview_lines=50) |
| Duplicate filenames in Documents | everything_search(query='dupe: path:"C:\Users\me\Documents"') |
| Images larger than 5MB | everything_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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file everything_mcp-1.0.6.tar.gz.
File metadata
- Download URL: everything_mcp-1.0.6.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b2ca4e812a78db2c7d07d486803e2b6579ba5d3c3306cb994abbbcd341de3dd
|
|
| MD5 |
76047f1b2d5a5c4c074dc184f714099b
|
|
| BLAKE2b-256 |
142a43220eff3a80da0732186a74c28afd82f09ff0d6f3aeaa916f383d45b488
|
Provenance
The following attestation bundles were made for everything_mcp-1.0.6.tar.gz:
Publisher:
release.yml on elis132/everything-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
everything_mcp-1.0.6.tar.gz -
Subject digest:
1b2ca4e812a78db2c7d07d486803e2b6579ba5d3c3306cb994abbbcd341de3dd - Sigstore transparency entry: 2049565784
- Sigstore integration time:
-
Permalink:
elis132/everything-mcp@db6670739789aec00b89a39ef75f12c415ed35b4 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/elis132
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db6670739789aec00b89a39ef75f12c415ed35b4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file everything_mcp-1.0.6-py3-none-any.whl.
File metadata
- Download URL: everything_mcp-1.0.6-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
602cd7048f0d6a97f87d5e2ec5fe132d691fccbfa217b3ad7e2a7111284a2da9
|
|
| MD5 |
c6797d9598e115ae8c0f6ceb968a90ff
|
|
| BLAKE2b-256 |
6347966b68952ae3fe6e8f624ddf7f88ae3c130123711c97802a528d3da2f35f
|
Provenance
The following attestation bundles were made for everything_mcp-1.0.6-py3-none-any.whl:
Publisher:
release.yml on elis132/everything-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
everything_mcp-1.0.6-py3-none-any.whl -
Subject digest:
602cd7048f0d6a97f87d5e2ec5fe132d691fccbfa217b3ad7e2a7111284a2da9 - Sigstore transparency entry: 2049566048
- Sigstore integration time:
-
Permalink:
elis132/everything-mcp@db6670739789aec00b89a39ef75f12c415ed35b4 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/elis132
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db6670739789aec00b89a39ef75f12c415ed35b4 -
Trigger Event:
push
-
Statement type: