The definitive MCP server for voidtools Everything - lightning-fast file search for AI agents.
Search millions of files in milliseconds. Built for Claude Code, Codex, Gemini, Kimi, Qwen, Cursor, Windsurf, and any MCP-compatible client.
| Feature | everything-mcp (this) | mamertofabian (271⭐) | essovius (0⭐) |
|---|---|---|---|
| Tools | 5 well-designed | 1 generic | 16 granular |
| Auto-detection | ✅ Finds Everything + es.exe automatically | ❌ Manual DLL path | ❌ Manual setup |
| Everything 1.5 | ✅ Auto-detects instance | ❌ No support | |
| Content preview | ✅ Read first N lines | ❌ | ❌ |
| File type categories | ✅ 10 categories | ❌ | ✅ |
| Stats & counts | ✅ Size stats, extension breakdown | ❌ | Partial |
| Error handling | ✅ All tools return clean errors | ❌ Raw exceptions | ❌ |
| Test suite | ✅ pytest | ❌ | ❌ |
| Zero config | ✅ Works out of the box | ❌ Need SDK DLL path | ❌ Need es.exe in PATH |
Real benchmark from this machine (Windows, query: everything.exe):
everything-mcp(Everything index viaes.exe): 220.22 ms avg (5 runs)- Naive filesystem walk over
C:\: 66,539.03 ms (single run) - Observed speedup: ~302x faster
Reproduce locally (PowerShell):
@' import os import subprocess import time import 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 -
- Windows with Everything installed and running
- es.exe (Everything command-line interface):
- Everything 1.5 alpha: es.exe is included
- Everything 1.4: Download from github.com/voidtools/es
- Place
es.exein your PATH or in the Everything installation directory
- Python 3.10+ or uv
uvx everything-mcp
pip install everything-mcp
git clone https://github.com/elis132/everything-mcp.git cd everything-mcp pip install -e ".[dev]"
Shared MCP JSON Template
Use this server definition anywhere a client asks for MCP JSON:
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"]
}
}
}Claude Code
Use the Claude Code CLI:
claude mcp add everything -- uvx everything-mcp claude mcp list
Or add to .claude/settings.json:
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"]
}
}
}Claude Desktop
Add to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"]
}
}
}Codex CLI
Use the Codex CLI:
codex mcp add everything -- uvx everything-mcp codex mcp list
Gemini CLI
Use the Gemini CLI:
gemini mcp add -s user everything uvx everything-mcp gemini mcp list
Kimi CLI
Use the Kimi CLI:
kimi mcp add --transport stdio everything -- uvx everything-mcp kimi mcp list
Qwen CLI
Use the Qwen CLI:
qwen mcp add -s user everything uvx everything-mcp qwen mcp list
Cursor
Cursor currently uses MCP settings/deeplinks rather than a stable mcp add
CLI command. Add the JSON config in Cursor's MCP settings UI.
Windsurf
Windsurf currently uses MCP settings rather than a stable mcp add CLI
command. On Windows, add the JSON config to:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
Generic MCP Clients
Any MCP-compatible client can use this format:
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"]
}
}
}Using pip Instead of uvx
{
"mcpServers": {
"everything": {
"command": "everything-mcp"
}
}
}Or with explicit Python:
{
"mcpServers": {
"everything": {
"command": "python",
"args": ["-m", "everything_mcp"]
}
}
}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 |
Everything instance name | 1.5a |
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"],
"env": {
"EVERYTHING_INSTANCE": "1.5a"
}
}
}
}Search files and folders using Everything's full query syntax.
| Parameter | Default | Description |
|---|---|---|
query |
(required) | Everything search query |
max_results |
50 | 1–500 |
sort |
date-modified-desc |
See sort options below |
match_case |
false | Case-sensitive |
match_whole_word |
false | Whole words only |
match_regex |
false | Regex mode |
match_path |
false | Match full path |
offset |
0 | Pagination offset |
Everything Search Syntax:
*.py → All Python files
ext:py;js;ts → Multiple extensions
ext:py path:C:\Projects → Python files in Projects
size:>10mb → Larger than 10 MB
size:1kb..1mb → Between 1 KB and 1 MB
dm:today → Modified today
dm:last1week → Modified in the last week
dc:2024 → Created in 2024
"exact name.txt" → Exact filename match
project1 | project2 → OR search
!node_modules → Exclude term
ext:py !test !__pycache__ → Python, excluding tests
content:TODO → Files containing TODO (requires content indexing)
regex:^test_.*\.py$ → Regex search
parent:src ext:py → Python files in 'src' folders
dupe: → Duplicate filenames
empty: → Empty folders
Search by pre-defined file type categories.
Categories: audio, video, image, document, code, archive, executable, font, 3d, data
| Parameter | Default | Description |
|---|---|---|
file_type |
(required) | Category name |
query |
"" |
Additional filter |
path |
"" |
Directory restriction |
max_results |
50 | 1–500 |
sort |
date-modified-desc |
Sort order |
Find recently modified files. Sorted newest-first.
Periods: 1min, 5min, 10min, 15min, 30min, 1hour, 2hours, 6hours, 12hours, today, yesterday, 1day, 3days, 1week, 2weeks, 1month, 3months, 6months, 1year
| Parameter | Default | Description |
|---|---|---|
period |
1hour |
Time period |
path |
"" |
Directory restriction |
extensions |
"" |
Extension filter (e.g. py,js,ts) |
query |
"" |
Additional filter |
max_results |
50 | 1–500 |
Get metadata and optional content preview for specific files.
| Parameter | Default | Description |
|---|---|---|
paths |
(required) | File paths to inspect (1–20) |
preview_lines |
0 | Lines of text to preview (0–200) |
Returns: Full metadata (size, dates, permissions, hidden status). Directories: item count and listing. Text files with preview: first N lines of content.
Get count and size statistics without listing individual files.
| Parameter | Default | Description |
|---|---|---|
query |
(required) | Search query |
include_size |
true | Calculate total size |
breakdown_by_extension |
false | Sampled per-extension stats (files only) |
"Find all Python files modified today in my project"
→ everything_find_recent(period="today", extensions="py", path="C:\Projects\myapp")
"How much disk space do my log files use?"
→ everything_count_stats(query="ext:log", include_size=true, breakdown_by_extension=true)
"Show me the first 50 lines of that config file"
→ everything_file_details(paths=["C:\Projects\app\config.yaml"], preview_lines=50)
"Find all duplicate filenames in Documents"
→ everything_search(query='dupe: path:"C:\Users\me\Documents"')
"Find all images larger than 5MB"
→ everything_search(query="ext:jpg;png;gif size:>5mb")
- Ensure Everything is installed: https://www.voidtools.com/
- Download es.exe: https://github.com/voidtools/es/releases
- Place es.exe in your PATH or set
EVERYTHING_ES_PATH
- Ensure Everything is running (check system tray)
- If using Everything 1.5 alpha, set
EVERYTHING_INSTANCE=1.5a - Ensure you're not running Everything Lite (no IPC support)
- Verify Everything's index is built (needs time on first run)
- Try the same query in Everything's GUI
- Check that the drive/path is included in Everything's index settings
# View server logs everything-mcp 2>everything-mcp.log # MCP Inspector npx @modelcontextprotocol/inspector uvx everything-mcp
┌──────────────┐ MCP (stdio) ┌──────────────────┐
│ AI Agent │◄────────────────────►│ Everything MCP │
│ (Claude, │ │ Server │
│ Codex, etc) │ │ │
└──────────────┘ │ 5 Tools: │
│ • search │
│ • search_by_type│
│ • find_recent │
│ • file_details │
│ • count_stats │
└────────┬─────────┘
│ async subprocess
▼
┌──────────────────┐
│ es.exe │
│ (CLI interface) │
└────────┬─────────┘
│ IPC / Named Pipes
▼
┌──────────────────┐
│ Everything │
│ Service │
│ (voidtools) │
│ │
│ Real-time NTFS │
│ file index │
└──────────────────┘
# Install with dev dependencies pip install -e ".[dev]" # Run tests pytest # Lint ruff check src/ tests/
Contributions welcome! Areas for improvement:
- Direct named pipe IPC (bypass es.exe for lower latency)
- Everything SDK3 integration for Everything 1.5
- Content search integration
- File watching / change notifications
- Bookmark and tag support (Everything 1.5)
MIT - see LICENSE