everything-mcp 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,25 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.pyo
5
+ *.pyd
6
+
7
+ # Virtual environments
8
+ .venv/
9
+ venv/
10
+ env/
11
+
12
+ # Build artifacts
13
+ build/
14
+ dist/
15
+ *.egg-info/
16
+
17
+ # Tool caches
18
+ .pytest_cache/
19
+ .ruff_cache/
20
+
21
+ # OS/editor
22
+ .DS_Store
23
+ Thumbs.db
24
+ .idea/
25
+ .vscode/
@@ -0,0 +1,19 @@
1
+ # Changelog
2
+
3
+ All notable changes to **everything-mcp** will be documented in this file.
4
+
5
+ ## [1.0.0] — 2026-02-04
6
+
7
+ ### Added
8
+
9
+ - **5 AI-optimised tools**: `everything_search`, `everything_search_by_type`, `everything_find_recent`, `everything_file_details`, `everything_count_stats`
10
+ - **Zero-config auto-detection**: finds es.exe via PATH, common install locations, and Windows Registry
11
+ - **Everything 1.5 alpha** auto-detection (default → 1.5a instance probing)
12
+ - **Content preview**: read first N lines of source code and text files
13
+ - **10 file type categories**: audio, video, image, document, code, archive, executable, font, 3d, data
14
+ - **14 sort options**, **19 time period presets**
15
+ - **Extension breakdown analytics** in count_stats tool
16
+ - Comprehensive test suite with pytest
17
+ - PEP 561 `py.typed` marker
18
+ - Full documentation with configuration examples for Claude Code, Claude Desktop, Cursor, Windsurf, Codex, Gemini, Kimi, Qwen
19
+ - `everything://status` MCP resource for health checks
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Elis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,495 @@
1
+ Metadata-Version: 2.4
2
+ Name: everything-mcp
3
+ Version: 1.0.0
4
+ Summary: The definitive MCP server for voidtools Everything — lightning-fast file search for AI agents
5
+ Project-URL: Homepage, https://github.com/elis132/everything-mcp
6
+ Project-URL: Repository, https://github.com/elis132/everything-mcp
7
+ Project-URL: Issues, https://github.com/elis132/everything-mcp/issues
8
+ Project-URL: Changelog, https://github.com/elis132/everything-mcp/blob/main/CHANGELOG.md
9
+ Author-email: Elis <elis@egf.se>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: ai-agent,claude,codex,everything,file-search,gemini,mcp,model-context-protocol,voidtools
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Software Development :: Libraries
23
+ Classifier: Topic :: System :: Filesystems
24
+ Classifier: Typing :: Typed
25
+ Requires-Python: >=3.10
26
+ Requires-Dist: mcp>=1.0.0
27
+ Requires-Dist: pydantic>=2.0.0
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
30
+ Requires-Dist: pytest>=8.0; extra == 'dev'
31
+ Requires-Dist: ruff>=0.4; extra == 'dev'
32
+ Description-Content-Type: text/markdown
33
+
34
+ # ⚡ Everything MCP
35
+
36
+ **The definitive MCP server for [voidtools Everything](https://www.voidtools.com/)** — lightning-fast file search for AI agents.
37
+
38
+ [![PyPI](https://img.shields.io/pypi/v/everything-mcp)](https://pypi.org/project/everything-mcp/)
39
+ [![Python](https://img.shields.io/pypi/pyversions/everything-mcp)](https://pypi.org/project/everything-mcp/)
40
+ [![License](https://img.shields.io/github/license/elis132/everything-mcp)](LICENSE)
41
+
42
+ Search millions of files in milliseconds. Built for **Claude Code**, **Codex**, **Gemini**, **Kimi**, **Qwen**, **Cursor**, **Windsurf**, and any MCP-compatible client.
43
+
44
+ ---
45
+
46
+ ## Why This One?
47
+
48
+ | Feature | everything-mcp (this) | mamertofabian (271⭐) | essovius (0⭐) |
49
+ |---|---|---|---|
50
+ | **Tools** | 5 well-designed | 1 generic | 16 granular |
51
+ | **Auto-detection** | ✅ Finds Everything + es.exe automatically | ❌ Manual DLL path | ❌ Manual setup |
52
+ | **Everything 1.5** | ✅ Auto-detects instance | ❌ No support | ⚠️ Manual flag |
53
+ | **Content preview** | ✅ Read first N lines | ❌ | ❌ |
54
+ | **File type categories** | ✅ 10 categories | ❌ | ✅ |
55
+ | **Stats & counts** | ✅ Size stats, extension breakdown | ❌ | Partial |
56
+ | **Error handling** | ✅ All tools return clean errors | ❌ Raw exceptions | ❌ |
57
+ | **Test suite** | ✅ pytest | ❌ | ❌ |
58
+ | **Zero config** | ✅ Works out of the box | ❌ Need SDK DLL path | ❌ Need es.exe in PATH |
59
+
60
+ ## Installation
61
+
62
+ ### Prerequisites
63
+
64
+ 1. **Windows** with [Everything](https://www.voidtools.com/) installed and **running**
65
+ 2. **es.exe** (Everything command-line interface):
66
+ - **Everything 1.5 alpha**: es.exe is included
67
+ - **Everything 1.4**: Download from [github.com/voidtools/es](https://github.com/voidtools/es/releases)
68
+ - Place `es.exe` in your PATH or in the Everything installation directory
69
+ 3. **Python 3.10+** or **uv**
70
+
71
+ ### Via uv (recommended — no install needed)
72
+
73
+ ```bash
74
+ uvx everything-mcp
75
+ ```
76
+
77
+ ### Via pip
78
+
79
+ ```bash
80
+ pip install everything-mcp
81
+ ```
82
+
83
+ ### From source
84
+
85
+ ```bash
86
+ git clone https://github.com/elis132/everything-mcp.git
87
+ cd everything-mcp
88
+ pip install -e ".[dev]"
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Configuration
94
+
95
+ <details>
96
+ <summary>Shared MCP JSON Template</summary>
97
+
98
+ Use this server definition anywhere a client asks for MCP JSON:
99
+
100
+ ```json
101
+ {
102
+ "mcpServers": {
103
+ "everything": {
104
+ "command": "uvx",
105
+ "args": ["everything-mcp"]
106
+ }
107
+ }
108
+ }
109
+ ```
110
+ </details>
111
+
112
+ <details>
113
+ <summary>Claude Code</summary>
114
+
115
+ Use the Claude Code CLI:
116
+
117
+ ```bash
118
+ claude mcp add everything -- uvx everything-mcp
119
+ claude mcp list
120
+ ```
121
+
122
+ Or add to `.claude/settings.json`:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "everything": {
128
+ "command": "uvx",
129
+ "args": ["everything-mcp"]
130
+ }
131
+ }
132
+ }
133
+ ```
134
+ </details>
135
+
136
+ <details>
137
+ <summary>Claude Desktop</summary>
138
+
139
+ Add to `%APPDATA%\Claude\claude_desktop_config.json`:
140
+
141
+ ```json
142
+ {
143
+ "mcpServers": {
144
+ "everything": {
145
+ "command": "uvx",
146
+ "args": ["everything-mcp"]
147
+ }
148
+ }
149
+ }
150
+ ```
151
+ </details>
152
+
153
+ <details>
154
+ <summary>Codex CLI</summary>
155
+
156
+ Use the Codex CLI:
157
+
158
+ ```bash
159
+ codex mcp add everything -- uvx everything-mcp
160
+ codex mcp list
161
+ ```
162
+ </details>
163
+
164
+ <details>
165
+ <summary>Gemini CLI</summary>
166
+
167
+ Use the Gemini CLI:
168
+
169
+ ```bash
170
+ gemini mcp add -s user everything uvx everything-mcp
171
+ gemini mcp list
172
+ ```
173
+ </details>
174
+
175
+ <details>
176
+ <summary>Kimi CLI</summary>
177
+
178
+ Use the Kimi CLI:
179
+
180
+ ```bash
181
+ kimi mcp add --transport stdio everything -- uvx everything-mcp
182
+ kimi mcp list
183
+ ```
184
+ </details>
185
+
186
+ <details>
187
+ <summary>Qwen CLI</summary>
188
+
189
+ Use the Qwen CLI:
190
+
191
+ ```bash
192
+ qwen mcp add -s user everything uvx everything-mcp
193
+ qwen mcp list
194
+ ```
195
+ </details>
196
+
197
+ <details>
198
+ <summary>Cursor</summary>
199
+
200
+ Cursor currently uses MCP settings/deeplinks rather than a stable `mcp add`
201
+ CLI command. Add the JSON config in Cursor's MCP settings UI.
202
+ </details>
203
+
204
+ <details>
205
+ <summary>Windsurf</summary>
206
+
207
+ Windsurf currently uses MCP settings rather than a stable `mcp add` CLI
208
+ command. On Windows, add the JSON config to:
209
+
210
+ `%USERPROFILE%\.codeium\windsurf\mcp_config.json`
211
+ </details>
212
+
213
+ <details>
214
+ <summary>Generic MCP Clients</summary>
215
+
216
+ Any MCP-compatible client can use this format:
217
+
218
+ ```json
219
+ {
220
+ "mcpServers": {
221
+ "everything": {
222
+ "command": "uvx",
223
+ "args": ["everything-mcp"]
224
+ }
225
+ }
226
+ }
227
+ ```
228
+ </details>
229
+
230
+ <details>
231
+ <summary>Using pip Instead of uvx</summary>
232
+
233
+ ```json
234
+ {
235
+ "mcpServers": {
236
+ "everything": {
237
+ "command": "everything-mcp"
238
+ }
239
+ }
240
+ }
241
+ ```
242
+
243
+ Or with explicit Python:
244
+
245
+ ```json
246
+ {
247
+ "mcpServers": {
248
+ "everything": {
249
+ "command": "python",
250
+ "args": ["-m", "everything_mcp"]
251
+ }
252
+ }
253
+ }
254
+ ```
255
+ </details>
256
+
257
+ ---
258
+
259
+ ## Environment Variables (Optional)
260
+
261
+ Everything MCP auto-detects your setup, but you can override:
262
+
263
+ | Variable | Description | Example |
264
+ |---|---|---|
265
+ | `EVERYTHING_ES_PATH` | Path to es.exe | `C:\Program Files\Everything\es.exe` |
266
+ | `EVERYTHING_INSTANCE` | Everything instance name | `1.5a` |
267
+
268
+ ```json
269
+ {
270
+ "mcpServers": {
271
+ "everything": {
272
+ "command": "uvx",
273
+ "args": ["everything-mcp"],
274
+ "env": {
275
+ "EVERYTHING_INSTANCE": "1.5a"
276
+ }
277
+ }
278
+ }
279
+ }
280
+ ```
281
+
282
+ ---
283
+
284
+ ## Tools
285
+
286
+ ### 1. `everything_search` — The Workhorse
287
+
288
+ Search files and folders using Everything's full query syntax.
289
+
290
+ | Parameter | Default | Description |
291
+ |---|---|---|
292
+ | `query` | *(required)* | Everything search query |
293
+ | `max_results` | 50 | 1–500 |
294
+ | `sort` | `date-modified-desc` | See sort options below |
295
+ | `match_case` | false | Case-sensitive |
296
+ | `match_whole_word` | false | Whole words only |
297
+ | `match_regex` | false | Regex mode |
298
+ | `match_path` | false | Match full path |
299
+ | `offset` | 0 | Pagination offset |
300
+
301
+ **Everything Search Syntax:**
302
+
303
+ ```
304
+ *.py → All Python files
305
+ ext:py;js;ts → Multiple extensions
306
+ ext:py path:C:\Projects → Python files in Projects
307
+ size:>10mb → Larger than 10 MB
308
+ size:1kb..1mb → Between 1 KB and 1 MB
309
+ dm:today → Modified today
310
+ dm:last1week → Modified in the last week
311
+ dc:2024 → Created in 2024
312
+ "exact name.txt" → Exact filename match
313
+ project1 | project2 → OR search
314
+ !node_modules → Exclude term
315
+ ext:py !test !__pycache__ → Python, excluding tests
316
+ content:TODO → Files containing TODO (requires content indexing)
317
+ regex:^test_.*\.py$ → Regex search
318
+ parent:src ext:py → Python files in 'src' folders
319
+ dupe: → Duplicate filenames
320
+ empty: → Empty folders
321
+ ```
322
+
323
+ ### 2. `everything_search_by_type` — Category Search
324
+
325
+ Search by pre-defined file type categories.
326
+
327
+ **Categories:** `audio`, `video`, `image`, `document`, `code`, `archive`, `executable`, `font`, `3d`, `data`
328
+
329
+ | Parameter | Default | Description |
330
+ |---|---|---|
331
+ | `file_type` | *(required)* | Category name |
332
+ | `query` | `""` | Additional filter |
333
+ | `path` | `""` | Directory restriction |
334
+ | `max_results` | 50 | 1–500 |
335
+ | `sort` | `date-modified-desc` | Sort order |
336
+
337
+ ### 3. `everything_find_recent` — What Changed?
338
+
339
+ Find recently modified files. Sorted newest-first.
340
+
341
+ **Periods:** `1min`, `5min`, `10min`, `15min`, `30min`, `1hour`, `2hours`, `6hours`, `12hours`, `today`, `yesterday`, `1day`, `3days`, `1week`, `2weeks`, `1month`, `3months`, `6months`, `1year`
342
+
343
+ | Parameter | Default | Description |
344
+ |---|---|---|
345
+ | `period` | `1hour` | Time period |
346
+ | `path` | `""` | Directory restriction |
347
+ | `extensions` | `""` | Extension filter (e.g. `py,js,ts`) |
348
+ | `query` | `""` | Additional filter |
349
+ | `max_results` | 50 | 1–500 |
350
+
351
+ ### 4. `everything_file_details` — Deep Inspection
352
+
353
+ Get metadata and optional content preview for specific files.
354
+
355
+ | Parameter | Default | Description |
356
+ |---|---|---|
357
+ | `paths` | *(required)* | File paths to inspect (1–20) |
358
+ | `preview_lines` | 0 | Lines of text to preview (0–200) |
359
+
360
+ **Returns:** Full metadata (size, dates, permissions, hidden status). Directories: item count and listing. Text files with preview: first N lines of content.
361
+
362
+ ### 5. `everything_count_stats` — Quick Analytics
363
+
364
+ Get count and size statistics without listing individual files.
365
+
366
+ | Parameter | Default | Description |
367
+ |---|---|---|
368
+ | `query` | *(required)* | Search query |
369
+ | `include_size` | true | Calculate total size |
370
+ | `breakdown_by_extension` | false | Sampled per-extension stats (files only) |
371
+
372
+ ---
373
+
374
+ ## Examples
375
+
376
+ > "Find all Python files modified today in my project"
377
+
378
+ → `everything_find_recent(period="today", extensions="py", path="C:\Projects\myapp")`
379
+
380
+ > "How much disk space do my log files use?"
381
+
382
+ → `everything_count_stats(query="ext:log", include_size=true, breakdown_by_extension=true)`
383
+
384
+ > "Show me the first 50 lines of that config file"
385
+
386
+ → `everything_file_details(paths=["C:\Projects\app\config.yaml"], preview_lines=50)`
387
+
388
+ > "Find all duplicate filenames in Documents"
389
+
390
+ → `everything_search(query='dupe: path:"C:\Users\me\Documents"')`
391
+
392
+ > "Find all images larger than 5MB"
393
+
394
+ → `everything_search(query="ext:jpg;png;gif size:>5mb")`
395
+
396
+ ---
397
+
398
+ ## Troubleshooting
399
+
400
+ ### "es.exe not found"
401
+
402
+ 1. Ensure Everything is installed: https://www.voidtools.com/
403
+ 2. Download es.exe: https://github.com/voidtools/es/releases
404
+ 3. Place es.exe in your PATH or set `EVERYTHING_ES_PATH`
405
+
406
+ ### "Everything IPC window not found"
407
+
408
+ 1. Ensure Everything is **running** (check system tray)
409
+ 2. If using Everything 1.5 alpha, set `EVERYTHING_INSTANCE=1.5a`
410
+ 3. Ensure you're not running Everything Lite (no IPC support)
411
+
412
+ ### "No results for valid queries"
413
+
414
+ 1. Verify Everything's index is built (needs time on first run)
415
+ 2. Try the same query in Everything's GUI
416
+ 3. Check that the drive/path is included in Everything's index settings
417
+
418
+ ### Debugging
419
+
420
+ ```bash
421
+ # View server logs
422
+ everything-mcp 2>everything-mcp.log
423
+
424
+ # MCP Inspector
425
+ npx @modelcontextprotocol/inspector uvx everything-mcp
426
+ ```
427
+
428
+ ---
429
+
430
+ ## Architecture
431
+
432
+ ```
433
+ ┌──────────────┐ MCP (stdio) ┌──────────────────┐
434
+ │ AI Agent │◄────────────────────►│ Everything MCP │
435
+ │ (Claude, │ │ Server │
436
+ │ Codex, etc) │ │ │
437
+ └──────────────┘ │ 5 Tools: │
438
+ │ • search │
439
+ │ • search_by_type│
440
+ │ • find_recent │
441
+ │ • file_details │
442
+ │ • count_stats │
443
+ └────────┬─────────┘
444
+ │ async subprocess
445
+
446
+ ┌──────────────────┐
447
+ │ es.exe │
448
+ │ (CLI interface) │
449
+ └────────┬─────────┘
450
+ │ IPC / Named Pipes
451
+
452
+ ┌──────────────────┐
453
+ │ Everything │
454
+ │ Service │
455
+ │ (voidtools) │
456
+ │ │
457
+ │ Real-time NTFS │
458
+ │ file index │
459
+ └──────────────────┘
460
+ ```
461
+
462
+ ---
463
+
464
+ ## Development
465
+
466
+ ```bash
467
+ # Install with dev dependencies
468
+ pip install -e ".[dev]"
469
+
470
+ # Run tests
471
+ pytest
472
+
473
+ # Lint
474
+ ruff check src/ tests/
475
+ ```
476
+
477
+ ## Contributing
478
+
479
+ Contributions welcome! Areas for improvement:
480
+
481
+ - Direct named pipe IPC (bypass es.exe for lower latency)
482
+ - Everything SDK3 integration for Everything 1.5
483
+ - Content search integration
484
+ - File watching / change notifications
485
+ - Bookmark and tag support (Everything 1.5)
486
+
487
+ ## License
488
+
489
+ MIT — see [LICENSE](LICENSE)
490
+
491
+ ## Acknowledgments
492
+
493
+ - [voidtools](https://www.voidtools.com/) for the incredible Everything search engine
494
+ - [Anthropic](https://anthropic.com/) for the Model Context Protocol specification
495
+ - The MCP community for driving adoption across AI tools