everything-mcp 1.0.0__py3-none-any.whl → 1.0.2__py3-none-any.whl

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.
@@ -4,7 +4,7 @@ Everything MCP — The definitive MCP server for voidtools Everything.
4
4
  Lightning-fast file search for AI agents.
5
5
  """
6
6
 
7
- __version__ = "1.0.0"
7
+ __version__ = "1.0.2"
8
8
 
9
9
 
10
10
  def main() -> None:
everything_mcp/backend.py CHANGED
@@ -199,7 +199,8 @@ class EverythingBackend:
199
199
  async def count(self, query: str) -> int:
200
200
  """Return the number of results for *query* without listing them."""
201
201
  cmd = self._base_cmd()
202
- cmd.extend(["-n", "0", "-get-result-count", query])
202
+ # Important: do not combine with "-n 0" because es.exe then reports 0.
203
+ cmd.extend(["-get-result-count", query])
203
204
  stdout, stderr, rc = await self._run(cmd)
204
205
 
205
206
  if rc != 0:
@@ -213,7 +214,8 @@ class EverythingBackend:
213
214
  async def get_total_size(self, query: str) -> int:
214
215
  """Return the total size in bytes of all files matching *query*."""
215
216
  cmd = self._base_cmd()
216
- cmd.extend(["-n", "0", "-get-total-size", query])
217
+ # Important: do not combine with "-n 0" because es.exe then reports 0.
218
+ cmd.extend(["-get-total-size", query])
217
219
  stdout, stderr, rc = await self._run(cmd)
218
220
 
219
221
  if rc != 0:
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: everything-mcp
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
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
@@ -31,15 +31,18 @@ Requires-Dist: pytest>=8.0; extra == 'dev'
31
31
  Requires-Dist: ruff>=0.4; extra == 'dev'
32
32
  Description-Content-Type: text/markdown
33
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.
34
+ <div align="center">
35
+ <h1>⚡ Everything MCP</h1>
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>
38
+ </p>
39
+ <p>
40
+ <a href="https://pypi.org/project/everything-mcp/"><img alt="PyPI" src="https://img.shields.io/pypi/v/everything-mcp"></a>
41
+ <a href="https://pypi.org/project/everything-mcp/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/everything-mcp"></a>
42
+ <a href="LICENSE"><img alt="License" src="https://img.shields.io/github/license/elis132/everything-mcp"></a>
43
+ </p>
44
+ <p>Search millions of files in milliseconds. Built for <strong>Claude Code</strong>, <strong>Codex</strong>, <strong>Gemini</strong>, <strong>Kimi</strong>, <strong>Qwen</strong>, <strong>Cursor</strong>, <strong>Windsurf</strong>, and any MCP-compatible client.</p>
45
+ </div>
43
46
 
44
47
  ---
45
48
 
@@ -57,6 +60,48 @@ Search millions of files in milliseconds. Built for **Claude Code**, **Codex**,
57
60
  | **Test suite** | ✅ pytest | ❌ | ❌ |
58
61
  | **Zero config** | ✅ Works out of the box | ❌ Need SDK DLL path | ❌ Need es.exe in PATH |
59
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
+
60
105
  ## Installation
61
106
 
62
107
  ### Prerequisites
@@ -0,0 +1,11 @@
1
+ everything_mcp/__init__.py,sha256=TzPl7R_wjHUa4VP8tPndrKEDYBTjTKV2vOr5NK7RN7Y,282
2
+ everything_mcp/__main__.py,sha256=vmT0CZ9tECJGqYncEBFRkZsCA8PtWDPsAxZGhip6fN8,125
3
+ everything_mcp/backend.py,sha256=Dr1EYRu1xZG0Mlwp_m4NeLti1ICG-xY87DZAEhK03uQ,16394
4
+ everything_mcp/config.py,sha256=kb4mnPhqk0vAbrDwwrS1DEaA1LIyiuVhagt1lxFzRhE,8840
5
+ everything_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ everything_mcp/server.py,sha256=Vx2wIj77vfVrAoYhBPVaxTu7CJvbclixguNAn-lsiPk,27850
7
+ everything_mcp-1.0.2.dist-info/METADATA,sha256=2Ud4DqEu2a6HhtbhUw6IipzYjQyMZUZutOE1xgx68ZU,15442
8
+ everything_mcp-1.0.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
+ everything_mcp-1.0.2.dist-info/entry_points.txt,sha256=uML8cv-F-LLAO48ed5Bb8dvt2vue0zkvOIZLPMxskyo,55
10
+ everything_mcp-1.0.2.dist-info/licenses/LICENSE,sha256=lOzySWZ47IwlWsg4jIvVdxDpca_vVry3jnR_Ibqes4g,1064
11
+ everything_mcp-1.0.2.dist-info/RECORD,,
@@ -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,11 +0,0 @@
1
- everything_mcp/__init__.py,sha256=yMBXYKJopQ2256VMp26LY7m6otpwzH-HtzfNjO7dROw,282
2
- everything_mcp/__main__.py,sha256=vmT0CZ9tECJGqYncEBFRkZsCA8PtWDPsAxZGhip6fN8,125
3
- everything_mcp/backend.py,sha256=mEYoIreYx8a6WvpaQua_SsKFk1VbTS6Gmf_8gjxiry8,16258
4
- everything_mcp/config.py,sha256=kb4mnPhqk0vAbrDwwrS1DEaA1LIyiuVhagt1lxFzRhE,8840
5
- everything_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- everything_mcp/server.py,sha256=Vx2wIj77vfVrAoYhBPVaxTu7CJvbclixguNAn-lsiPk,27850
7
- everything_mcp-1.0.0.dist-info/METADATA,sha256=dtAV_uuL75VXp-JbatyunYLEx0983Mf8wUFwViZXR6E,14068
8
- everything_mcp-1.0.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
- everything_mcp-1.0.0.dist-info/entry_points.txt,sha256=uML8cv-F-LLAO48ed5Bb8dvt2vue0zkvOIZLPMxskyo,55
10
- everything_mcp-1.0.0.dist-info/licenses/LICENSE,sha256=c6FS4K8gERQWxn6ykdwXZKCYhUV3_Av3Qx1oguEyzZU,1061
11
- everything_mcp-1.0.0.dist-info/RECORD,,