mcpField
E
Everything Search MCP Server

Everything Search MCP Server

本地服务
usemcp.com搜索与检索3672 周前更新

关于 Everything Search MCP Server

Everything Search MCP Server 为 MCP 客户端提供跨 Windows、macOS 和 Linux 的文件与文件夹搜索,面向需要从 Agent 工作流中查询本机文件的用户。它按系统调用 Everything SDK、Spotlight 或 locate/plocate。

主要功能

  1. 01跨平台搜索文件与文件夹
  2. 02Windows 支持 Everything 搜索语法
  3. 03macOS 使用 Spotlight 数据库
  4. 04Linux 使用 locate/plocate 数据库
  5. 05返回路径、大小与时间戳

适用场景

  1. 01按名称或查询语法查找本机文件
  2. 02限定 macOS 搜索目录
  3. 03按大小或路径排序 Windows 结果

MCP 相关

该 MCP 服务向客户端公开 search 工具,接收查询和平台专属参数,并返回文件与文件夹的路径、名称、大小及时间戳。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"everything-search": {
"command": "uvx",
"args": [
"mcp-server-everything-search"
],
"env": {
"EVERYTHING_SDK_PATH": "<EVERYTHING_SDK_PATH>",
"EVERYTHING_SEARCH_TOOL_NAME": "<EVERYTHING_SEARCH_TOOL_NAME>"
}
}
}
}
启动命令uvx mcp-server-everything-search
需要配置的环境变量
EVERYTHING_SDK_PATHWindows only (required there): full path to Everything64.dll from the Everything SDK
EVERYTHING_SEARCH_TOOL_NAMEOptional tool name (letters, digits, _ and -, 1-64 chars) if 'search' collides with another server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-everything-search0.3.3

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
baseobject是所有平台通用的基础搜索参数。
base.querystring是搜索查询字符串。语法详情请参阅特定平台的文档。
base.max_resultsinteger否要返回的最大结果数(1-1000)
linux_paramsobject否locate 的 Linux 专用搜索参数。
linux_params.count_onlyboolean否仅显示匹配项数量(-c 参数)
linux_params.ignore_caseboolean否忽略大小写差异(-i 参数)
linux_params.regex_searchboolean否在模式中使用正则表达式(-r 参数)
linux_params.existing_filesboolean否仅输出现存文件(-e 参数)

详细介绍

Everything Search MCP 服务

PyPI CI

一个 MCP 服务,可在 Windows、macOS 和 Linux 上快速搜索文件。在 Windows 上,它使用 Everything SDK;在 macOS 上,它使用内置的 mdfind 命令;在 Linux 上,它使用 locate/plocate 命令。

需要 Python 3.10 或更高版本。自 0.3.0 起,该服务基于 MCP Python SDK 2.x 构建。发行说明请参阅 CHANGELOG.md。

工具

search

在系统中搜索文件和文件夹。各平台支持的搜索功能和语法有所不同:

  • Windows:支持完整的 Everything SDK 功能(见下方语法指南)
  • macOS:使用 Spotlight 数据库进行基本的文件名和内容搜索
  • Linux:使用 locate 数据库进行基本的文件名搜索

参数分为 base 对象(适用于所有平台)和平台专属对象。该服务只会在工具架构中公布当前平台对应的对象。

base(必填):

  • query(必填):搜索查询字符串。请参阅语法指南。
  • max_results(可选):返回结果的数量上限(默认值:100,范围:1-1000)

windows_params(可选,仅限 Windows):

  • match_path:匹配完整路径,而不仅是文件名(默认值:false)
  • match_case:启用区分大小写搜索(默认值:false)
  • match_whole_word:仅匹配完整单词(默认值:false)
  • match_regex:启用正则表达式搜索(默认值:false)
  • sort_by:结果的排序顺序(默认值:1)。可用选项:
  - 1: Sort by filename (A to Z)
  - 2: Sort by filename (Z to A)
  - 3: Sort by path (A to Z)
  - 4: Sort by path (Z to A)
  - 5: Sort by size (smallest first)
  - 6: Sort by size (largest first)
  - 7: Sort by extension (A to Z)
  - 8: Sort by extension (Z to A)
  - 11: Sort by creation date (oldest first)
  - 12: Sort by creation date (newest first)
  - 13: Sort by modification date (oldest first)
  - 14: Sort by modification date (newest first)

mac_params(可选,仅限 macOS):

  • search_directory:将搜索范围限定在某个目录中(mdfind -onlyin)。~ 会展开;该目录必须存在。
  • literal_query:将查询视为字面形式的 Spotlight 查询字符串(-literal)
  • interpret_query:将查询按在 Spotlight 菜单中输入的方式进行解释(-interpret)
  • live_updates:不支持。mdfind -live 不会退出,因此设置该参数会返回错误。

默认情况下,查询用于搜索文件名(mdfind -name)。设置 literal_query 或 interpret_query 会将查询原样传递给 Spotlight;这类查询不能以 - 开头,否则 mdfind 会将其视为选项。

linux_params(可选,仅限 Linux):

  • ignore_case:不区分大小写搜索,-i(默认值:true)
  • regex_search:将查询视为正则表达式(默认值:false)
  • existing_files:仅列出仍然存在的文件,-e(默认值:true)
  • count_only:仅返回匹配数量,-c(默认值:false)

示例:

{
  "base": {"query": "*.py", "max_results": 50},
  "windows_params": {"sort_by": 6}
}
{
  "base": {"query": "ext:py datemodified:today", "max_results": 10}
}
{
  "base": {"query": "ENABLE", "max_results": 50},
  "mac_params": {"search_directory": "/Users/me/code/myrepo"}
}

每个结果都包含:

  • Path:完整路径
  • Filename:名称;如果有扩展名,则在括号中显示
  • Size:以字节为单位的大小
  • Created、Modified、Accessed:时间戳;如果不可用,则显示 N/A

如果搜索失败(例如参数无效、Everything 未运行,或搜索命令耗时超过 30 秒),工具会返回错误结果(isError: true),其文本以 Search failed: 开头。

在 Windows 上,如果无法从 Everything 读取部分匹配结果(例如文件的时间戳已损坏),则会返回可读取的结果,并在输出末尾显示 Warning: N matching result(s) could not be read and were omitted.。

搜索语法指南

有关各平台(Windows、macOS 和 Linux)所支持搜索语法的详细信息,请参阅 SEARCH_SYNTAX.md。

前置条件

Windows
  1. Everything 搜索工具:
  2. Everything SDK:
Linux
  1. 安装并初始化 locate 或 plocate 命令:
    • Ubuntu/Debian:sudo apt-get install plocate 或 sudo apt-get install mlocate
    • Fedora:sudo dnf install mlocate
  2. 安装后,更新数据库:
    • 对于 plocate:sudo updatedb
    • 对于 mlocate:sudo /etc/cron.daily/mlocate
macOS

无需额外设置。服务使用内置的 mdfind 命令。

安装

使用 uv(推荐)

使用 uv 时,无需进行特定安装。我们将使用 uvx 直接运行 mcp-server-everything-search。

从 0.2.x 升级: uvx 可能会继续使用缓存中的 0.2.1,导致其无法通过当前 MCP SDK 启动('Server' object has no attribute 'list_resources',参见 #39)。使用最新版本运行一次以刷新缓存:

uvx mcp-server-everything-search@latest
使用 PIP

或者,你也可以通过 pip 安装 mcp-server-everything-search:

pip install -U mcp-server-everything-search

安装后,可以通过以下方式将其作为脚本运行:

python -m mcp_server_everything_search

配置

Windows

将 EVERYTHING_SDK_PATH 设置为 Everything SDK 中 Everything64.dll 的完整路径。此项为必需:如果未设置该变量或其路径未指向文件,服务会在启动时停止,并报告该变量名称。

EVERYTHING_SDK_PATH=C:\path\to\Everything-SDK\dll\Everything64.dll
Linux 和 macOS

无需额外配置。

工具名称

默认情况下,工具名为 search。如果该名称与客户端中另一个 MCP 服务的工具名称冲突,请为其重命名:

EVERYTHING_SEARCH_TOOL_NAME=everything_search

名称可以包含字母、数字、_ 和 -(1–64 个字符)。如果值无效,服务会在启动时停止。

与 Claude Code 配合使用

Windows:

claude mcp add everything-search -e EVERYTHING_SDK_PATH="C:\path\to\Everything-SDK\dll\Everything64.dll" -- uvx mcp-server-everything-search

Linux 和 macOS:

claude mcp add everything-search -- uvx mcp-server-everything-search
与 Claude Desktop 配合使用

根据你的平台,将以下某个配置添加到 claude_desktop_config.json:

Windows(使用 uvx)
{
  "mcpServers": {
    "everything-search": {
      "command": "uvx",
      "args": ["mcp-server-everything-search"],
      "env": {
        "EVERYTHING_SDK_PATH": "path/to/Everything-SDK/dll/Everything64.dll"
      }
    }
  }
}
Windows(使用 pip 安装)
{
  "mcpServers": {
    "everything-search": {
      "command": "python",
      "args": ["-m", "mcp_server_everything_search"],
      "env": {
        "EVERYTHING_SDK_PATH": "path/to/Everything-SDK/dll/Everything64.dll"
      }
    }
  }
}
Linux 和 macOS
{
  "mcpServers": {
    "everything-search": {
      "command": "uvx",
      "args": ["mcp-server-everything-search"]
    }
  }
}

或者,如果使用 pip 安装:

{
  "mcpServers": {
    "everything-search": {
      "command": "python",
      "args": ["-m", "mcp_server_everything_search"]
    }
  }
}

调试

你可以使用 MCP inspector 调试服务。对于 uvx 安装:

npx @modelcontextprotocol/inspector uvx mcp-server-everything-search

或者,如果你已将软件包安装到特定目录,或正在开发该软件包:

git clone https://github.com/mamertofabian/mcp-everything-search.git
cd mcp-everything-search
npx @modelcontextprotocol/inspector uv run mcp-server-everything-search

查看服务日志:

Linux/macOS:

tail -f ~/.config/Claude/logs/mcp*.log

Windows(PowerShell):

Get-Content -Path "$env:APPDATA\Claude\logs\mcp*.log" -Tail 20 -Wait

开发

如果你正在进行本地开发,有两种方式可以测试更改:

  1. 运行 MCP inspector 测试更改。运行说明请参阅调试。

  2. 使用 Claude 桌面应用测试。将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "everything-search": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-everything-search",
        "run",
        "mcp-server-everything-search"
      ],
      "env": {
        "EVERYTHING_SDK_PATH": "path/to/Everything-SDK/dll/Everything64.dll"
      }
    }
  }
}
测试和检查
uv run pytest
uv run ruff check
uv run pyright

CI 会在 Windows、macOS 和 Linux 上运行测试(Python 3.10 和 3.13)。代码更改以 manifests/ 中的 MAID 清单形式规划;请参阅 CLAUDE.md/AGENTS.md,并在提交拉取请求前运行 scripts/maid validate。

许可证

此 MCP 服务采用 MIT License 授权。这意味着你可以自由使用、修改和分发该软件,但须遵守 MIT License 的条款和条件。更多详情请参阅项目仓库中的 LICENSE 文件。

免责声明

本项目与 voidtools(Everything 搜索工具的开发者)无关联,未获得其认可或赞助。本项目为独立项目,使用公开提供的 Everything SDK。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。