文件搜索服务

一个基于Everything SDK的MCP服务器,提供即时文件搜索功能,支持高级过滤、重复文件检测和内容搜索。

  • by peterparker57
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 peterparker57/everything-mcp-server

使用说明

所有MCP服务器

一个模型上下文协议(MCP)服务器,使用Everything的原生SDK提供即时文件搜索功能。该服务器将Everything强大的搜索引擎与AI工具集成在一起,通过MCP界面实现闪电般快速的文件系统搜索。

特性

  • 🔍 即时文件搜索:利用Everything的即时索引进行近乎即时的文件搜索
  • 🎯 高级过滤:按路径、扩展名、大小、修改日期等搜索
  • 🔄 副本检测:在系统中查找重复文件
  • 📄 内容搜索:在文件内容中搜索(需要Everything内容索引)
  • ⚡ 高性能:通过本机SDK集成直接访问API
  • 🛡️ 只读的:安全、非破坏性的文件系统访问

提供的工具

1. search_files

使用正则表达式和区分大小写选项进行基本文件搜索。

参数:

  • query (string):搜索文件名查询
  • maxResults (数字,可选):返回的最大结果数(默认值:100)
  • matchCase (布尔值,可选):启用区分大小写的搜索
  • matchWholeWord (布尔值,可选):仅匹配整个单词
  • regex (boolean,可选):启用正则表达式搜索

2. search_files_advanced

具有全面过滤选项的高级搜索。

参数:

  • query (string):搜索文件名查询
  • path (字符串,可选):将搜索限制到特定路径
  • extension (字符串,可选):按文件扩展名过滤(例如“txt”、“pdf”)
  • size (字符串,可选):按文件大小筛选(例如,“>1mb”、“<100kb”、“1gb..2gb”)
  • dateModified (字符串,可选):按修改日期筛选(例如,“今天”、“昨天”、“本周”、“2024”)
  • maxResults (数字,可选):返回的最大结果数(默认值:100)
  • matchCase (布尔值,可选):启用区分大小写的搜索
  • matchWholeWord (布尔值,可选):仅匹配整个单词
  • regex (boolean,可选):启用正则表达式搜索
  • sortBy (枚举,可选):按字段对结果进行排序(name_asc、name_desc、path_asc、path_desc、size_asc、size_desc、date_asc、date_desc)

3. find_duplicates

按文件名查找重复文件。

参数:

  • filename (string):用于搜索重复项的文件名
  • path (字符串,可选):将搜索限制到特定路径
  • maxResults (数字,可选):返回的最大结果数(默认值:50)

4. search_content

在文件中搜索文本内容。

参数:

  • content (string):要在文件中搜索的文本内容
  • fileTypes (字符串,可选):仅限于特定文件类型(例如,“txt;doc;pdf”)
  • path (字符串,可选):将搜索限制到特定路径
  • maxResults (数字,可选):返回的最大结果数(默认值:50)

先决条件

  1. Everything应用程序:必须安装并运行

  2. Node.js:支持ES模块的18+版本

  3. Windows操作系统:Everything SDK兼容性所需

安装

  1. 克隆存储库:
git clone https://github.com/peterparker57/everything-mcp-server.git
cd everything-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置

将服务器添加到MCP设置文件中:

{
  "mcpServers": {
    "everything": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["path/to/everything-mcp-server/build/index.js"],
      "disabled": false,
      "env": {},
      "alwaysAllow": [
        "search_files",
        "search_files_advanced",
        "find_duplicates",
        "search_content"
      ]
    }
  }
}

使用示例

基本文件搜索

Search for: "msbuild.exe"
Options: Case sensitive, max 50 results

使用过滤器进行高级搜索

Query: "*.pdf"
Path: "C:\\Documents"
Size: ">1mb"
Date Modified: "thisweek"
Sort: "size_desc"

参考文献查重

Filename: "config.json"
Path: "C:\\Projects" (optional)

内容搜索

Content: "function main"
File Types: "js;ts;py"
Path: "C:\\Code" (optional)

建筑

技术栈

  • 语言:TypeScript
  • 框架:MCP SDK(@modelcontextprotocol/SDK)
  • FFI 图书 馆:koffi(用于本机DLL集成)
  • 模块系统:ES模块
  • 目标:Everything SDK(Windows文件搜索实用程序)

关键组件

  1. 主服务器 (src/index.ts):核心MCP服务器实现
  2. Everything SDK:用于文件搜索的本机Windows DLL
  3. 构建系统:将TypeScript编译为ES模块
  4. 配置:支持ES模块的Package.json

发展

建筑

npm run build

测试

直接启动服务器进行测试:

node build/index.js

项目结构

everything-mcp-server/
├── src/
│   └── index.ts          # Main server implementation
├── EverythingSDK/        # Everything native SDK files
│   └── dll/
│       ├── Everything32.dll
│       └── Everything64.dll
├── build/                # Compiled JavaScript output
├── package.json          # Project configuration
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

故障排除

“所有搜索客户端均未运行”

  • 启动Everything应用程序
  • 确保它在没有服务的情况下不会以便携模式运行

“连接已关闭”MCP错误

  • 检查构建目录是否存在并包含index.js
  • 验证MCP配置中的Node.js路径
  • 确保Everything应用程序正在运行

ES模块错误

  • 验证package.json是否具有 "type": "module"
  • 检查导入语句是否使用.js扩展名
  • 确保将koffi作为默认导出导入

业绩说明

  • 所有内容都会立即索引文件,搜索几乎是即时的
  • 内容搜索要求所有内容都启用内容索引
  • 大型结果集会自动受到限制(可根据工具进行配置)
  • API直接访问比命令行界面提供更好的性能

安全考虑

  • 服务器通过Everything提供只读文件系统访问
  • 无文件修改功能
  • 尊重Everything自己的安全和索引设置
  • 内容搜索仅限于文件所有内容都已编入索引

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

相关项目

  • MCP-SDK -用于模型上下文协议的TypeScript SDK
  • 一切 -此服务器集成的文件搜索实用程序

备注:这是一个特定于Windows的MCP服务器,需要安装并运行Everything应用程序。对于跨平台文件搜索解决方案,请考虑其他MCP服务器或文件搜索工具。