everything-mcp 1.0.1__tar.gz → 1.0.3__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.
@@ -1,8 +1,21 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to **everything-mcp** will be documented in this file.
3
+ All notable changes to **everything-mcp** will be documented in this file.
4
+
5
+ ## [1.0.3] - 2026-02-04
6
+
7
+ ### Changed
8
+
9
+ - Replaced em-dash punctuation with ASCII hyphens (`-`) across docs and source text.
10
+
11
+ ## [1.0.2] - 2026-02-04
12
+
13
+ ### Changed
4
14
 
5
- ## [1.0.1] ? 2026-02-04
15
+ - Updated package metadata author to `elis132` (removed author email from PyPI metadata).
16
+ - Updated LICENSE copyright holder name to `elis132`.
17
+
18
+ ## [1.0.1] - 2026-02-04
6
19
 
7
20
  ### Fixed
8
21
 
@@ -10,7 +23,7 @@ All notable changes to **everything-mcp** will be documented in this file.
10
23
  - Updated backend aggregate queries to avoid incompatible `es.exe` flag combinations (`-n 0` with `-get-result-count` / `-get-total-size`).
11
24
  - Added backend tests to verify aggregate command construction.
12
25
 
13
- ## [1.0.0] 2026-02-04
26
+ ## [1.0.0] - 2026-02-04
14
27
 
15
28
  ### Added
16
29
 
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Elis
3
+ Copyright (c) 2026 elis132
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: everything-mcp
3
- Version: 1.0.1
4
- Summary: The definitive MCP server for voidtools Everything lightning-fast file search for AI agents
3
+ Version: 1.0.3
4
+ Summary: The definitive MCP server for voidtools Everything - lightning-fast file search for AI agents
5
5
  Project-URL: Homepage, https://github.com/elis132/everything-mcp
6
6
  Project-URL: Repository, https://github.com/elis132/everything-mcp
7
7
  Project-URL: Issues, https://github.com/elis132/everything-mcp/issues
8
8
  Project-URL: Changelog, https://github.com/elis132/everything-mcp/blob/main/CHANGELOG.md
9
- Author-email: Elis <elis@egf.se>
9
+ Author: elis132
10
10
  License: MIT
11
11
  License-File: LICENSE
12
12
  Keywords: ai-agent,claude,codex,everything,file-search,gemini,mcp,model-context-protocol,voidtools
@@ -34,7 +34,7 @@ Description-Content-Type: text/markdown
34
34
  <div align="center">
35
35
  <h1>⚡ Everything MCP</h1>
36
36
  <p>
37
- <strong>The definitive MCP server for <a href="https://www.voidtools.com/">voidtools Everything</a> ? lightning-fast file search for AI agents.</strong>
37
+ <strong>The definitive MCP server for <a href="https://www.voidtools.com/">voidtools Everything</a> - lightning-fast file search for AI agents.</strong>
38
38
  </p>
39
39
  <p>
40
40
  <a href="https://pypi.org/project/everything-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/everything-mcp"></a>
@@ -60,6 +60,48 @@ Description-Content-Type: text/markdown
60
60
  | **Test suite** | ✅ pytest | ❌ | ❌ |
61
61
  | **Zero config** | ✅ Works out of the box | ❌ Need SDK DLL path | ❌ Need es.exe in PATH |
62
62
 
63
+ ## Performance
64
+
65
+ Real benchmark from this machine (Windows, query: `everything.exe`):
66
+
67
+ - `everything-mcp` (Everything index via `es.exe`): **220.22 ms avg** (5 runs)
68
+ - Naive filesystem walk over `C:\`: **66,539.03 ms** (single run)
69
+ - Observed speedup: **~302x faster**
70
+
71
+ Reproduce locally (PowerShell):
72
+
73
+ ```powershell
74
+ @'
75
+ import os
76
+ import subprocess
77
+ import time
78
+ import statistics
79
+
80
+ ES = os.path.expandvars(r"%LOCALAPPDATA%\Everything\es.exe")
81
+ QUERY = "everything.exe"
82
+
83
+ es_runs = []
84
+ for _ in range(5):
85
+ t0 = time.perf_counter()
86
+ subprocess.run([ES, "-n", "100", QUERY], capture_output=True, text=True)
87
+ es_runs.append((time.perf_counter() - t0) * 1000)
88
+
89
+ t0 = time.perf_counter()
90
+ matches = []
91
+ for dirpath, _, filenames in os.walk(r"C:\\"):
92
+ for name in filenames:
93
+ if name.lower() == QUERY:
94
+ matches.append(os.path.join(dirpath, name))
95
+ walk_ms = (time.perf_counter() - t0) * 1000
96
+
97
+ es_avg = statistics.mean(es_runs)
98
+ print("ES avg ms:", round(es_avg, 2))
99
+ print("Walk ms:", round(walk_ms, 2))
100
+ print("Speedup x:", round(walk_ms / es_avg, 1))
101
+ print("Matches:", len(matches))
102
+ '@ | python -
103
+ ```
104
+
63
105
  ## Installation
64
106
 
65
107
  ### Prerequisites
@@ -71,7 +113,7 @@ Description-Content-Type: text/markdown
71
113
  - Place `es.exe` in your PATH or in the Everything installation directory
72
114
  3. **Python 3.10+** or **uv**
73
115
 
74
- ### Via uv (recommended no install needed)
116
+ ### Via uv (recommended - no install needed)
75
117
 
76
118
  ```bash
77
119
  uvx everything-mcp
@@ -286,7 +328,7 @@ Everything MCP auto-detects your setup, but you can override:
286
328
 
287
329
  ## Tools
288
330
 
289
- ### 1. `everything_search` The Workhorse
331
+ ### 1. `everything_search` - The Workhorse
290
332
 
291
333
  Search files and folders using Everything's full query syntax.
292
334
 
@@ -323,7 +365,7 @@ dupe: → Duplicate filenames
323
365
  empty: → Empty folders
324
366
  ```
325
367
 
326
- ### 2. `everything_search_by_type` Category Search
368
+ ### 2. `everything_search_by_type` - Category Search
327
369
 
328
370
  Search by pre-defined file type categories.
329
371
 
@@ -337,7 +379,7 @@ Search by pre-defined file type categories.
337
379
  | `max_results` | 50 | 1–500 |
338
380
  | `sort` | `date-modified-desc` | Sort order |
339
381
 
340
- ### 3. `everything_find_recent` What Changed?
382
+ ### 3. `everything_find_recent` - What Changed?
341
383
 
342
384
  Find recently modified files. Sorted newest-first.
343
385
 
@@ -351,7 +393,7 @@ Find recently modified files. Sorted newest-first.
351
393
  | `query` | `""` | Additional filter |
352
394
  | `max_results` | 50 | 1–500 |
353
395
 
354
- ### 4. `everything_file_details` Deep Inspection
396
+ ### 4. `everything_file_details` - Deep Inspection
355
397
 
356
398
  Get metadata and optional content preview for specific files.
357
399
 
@@ -362,7 +404,7 @@ Get metadata and optional content preview for specific files.
362
404
 
363
405
  **Returns:** Full metadata (size, dates, permissions, hidden status). Directories: item count and listing. Text files with preview: first N lines of content.
364
406
 
365
- ### 5. `everything_count_stats` Quick Analytics
407
+ ### 5. `everything_count_stats` - Quick Analytics
366
408
 
367
409
  Get count and size statistics without listing individual files.
368
410
 
@@ -489,7 +531,7 @@ Contributions welcome! Areas for improvement:
489
531
 
490
532
  ## License
491
533
 
492
- MIT see [LICENSE](LICENSE)
534
+ MIT - see [LICENSE](LICENSE)
493
535
 
494
536
  ## Acknowledgments
495
537
 
@@ -1,7 +1,7 @@
1
1
  <div align="center">
2
2
  <h1>⚡ Everything MCP</h1>
3
3
  <p>
4
- <strong>The definitive MCP server for <a href="https://www.voidtools.com/">voidtools Everything</a> ? lightning-fast file search for AI agents.</strong>
4
+ <strong>The definitive MCP server for <a href="https://www.voidtools.com/">voidtools Everything</a> - lightning-fast file search for AI agents.</strong>
5
5
  </p>
6
6
  <p>
7
7
  <a href="https://pypi.org/project/everything-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/everything-mcp"></a>
@@ -27,6 +27,48 @@
27
27
  | **Test suite** | ✅ pytest | ❌ | ❌ |
28
28
  | **Zero config** | ✅ Works out of the box | ❌ Need SDK DLL path | ❌ Need es.exe in PATH |
29
29
 
30
+ ## Performance
31
+
32
+ Real benchmark from this machine (Windows, query: `everything.exe`):
33
+
34
+ - `everything-mcp` (Everything index via `es.exe`): **220.22 ms avg** (5 runs)
35
+ - Naive filesystem walk over `C:\`: **66,539.03 ms** (single run)
36
+ - Observed speedup: **~302x faster**
37
+
38
+ Reproduce locally (PowerShell):
39
+
40
+ ```powershell
41
+ @'
42
+ import os
43
+ import subprocess
44
+ import time
45
+ import statistics
46
+
47
+ ES = os.path.expandvars(r"%LOCALAPPDATA%\Everything\es.exe")
48
+ QUERY = "everything.exe"
49
+
50
+ es_runs = []
51
+ for _ in range(5):
52
+ t0 = time.perf_counter()
53
+ subprocess.run([ES, "-n", "100", QUERY], capture_output=True, text=True)
54
+ es_runs.append((time.perf_counter() - t0) * 1000)
55
+
56
+ t0 = time.perf_counter()
57
+ matches = []
58
+ for dirpath, _, filenames in os.walk(r"C:\\"):
59
+ for name in filenames:
60
+ if name.lower() == QUERY:
61
+ matches.append(os.path.join(dirpath, name))
62
+ walk_ms = (time.perf_counter() - t0) * 1000
63
+
64
+ es_avg = statistics.mean(es_runs)
65
+ print("ES avg ms:", round(es_avg, 2))
66
+ print("Walk ms:", round(walk_ms, 2))
67
+ print("Speedup x:", round(walk_ms / es_avg, 1))
68
+ print("Matches:", len(matches))
69
+ '@ | python -
70
+ ```
71
+
30
72
  ## Installation
31
73
 
32
74
  ### Prerequisites
@@ -38,7 +80,7 @@
38
80
  - Place `es.exe` in your PATH or in the Everything installation directory
39
81
  3. **Python 3.10+** or **uv**
40
82
 
41
- ### Via uv (recommended no install needed)
83
+ ### Via uv (recommended - no install needed)
42
84
 
43
85
  ```bash
44
86
  uvx everything-mcp
@@ -253,7 +295,7 @@ Everything MCP auto-detects your setup, but you can override:
253
295
 
254
296
  ## Tools
255
297
 
256
- ### 1. `everything_search` The Workhorse
298
+ ### 1. `everything_search` - The Workhorse
257
299
 
258
300
  Search files and folders using Everything's full query syntax.
259
301
 
@@ -290,7 +332,7 @@ dupe: → Duplicate filenames
290
332
  empty: → Empty folders
291
333
  ```
292
334
 
293
- ### 2. `everything_search_by_type` Category Search
335
+ ### 2. `everything_search_by_type` - Category Search
294
336
 
295
337
  Search by pre-defined file type categories.
296
338
 
@@ -304,7 +346,7 @@ Search by pre-defined file type categories.
304
346
  | `max_results` | 50 | 1–500 |
305
347
  | `sort` | `date-modified-desc` | Sort order |
306
348
 
307
- ### 3. `everything_find_recent` What Changed?
349
+ ### 3. `everything_find_recent` - What Changed?
308
350
 
309
351
  Find recently modified files. Sorted newest-first.
310
352
 
@@ -318,7 +360,7 @@ Find recently modified files. Sorted newest-first.
318
360
  | `query` | `""` | Additional filter |
319
361
  | `max_results` | 50 | 1–500 |
320
362
 
321
- ### 4. `everything_file_details` Deep Inspection
363
+ ### 4. `everything_file_details` - Deep Inspection
322
364
 
323
365
  Get metadata and optional content preview for specific files.
324
366
 
@@ -329,7 +371,7 @@ Get metadata and optional content preview for specific files.
329
371
 
330
372
  **Returns:** Full metadata (size, dates, permissions, hidden status). Directories: item count and listing. Text files with preview: first N lines of content.
331
373
 
332
- ### 5. `everything_count_stats` Quick Analytics
374
+ ### 5. `everything_count_stats` - Quick Analytics
333
375
 
334
376
  Get count and size statistics without listing individual files.
335
377
 
@@ -456,7 +498,7 @@ Contributions welcome! Areas for improvement:
456
498
 
457
499
  ## License
458
500
 
459
- MIT see [LICENSE](LICENSE)
501
+ MIT - see [LICENSE](LICENSE)
460
502
 
461
503
  ## Acknowledgments
462
504
 
@@ -1,80 +1,80 @@
1
- [build-system]
2
- requires = ["hatchling"]
3
- build-backend = "hatchling.build"
4
-
5
- [project]
6
- name = "everything-mcp"
7
- version = "1.0.1"
8
- description = "The definitive MCP server for voidtools Everything lightning-fast file search for AI agents"
9
- readme = "README.md"
10
- license = { text = "MIT" }
11
- requires-python = ">=3.10"
12
- authors = [
13
- { name = "Elis", email = "elis@egf.se" },
14
- ]
15
- keywords = [
16
- "mcp", "everything", "voidtools", "file-search", "claude",
17
- "codex", "gemini", "ai-agent", "model-context-protocol",
18
- ]
19
- classifiers = [
20
- "Development Status :: 5 - Production/Stable",
21
- "Intended Audience :: Developers",
22
- "License :: OSI Approved :: MIT License",
23
- "Operating System :: Microsoft :: Windows",
24
- "Programming Language :: Python :: 3",
25
- "Programming Language :: Python :: 3.10",
26
- "Programming Language :: Python :: 3.11",
27
- "Programming Language :: Python :: 3.12",
28
- "Programming Language :: Python :: 3.13",
29
- "Topic :: Software Development :: Libraries",
30
- "Topic :: System :: Filesystems",
31
- "Typing :: Typed",
32
- ]
33
- dependencies = [
34
- "mcp>=1.0.0",
35
- "pydantic>=2.0.0",
36
- ]
37
-
38
- [project.optional-dependencies]
39
- dev = [
40
- "pytest>=8.0",
41
- "pytest-asyncio>=0.23",
42
- "ruff>=0.4",
43
- ]
44
-
45
- [project.urls]
46
- Homepage = "https://github.com/elis132/everything-mcp"
47
- Repository = "https://github.com/elis132/everything-mcp"
48
- Issues = "https://github.com/elis132/everything-mcp/issues"
49
- Changelog = "https://github.com/elis132/everything-mcp/blob/main/CHANGELOG.md"
50
-
51
- [project.scripts]
52
- everything-mcp = "everything_mcp:main"
53
-
54
- [tool.hatch.build.targets.wheel]
55
- packages = ["src/everything_mcp"]
56
-
57
- [tool.hatch.build.targets.sdist]
58
- include = ["src/everything_mcp", "README.md", "LICENSE", "CHANGELOG.md", "pyproject.toml"]
59
-
60
- # ── Testing ───────────────────────────────────────────────────────────────
61
-
62
- [tool.pytest.ini_options]
63
- testpaths = ["tests"]
64
- asyncio_mode = "auto"
65
- filterwarnings = [
66
- "ignore::DeprecationWarning",
67
- ]
68
-
69
- # ── Linting ───────────────────────────────────────────────────────────────
70
-
71
- [tool.ruff]
72
- target-version = "py310"
73
- line-length = 100
74
-
75
- [tool.ruff.lint]
76
- select = ["E", "F", "W", "I", "UP", "B", "SIM"]
77
- ignore = ["E501"] # line length handled by formatter
78
-
79
- [tool.ruff.lint.isort]
80
- known-first-party = ["everything_mcp"]
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "everything-mcp"
7
+ version = "1.0.3"
8
+ description = "The definitive MCP server for voidtools Everything - lightning-fast file search for AI agents"
9
+ readme = "README.md"
10
+ license = { text = "MIT" }
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ { name = "elis132" },
14
+ ]
15
+ keywords = [
16
+ "mcp", "everything", "voidtools", "file-search", "claude",
17
+ "codex", "gemini", "ai-agent", "model-context-protocol",
18
+ ]
19
+ classifiers = [
20
+ "Development Status :: 5 - Production/Stable",
21
+ "Intended Audience :: Developers",
22
+ "License :: OSI Approved :: MIT License",
23
+ "Operating System :: Microsoft :: Windows",
24
+ "Programming Language :: Python :: 3",
25
+ "Programming Language :: Python :: 3.10",
26
+ "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
+ "Programming Language :: Python :: 3.13",
29
+ "Topic :: Software Development :: Libraries",
30
+ "Topic :: System :: Filesystems",
31
+ "Typing :: Typed",
32
+ ]
33
+ dependencies = [
34
+ "mcp>=1.0.0",
35
+ "pydantic>=2.0.0",
36
+ ]
37
+
38
+ [project.optional-dependencies]
39
+ dev = [
40
+ "pytest>=8.0",
41
+ "pytest-asyncio>=0.23",
42
+ "ruff>=0.4",
43
+ ]
44
+
45
+ [project.urls]
46
+ Homepage = "https://github.com/elis132/everything-mcp"
47
+ Repository = "https://github.com/elis132/everything-mcp"
48
+ Issues = "https://github.com/elis132/everything-mcp/issues"
49
+ Changelog = "https://github.com/elis132/everything-mcp/blob/main/CHANGELOG.md"
50
+
51
+ [project.scripts]
52
+ everything-mcp = "everything_mcp:main"
53
+
54
+ [tool.hatch.build.targets.wheel]
55
+ packages = ["src/everything_mcp"]
56
+
57
+ [tool.hatch.build.targets.sdist]
58
+ include = ["src/everything_mcp", "README.md", "LICENSE", "CHANGELOG.md", "pyproject.toml"]
59
+
60
+ # ── Testing ───────────────────────────────────────────────────────────────
61
+
62
+ [tool.pytest.ini_options]
63
+ testpaths = ["tests"]
64
+ asyncio_mode = "auto"
65
+ filterwarnings = [
66
+ "ignore::DeprecationWarning",
67
+ ]
68
+
69
+ # ── Linting ───────────────────────────────────────────────────────────────
70
+
71
+ [tool.ruff]
72
+ target-version = "py310"
73
+ line-length = 100
74
+
75
+ [tool.ruff.lint]
76
+ select = ["E", "F", "W", "I", "UP", "B", "SIM"]
77
+ ignore = ["E501"] # line length handled by formatter
78
+
79
+ [tool.ruff.lint.isort]
80
+ known-first-party = ["everything_mcp"]
@@ -1,14 +1,14 @@
1
- """
2
- Everything MCP The definitive MCP server for voidtools Everything.
3
-
4
- Lightning-fast file search for AI agents.
5
- """
6
-
7
- __version__ = "1.0.1"
8
-
9
-
10
- def main() -> None:
11
- """Entry point for the ``everything-mcp`` command."""
12
- from everything_mcp.server import mcp
13
-
14
- mcp.run()
1
+ """
2
+ Everything MCP - The definitive MCP server for voidtools Everything.
3
+
4
+ Lightning-fast file search for AI agents.
5
+ """
6
+
7
+ __version__ = "1.0.3"
8
+
9
+
10
+ def main() -> None:
11
+ """Entry point for the ``everything-mcp`` command."""
12
+ from everything_mcp.server import mcp
13
+
14
+ mcp.run()