Everything MCP
The definitive MCP server for voidtools Everything - lightning-fast file search for AI agents.
Installation
npx everything-mcpAsk AI about Everything MCP
Powered by Claude Β· Grounded in docs
I know everything about Everything MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
β‘ Everything MCP
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.
Why This One?
| 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 | β οΈ Manual flag |
| 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 |
Performance
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 -
Installation
Prerequisites
- 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
Via uv (recommended - no install needed)
uvx everything-mcp
Via pip
pip install everything-mcp
From source
git clone https://github.com/elis132/everything-mcp.git
cd everything-mcp
pip install -e ".[dev]"
Configuration
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"]
}
}
}
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 | Everything instance name | 1.5a |
{
"mcpServers": {
"everything": {
"command": "uvx",
"args": ["everything-mcp"],
"env": {
"EVERYTHING_INSTANCE": "1.5a"
}
}
}
}
Tools
1. everything_search - The Workhorse
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
2. everything_search_by_type - Category Search
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 |
3. everything_find_recent - What Changed?
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 |
4. everything_file_details - Deep Inspection
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.
5. everything_count_stats - Quick Analytics
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) |
Examples
"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")
Troubleshooting
"es.exe not found"
- 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
"Everything IPC window not found"
- 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)
"No results for valid queries"
- 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
Debugging
# View server logs
everything-mcp 2>everything-mcp.log
# MCP Inspector
npx @modelcontextprotocol/inspector uvx everything-mcp
Architecture
ββββββββββββββββ 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 β
ββββββββββββββββββββ
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src/ tests/
Contributing
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)
License
MIT - see LICENSE
