@shxiaj/everything-mcp
This server provides an MCP interface to the Everything Windows file search engine, enabling lightning-fast file system queries with the following capabilities:
Search files and folders (
everything_search) — Search your entire Windows file system using Everything's powerful search syntax, including:Wildcards (
*.txt,foo*), boolean operators (AND, OR, NOT)Content search (
content:TODO), size filters (size:>1mb), date filters (datemodified:today)Path/parent filters, file type/extension filters, attribute filters, and regular expressions
Pagination (offset, max results) and case sensitivity, whole-word, and path matching options
Check Everything version (
everything_version) — Retrieve version details of the running Everything instance.Check Everything status (
everything_status) — Verify whether Everything is running and its database is loaded.Get file attributes (
everything_file_info) — Retrieve Windows file attributes (e.g., read-only, hidden) and run count for a specific file or folder path.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@shxiaj/everything-mcpfind all pdf files on desktop"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@shxiaj/everything-mcp
MCP (Model Context Protocol) server for Everything — the lightning-fast Windows file search engine.
Forked and extended from everythingsdk-mcp.
Uses ffi-rs to call the Everything SDK natively and @modelcontextprotocol/sdk for the MCP server protocol.
Features
Dual SDK support — Auto-detects Everything 1.5 (SDK v3) or 1.4 (SDK v2)
Lightning-fast file search — Leverage Everything's native search capabilities
Multiple tools — Search, version check, status, and file info
Flexible configuration — Environment variable overrides for SDK paths
Related MCP server: Everything Search MCP Server
Prerequisites
Windows (the Everything SDK is Windows-only)
Everything 1.4+ installed and running (download)
Node.js 18+ and npm
Installation
npm install
npm run buildUsage
Running the MCP server
npx @shxiaj/everything-mcpThe server communicates via stdin/stdout (MCP stdio transport).
Configuring in Claude Desktop / VS Code Copilot
Add to your MCP client configuration:
{
"mcpServers": {
"@shxiaj/everything-mcp": {
"command": "npx",
"args": ["@shxiaj/everything-mcp"]
}
}
}Environment Variables
Variable | Description | Default |
| Force SDK version ( | Auto-detect |
| Path to the Everything SDK v3 directory |
|
| Full path to the Everything SDK v3 DLL |
|
| Path to the Everything SDK v2 directory |
|
| Full path to the Everything SDK v2 DLL |
|
| Override v3 IPC pipe name | Auto-probe |
Tools
everything_search
Search for files and folders using Everything search syntax.
Parameters:
query(required) — Search query using Everything syntaxmaxResults— Max results (default: 50, max: 1000)offset— Zero-based offset for paginationmatchCase— Case-sensitive searchmatchWholeWord— Match whole words onlymatchPath— Match against full pathregex— Treat query as regex
Everything search syntax examples:
*.txt— all .txt filesfoo bar— files containing both "foo" AND "bar"foo|bar— files containing "foo" OR "bar"ext:jpg size:>1mb— JPEGs larger than 1 MBfolder:node_modules— folders named node_modulescontent:TODO— files containing "TODO" in their contentdatemodified:today— files modified todayparent:C:\Projects— files under C:\Projects
everything_version
Get the version information of the running Everything instance.
everything_status
Check if Everything is running and its database is loaded.
everything_file_info
Get Windows file attributes and run count for a specific file path.
Parameters:
path(required) — Full path to the file or folder
SDK Architecture
src/
├── index.ts # MCP server entry point (tools, request handlers)
├── everything-client.ts # EverythingClient + SdkProvider abstraction
├── ffi-bindings.ts # Raw FFI bindings to Everything3_*.dll (SDK v3, Everything 1.5)
└── ffi-bindings-v14.ts # Raw FFI bindings to Everything*.dll (SDK v2, Everything 1.4)EverythingClient auto-detects the SDK version: tries v3 first, falls back to v2. Override with EVERYTHING_SDK_VERSION=v2 or v3 env var.
SDK v3 (Everything 1.5) vs SDK v2 (Everything 1.4)
Aspect | SDK v3 (Everything 1.5) | SDK v2 (Everything 1.4) |
DLL names |
|
|
API prefix |
|
|
Connection | Explicit | Implicit via IPC on |
State model | Per-client, per-search-state objects | Global mutable state |
Search exec |
|
|
Result props | Must call | Use |
File info | Direct | Requires a search with |
License
MIT
Available Tools
4 toolseverything_file_infoA
Get file attributes (Windows attributes, run count) for a specific file path using Everything.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Full path to the file or folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates the type of data returned (Windows attributes, run count) and the need for a path, but it does not disclose potential errors, permission requirements, whether the tool is a safe read-only operation, or dependencies like the Everything service running. This is a minimal but not fully transparent disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and key details (what it gets, for which path, using which tool). There is no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity (one parameter, no output schema, no annotations). The description explains the purpose and hints at the output content ('Windows attributes, run count') but does not specify the output format or behavior on invalid inputs. Given the lack of output schema, a slightly richer description would improve completeness, but it is adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a complete description for the single parameter 'path' ('Full path to the file or folder'), so the baseline is 3. The tool description adds no extra semantic detail about the parameter beyond what the schema contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get file attributes' for 'a specific file path.' It also lists the types of information included ('Windows attributes, run count') and mentions the tool's context ('using Everything'), which clearly distinguishes it from sibling tools like everything_search (search for files) and everything_version (version info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need file attributes for a given path. It does not explicitly state when to prefer this tool over siblings, nor does it provide exclusions or alternative recommendations. The context is clear but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
everything_searchA
Search for files and folders on Windows using Everything.
Everything search syntax supports:
Basic search: "foo.txt" finds files named foo.txt
Wildcards: ".txt", "foo", ".jpg|.png"
Boolean operators: "foo bar" (AND), "foo|bar" (OR), "!" prefix (NOT)
Content search: "content:hello" searches file contents
Size filters: "size:>1mb", "size:100kb..1mb"
Date filters: "datemodified:today", "datecreated:2024-01-01"
Path filters: "path:Downloads", "parent:C:\Projects"
Attribute filters: "attrib:readonly", "attrib:hidden"
Type filters: "ext:jpg", "type:audio"
Regex: enable regex mode for regex patterns
And many more...
Examples: "ext:jpg size:>1mb", "*.ts", "folder:node_modules", "content:TODO"
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query using Everything search syntax. | |
| maxResults | No | Maximum number of results to return (default: 50, max: 1000). | |
| offset | No | Zero-based offset for pagination (default: 0). | |
| matchCase | No | Match case (default: false). | |
| matchWholeWord | No | Match whole words only (default: false). | |
| matchPath | No | Match against full path, not just filename (default: false). | |
| regex | No | Treat query as a regular expression (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It thoroughly explains query syntax and filtering behavior (wildcards, operators, filters), but does not explicitly state that the operation is read-only, nor describe the return format or error handling. This is a moderate gap for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, followed by a well-organized, concise syntax reference. Every line adds value, and the structure uses clear separators and examples. It is appropriately sized for a tool with complex query syntax.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is rich in query syntax but lacks details about the return format (list of paths?), pagination behavior, or how results integrate with sibling tools like everything_file_info. With no output schema, this is a notable gap. However, the heuristic nature of search results is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful context for the 'query' parameter by providing extensive syntax examples and explanation of operators, which goes beyond the schema's simple 'Search query using Everything search syntax.' Other parameters rely on schema descriptions, which are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for files and folders on Windows using Everything.' This is a specific verb ('Search') with a clear resource ('files and folders') and platform, distinguishing it from siblings like file_info, version, and status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description sets clear context that this tool is for searching using Everything's syntax. It does not explicitly mention alternatives or when-not-to-use, but the extensive syntax guide implies appropriate usage patterns. Given the sibling tools are clearly non-search operations, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
everything_statusA
Check if the Everything search engine is running and its database is loaded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It states the core behavior (status check) but does not disclose whether the tool starts the engine, the return format, or side effects. Given the simplicity of a status check, some might expect a boolean or status object, but that is not explicitly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It immediately states the action and subject, making it easy to parse. Every word carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters, no output schema). However, since no output schema exists, the description should explain what the return value is, but it does not. For a status check, knowing whether it returns a boolean, a status object, or a string is important for downstream use. The description is adequate for selection but not fully complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter details because none exist. The empty schema is fully consistent, and the description does not need to compensate for undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether the Everything search engine is running and its database is loaded. The verb 'Check' and specific resources ('running', 'database loaded') distinguish it from siblings like everything_search (searching) and everything_version (version info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a pre-flight check before using other Everything tools, but it does not explicitly say when to use it or mention alternatives. There is no exclusion or comparison to siblings, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
everything_versionA
Get the version information of the running Everything search engine.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' and the resource clearly indicate a read-only retrieval operation with no side effects. For a simple version check, this is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. Every word earns its place, conveying the exact purpose without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description fully specifies what it does. The lack of return format is acceptable because the tool's output is self-evident and the description is complete for its intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the empty schema is fully covered. Per the rule, a baseline of 4 is appropriate since there are no parameter details to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and identifies the exact resource ('version information of the running Everything search engine'). This distinguishes it from sibling tools like everything_search and everything_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is used when version information is needed. However, it does not explicitly mention alternatives or provide exclusions, though the sibling tools are clearly distinct in purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.1- First observed
everything_file_info - First observed
everything_search - First observed
everything_status - First observed
everything_version
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: file_info for specific file attributes, search for complex queries, status for service health, and version for engine version. No overlap.
All tools follow the consistent pattern 'everything_<verb_or_noun>', using snake_case with clear verb/noun (info, search, status, version).
4 tools cover the core operations (search, file info, status, version) without being too few or too many for a search engine wrapper.
The set covers primary use cases: search, file details, service status, and version. Missing index management tools (e.g., update index) but those are advanced features.
Maintenance
Related MCP Connectors
Provides tools for searching Google Workspace documentation and much more.
Search, browse, and read your Dropbox files. Find documents by name or content, list folders, and…
Search VeChain documentation, query on-chain data, and fetch fee suggestions with direct links to…
Personal asset search engine: everything you make or upload is searchable by what's inside it.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables instant file and folder searching on Windows using Everything's blazing-fast search engine, supporting powerful search syntax including wildcards, regex, size filters, date filters, and comprehensive file information retrieval.545 npm12MIT
- AlicenseNot gradedqualityDmaintenanceProvides fast file searching across Windows, macOS, and Linux using platform-native tools like Everything SDK, mdfind, and locate.MIT
- AlicenseNot gradedqualityDmaintenanceEnables instant file searches on Windows using Everything's native SDK, supporting advanced filters, duplicate detection, and content search through MCP tools.5MIT
- AlicenseNot gradedqualityDmaintenanceProvides lightning-fast filesystem search on Windows via the Everything SDK, with fallback to HTTP API.99 npm2MIT