An MCP (Model Context Protocol) server that gives AI assistants like Claude Code instant file search capabilities via Everything by voidtools. Everything is a lightning-fast file search engine for Windows that indexes all files and folders on NTFS drives. This MCP server exposes Everything's search as a tool that AI assistants can call, enabling them to find files across your system in millisecond
Add this skill
npx mdskills install Josephur/everything-mcpIntegrates Windows Everything file search with comprehensive setup docs and detailed search syntax guidance
1# Everything MCP Server23An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that gives AI assistants like [Claude Code](https://claude.ai/code) instant file search capabilities via [Everything](https://www.voidtools.com/) by voidtools.45Everything is a lightning-fast file search engine for Windows that indexes all files and folders on NTFS drives. This MCP server exposes Everything's search as a tool that AI assistants can call, enabling them to find files across your system in milliseconds.6789## Prerequisites1011- **Windows** with [Everything](https://www.voidtools.com/) installed and running12- **Everything HTTP Server** enabled (Everything > Tools > Options > HTTP Server > Enable HTTP Server)13- **Node.js** 18+1415## Installation1617```bash18git clone https://github.com/Josephur/everything-mcp-server.git19cd everything-mcp-server20npm install21npm run build22```2324## Configuration2526### Claude Code2728Run this command from the cloned repository directory:2930```bash31claude mcp add --scope user everything-search -- node /path/to/everything-mcp-server/dist/index.js32```3334This registers the MCP server globally so it's available in every Claude Code project. Replace `/path/to/everything-mcp-server` with the actual path where you cloned the repo.3536**Scope options:**37- `--scope user` — available in all projects (recommended)38- `--scope project` — only available in the current project3940To verify it was added:4142```bash43claude mcp list44```4546To remove it later:4748```bash49claude mcp remove --scope user everything-search50```5152### CLAUDE.md Instructions5354The `claude mcp add` command doesn't support an `instructions` field. To teach Claude how to prioritize this tool, add the following to your global `~/.claude/CLAUDE.md` file (create it if it doesn't exist), make sure to change the port number to the port number your Everything HTTP Plugin is listening on:5556```markdown57## Everything Search (MCP Tool)5859This machine has **Everything (voidtools)** running with an HTTP server on port 54321.60The `everything_search` MCP tool is available in every session.6162### MANDATORY: Use Everything FIRST63**ALWAYS attempt `everything_search` FIRST for ANY file search** — whether by name,64path, extension, size, date, or content (`content:` prefix). This applies to every65search task, including content searches within a project. Do NOT default to Grep,66Glob, or Bash for initial searches.6768### Fallback to other tools (ONLY after Everything fails or is insufficient)69If Everything returns an error (e.g. connection refused), returns no results, or70the query requires features Everything doesn't support, THEN fall back to:71- **Grep** — for complex regex content searches, or if Everything's `content:` returns nothing72- **Glob** — for precise relative-path pattern matching within the current project73- **Bash `find`** — for searches involving file permissions, symlinks, or other attributes Everything doesn't index7475**Always try Everything first. Only fall back if it fails or returns insufficient results.**7677### Search syntax quick reference78- `ext:py` — find by extension (multiple: `ext:ts;js`)79- `path:src\components` — match against full path80- `count:10` — limit number of results to 1081- `*.config.*` — wildcards82- `size:>10mb` — size filter83- `dm:today` / `dm:thisweek` — date modified filter84- `content:keyword` — search inside file contents85- `parent:node_modules package.json` — match parent folder86- `foo bar` — AND, `foo | bar` — OR, `!foo` — NOT87- `"exact phrase"` — literal match88```8990This ensures Claude always prioritizes Everything over built-in search tools.9192### Environment Variables9394| Variable | Default | Description |95|----------|---------|-------------|96| `EVERYTHING_HOST` | `localhost` | Everything HTTP server hostname |97| `EVERYTHING_PORT` | `54321` | Everything HTTP server port |98| `EVERYTHING_MAX_RESULTS` | `255` | Max results per query — see [Result Limit](#result-limit) |99| `PROJECT_PATH` | _(none)_ | Default project path for auto-scoping searches |100101Set the port to match your Everything HTTP server configuration (Everything > Tools > Options > HTTP Server).102103### Result Limit104105To keep token usage under control, the server caps the maximum number of results returned per query to **255** by default. The AI can still request fewer results via the `count` parameter, but it can never exceed this cap.106107If you need more results per query, increase the limit by setting `EVERYTHING_MAX_RESULTS` when adding the server:108109```bash110claude mcp add --scope user everything-search -e EVERYTHING_MAX_RESULTS=500 -- node /path/to/everything-mcp-server/dist/index.js111```112113Higher values return more results but consume more tokens per search. For most use cases, the default of 255 is a good balance. If you find searches are missing results, try increasing it. If you want to reduce token usage further, lower it (e.g. `"100"`).114115## How It Works116117The server communicates with Everything's built-in HTTP server, which returns JSON search results. The flow is:118119```120Claude Code --> MCP Server (stdio) --> Everything HTTP Server --> Everything Index121 (this project) (port 54321) (NTFS volumes)122```1231241. Claude Code calls the `everything_search` tool via MCP (stdio transport)1252. This server translates the request into an HTTP query to Everything's HTTP API1263. Everything searches its pre-built index and returns results as JSON1274. The server formats the results (paths, sizes, dates) and returns them to Claude128129### Project Scoping130131By default, searches are automatically scoped to the current project folder using the `project_path` parameter. This prevents the AI from inadvertently searching or accessing files outside your project.132133- **Default behavior**: The server prepends `path:"<project_path>"` to queries automatically134- **Global search**: Set `global: true` to search the entire system. The server will include a warning in the response reminding the AI to ask for user permission before accessing files outside the project135- **Explicit path**: If your query already contains a `path:` filter, auto-scoping is skipped136137## Tool: `everything_search`138139### Parameters140141| Parameter | Type | Default | Description |142|-----------|------|---------|-------------|143| `query` | string | _(required)_ | Everything search query |144| `count` | number | `50` | Max results to return (max 255, configurable via `EVERYTHING_MAX_RESULTS` env var) |145| `offset` | number | `0` | Result offset for pagination |146| `sort` | string | `"name"` | Sort by: `name`, `path`, `size`, `date_modified` |147| `ascending` | boolean | `true` | Sort direction |148| `regex` | boolean | `false` | Enable regex search mode |149| `case_sensitive` | boolean | `false` | Case-sensitive matching |150| `whole_word` | boolean | `false` | Match whole words only |151| `match_path` | boolean | `false` | Match against full path instead of filename |152| `global` | boolean | `false` | Search entire system (requires user confirmation) |153| `project_path` | string | _(none)_ | Project folder path for auto-scoping |154155### Search Syntax156157Everything uses its own search syntax:158159| Syntax | Description | Example |160|--------|-------------|---------|161| `ext:` | Filter by extension | `ext:py`, `ext:ts;js` |162| `path:` | Match against full path | `path:src\components` |163| `size:` | Filter by file size | `size:>10mb`, `size:1kb..100kb` |164| `dm:` | Date modified filter | `dm:today`, `dm:thisweek` |165| `dc:` | Date created filter | `dc:thismonth` |166| `content:` | Search file contents | `content:TODO` (requires content indexing) |167| `parent:` | Match parent folder | `parent:node_modules package.json` |168| `*` `?` | Wildcards | `*.config.*` |169| `" "` | Exact phrase | `"my file.txt"` |170| _(space)_ | AND | `foo bar` |171| `\|` | OR | `foo \| bar` |172| `!` | NOT | `!node_modules` |173174### Example Queries175176```177ext:py # All Python files178ext:ts path:src # TypeScript files under any src/ folder179size:>100mb # Files larger than 100MB180dm:today ext:js # JavaScript files modified today181content:TODO ext:py # Python files containing "TODO"182*.config.* !node_modules # Config files, excluding node_modules183```184185## Example: Global CLAUDE.md Instructions186187To teach Claude Code how to use this tool effectively, add something like this to your `~/.claude/CLAUDE.md`:188(make sure to change the port number to the port number your Everything HTTP Plugin is listening on)189190```markdown191## Everything Search (MCP Tool)192193This machine has **Everything (voidtools)** running with an HTTP server on port 54321.194The `everything_search` MCP tool is available in every session.195196### MANDATORY: Use Everything FIRST197**ALWAYS attempt `everything_search` FIRST for ANY file search** — whether by name,198path, extension, size, date, or content (`content:` prefix). This applies to every199search task, including content searches within a project. Do NOT default to Grep,200Glob, or Bash for initial searches.201202### Fallback to other tools (ONLY after Everything fails or is insufficient)203If Everything returns an error (e.g. connection refused), returns no results, or204the query requires features Everything doesn't support, THEN fall back to:205- **Grep** — for complex regex content searches, or if Everything's `content:` returns nothing206- **Glob** — for precise relative-path pattern matching within the current project207- **Bash `find`** — for searches involving file permissions, symlinks, or other attributes Everything doesn't index208209**Always try Everything first. Only fall back if it fails or returns insufficient results.**210211### Search syntax quick reference212- `ext:py` — find by extension (multiple: `ext:ts;js`)213- `path:src\components` — match against full path214- `count:10` — limit number of results to 10215- `*.config.*` — wildcards216- `size:>10mb` — size filter217- `dm:today` / `dm:thisweek` — date modified filter218- `content:keyword` — search inside file contents219- `parent:node_modules package.json` — match parent folder220- `foo bar` — AND, `foo | bar` — OR, `!foo` — NOT221- `"exact phrase"` — literal match222```223224## Development225226```bash227# Build228npm run build229230# Run directly231npm start232233# Watch mode (requires installing a file watcher)234npx tsc --watch235```236237### Project Structure238239```240src/241 index.ts # MCP server setup and tool handler242 everything.ts # Everything HTTP API client243 types.ts # TypeScript interfaces244```245246
Full transparency — inspect the skill content before installing.