Skip to main content
Glama
Santisoutoo

everything-mcp

by Santisoutoo

everything-mcp

CI License: MIT

MCP server that exposes Everything (voidtools) instant file search to LLM agents such as Claude Code. It searches file and folder names across the entire disk in milliseconds using Everything's index — a complement to Glob/Grep, which only see the current project.

Features

  • Whole-disk filename search in milliseconds via Everything's live index.

  • Native Everything query syntax (ext:, path:, dm:today, size:>10mb, folder:, file:, |, !) passed straight through — no need for extra tools.

  • Pagination with offset and a total_results count, so an agent knows when to page.

  • everything_status diagnostic tool to check the index is ready before searching.

  • Windows via the Everything SDK dll over local IPC — no open ports, no per-search subprocess.

Related MCP server: Everything MCP Server

Requirements

  • Windows with Everything running (living in the tray is enough).

  • Everything64.dll from the Everything SDK.

  • Python ≥3.11 and uv.

Setup

  1. Clone the repo

    git clone https://github.com/Santisoutoo/everything-mcp.git
    cd everything-mcp
  2. Provide the DLL. Download the Everything SDK and copy dll/Everything64.dll into lib/ (not versioned in the repo), or point the EVERYTHING_DLL environment variable at the dll wherever it lives.

  3. Register it in Claude Code (user scope, available in every session):

    claude mcp add --scope user everything -- uv run --directory C:\path\to\everything-mcp everything-mcp

    Replace C:\path\to\everything-mcp with the absolute path where you cloned the repo.

Tools

search_files

search_files(query, max_results=50, offset=0, match_case=False,
             match_whole_word=False, match_path=False, regex=False, sort="default")

Parameter

Meaning

query

Everything query. Space = AND; wildcards * ?; filters like ext:pdf;docx, path:"C:\Users", parent:"D:\media", folder:, file:, dm:today, size:>10mb; operators `

max_results

Cap on returned rows (1–1000).

offset

Skip N results (pagination).

match_case

Case-sensitive matching.

match_whole_word

Require each term to match a whole word.

match_path

Match terms against the full path, not just the name.

regex

Treat query as a regular expression.

sort

One of default (index order), name, path, size (largest first), date_modified (newest first).

Returns {total_results, results: [{path, is_folder, size, modified}]}. total_results is the full match count; page with offset when it exceeds max_results. Searches names only, not file contents.

everything_status

Returns {available, db_loaded, version, indexed_items}, or {available: false, error} when Everything is not running. Useful for an agent to confirm the index is ready before searching.

Development

uv sync
uv run pytest          # smoke tests (self-skip when Everything is not running)
uv run ruff check .    # lint
uv run mypy src        # type-check
uv run everything-mcp  # start the server over stdio

License

Released under the MIT License.

Available Tools

2 tools
everything_statusA

Report whether Everything is reachable and its index is ready.

Call this to self-diagnose before searching: returns available (bool), db_loaded (False while Everything is still building its index), version, and indexed_items (total files+folders indexed). On failure returns available: False with an actionable error message.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the returned fields (available, db_loaded, version, indexed_items) and explains the meaning of db_loaded (False while building index), plus the failure behavior with an actionable error. This goes beyond a minimal description, though it doesn't cover every nuance like potential performance or networking details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: it states the purpose, gives the usage context, and lists the return fields concisely. Every sentence adds value, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters), the presence of an output schema, and the clear annotations, the description is complete. It covers purpose, usage context, and behavior without being verbose. The connection to the sibling tool search_files is implied appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to explain parameter semantics. Per the rubric, a zero-parameter tool receives a baseline score of 4, and the description appropriately omits any parameter-specific details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reports whether Everything is reachable and index-ready, with a specific verb ('Report') and resource. It distinguishes itself from the sibling tool search_files by positioning itself as a pre-search diagnostic, making it immediately clear when this tool is relevant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Call this to self-diagnose before searching' provides explicit context for when to use the tool. While it does not name the sibling tool as a direct alternative, the instruction to use it 'before searching' implies a workflow that complements search_files, which is adequate usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filesA

Instantly search file and folder NAMES across the entire disk using the Everything index (use this instead of recursive directory listings when the target is outside the current project).

query uses Everything's native syntax — exploit it instead of filtering results yourself:

  • Plain words match anywhere in the name: informe tfg (space = AND).

  • Wildcards: *.sfz, foto_202?.jpg. Extension filter: ext:pdf;docx.

  • Scope to a folder tree: path:"C:\Users\santi\Documents" factura. Direct children only: parent:"C:\Users\santi\Desktop".

  • Only folders / only files: folder:node_modules, file:*.log.

  • Dates: dm:today, dm:lastweek, dm:2026. Size: size:>10mb.

  • Operators: | (OR), ! (NOT), quotes for exact phrases.

Searches names only, NOT file contents. total_results in the response is the full match count; page with offset if it exceeds max_results. match_whole_word requires each search term to match a whole word. match_path matches the terms against the full path, not just the name. sort is one of: default (index order), name, path, size (largest first), date_modified (newest first).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNodefault
queryYes
regexNo
offsetNo
match_caseNo
match_pathNo
max_resultsNo
match_whole_wordNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses that only names are searched (not contents), explains pagination via total_results and offset, details query syntax operators, and specifies behavior for match_whole_word, match_path, and sort. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a front-loaded purpose, followed by a compact but thorough query syntax guide. Every sentence provides value, and the bullet points improve readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex search tool with no annotations, this description is highly complete. It covers search scope, query language, pagination, sorting, and edge behaviors. Since an output schema exists, return value details are appropriately delegated, and the description focuses on behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate; it extensively explains query, offset, max_results, sort, match_whole_word, and match_path. However, regex and match_case are not mentioned, leaving minor gaps for those parameters. Overall it adds substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches file and folder NAMES across the entire disk using the Everything index, with a specific verb and resource. It also distinguishes itself from recursive directory listings and the sibling tool (everything_status), making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using this tool instead of recursive directory listings when the target is outside the current project, and instructs to exploit Everything's native syntax rather than filtering results yourself. This provides strong when-to-use guidance and names an alternative approach.

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. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observedeverything_status
    • First observedsearch_files

TDQS

A4.4/5.0
Disambiguation5/5

The two tools serve clearly distinct purposes: one checks the status of the Everything index, the other performs searches. There is no overlap or ambiguity between them.

Naming Consistency3/5

The tool names follow different patterns: 'search_files' is verb_noun, while 'everything_status' is a noun phrase. Both are readable and use snake_case, but the inconsistency in pattern is noticeable.

Tool Count3/5

With only two tools, the server is minimal. The search tool is the core functionality and the status tool is a useful helper, but the set feels slightly thin for a full-featured server.

Completeness5/5

The server fully covers its stated purpose of searching file names via the Everything index. The search tool offers extensive query syntax and pagination, while the status tool provides essential readiness information. No obvious gaps for the intended use case.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Provides integration with Everything Search Engine allowing powerful file search capabilities through the Model Context Protocol with advanced search options like regex, case sensitivity, and sorting.
    1
    10
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    45
    12
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates with Everything Search Engine to provide lightning-fast file search capabilities across Windows systems using natural language queries and advanced filtering options through MCP-compatible applications.
    1
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search local files on Windows using the Everything search engine, supporting basic and complex file searches with filters like date, size, media type, and document type.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Santisoutoo/everything-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server