关于 huoshui-file-search
huoshui-file-search 是面向 macOS 的 MCP 文件搜索服务,使用 Spotlight 的 mdfind 索引查找文件。它提供路径、大小写、正则表达式、排序和结果数量等筛选选项。
主要功能
- 01使用 Spotlight 索引搜索文件
- 02按路径限制搜索范围
- 03支持大小写和正则表达式筛选
- 04按名称、大小或日期排序
- 05设置结果数量上限
- 06返回 JSON 结构化结果
适用场景
- 01在 Mac 上查找文档或媒体文件
- 02仅搜索指定目录中的文件
- 03用正则表达式筛选文件名
- 04按文件大小或日期整理搜索结果
MCP 相关
该 MCP 服务通过 search_files 工具向 MCP 客户端提供 macOS Spotlight 文件搜索。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Huoshui File Search
一款 Desktop Extension(DXT),使用 macOS 原生的 mdfind 命令(Spotlight 搜索)提供快速文件搜索功能。
⚠️ 重要提示:此扩展仅适用于 macOS 系统,不支持 Windows 和 Linux。
功能
- 使用 macOS Spotlight 索引快速搜索文件
- 多种筛选选项:
- 按路径限制搜索范围
- 区分大小写或不区分大小写搜索
- 正则表达式匹配
- 按名称、大小或日期排序结果
- 可配置搜索上限
- 清晰的 JSON 结构化响应
- 使用 FastMCP 框架构建,性能出色
安装
从 MCP Registry 安装(推荐)
此服务已列入 Model Context Protocol Registry。使用你的 MCP 客户端进行安装。
mcp-name: io.github.huoshuiai42/huoshui-file-search
通过 PyPI 安装(推荐)
uvx huoshui-file-search
从源代码安装
git clone https://github.com/huoshui/huoshui-file-search.git
cd huoshui-file-search
uv sync
使用方法
作为 Desktop Extension(DXT)使用
- 通过兼容 DXT 的应用(例如 Claude Desktop)安装此扩展
- 扩展将自动完成配置并可供使用
- 使用
search_files工具并设置各种参数
直接使用
from server.main import search_files, FileSearchParams
# Basic search
params = FileSearchParams(query="report.pdf")
result = await search_files(None, params)
# Search with filters
params = FileSearchParams(
query="*.py",
path="/Users/username/Documents",
case_sensitive=True,
sort_by="size",
limit=50
)
result = await search_files(None, params)
工具参数
query(必填):搜索查询字符串path(可选):用于限制搜索范围的目录case_sensitive(可选):启用区分大小写搜索(默认值:false)regex(可选):用于按文件名筛选结果的正则表达式sort_by(可选):按 'name'、'size' 或 'date' 对结果排序limit(可选):结果数量上限(默认值:100,最大值:1000)
mdfind 查询语法
query 参数使用 macOS Spotlight 的 mdfind 语法:
- 简单文本搜索:
report- 查找包含“report”的文件 - 文件类型:
kind:pdf、kind:image、kind:movie - 文件名搜索:
kMDItemFSName == "*.py"- 查找 Python 文件 - 组合查询:
invoice AND kind:pdf- 查找包含“invoice”的 PDF 文件 - 日期查询:
date:today、modified:this week
注意:如果查询 '寻找工程车' kind:movie 没有返回结果,可能是因为:
- 没有文件同时符合这两个条件
- 语法需要调整(尝试
寻找工程车 AND kind:movie) - Spotlight 尚未为这些文件建立索引
示例
基本文件搜索
{
"query": "document.pdf"
}
在指定目录中搜索
{
"query": "*.txt",
"path": "/Users/username/Documents"
}
区分大小写搜索
{
"query": "README",
"case_sensitive": true
}
使用正则表达式筛选搜索结果
{
"query": "kind:text",
"regex": "log.*2024.*\\.txt$"
}
对结果排序并限制数量
{
"query": "*.jpg",
"sort_by": "size",
"limit": 20
}
配置
此扩展支持通过 DXT 清单进行用户配置:
allowed_directories:用于限制搜索范围的目录列表default_limit:默认搜索结果数量上限enable_logging:启用调试日志
开发
项目结构
huoshui-file-search/
├── manifest.json # DXT manifest file
├── server/ # MCP server implementation
│ ├── __init__.py
│ ├── __main__.py
│ └── main.py
├── pyproject.toml # Python package configuration
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── README.md # This file
本地测试
-
安装依赖:
uv sync -
运行服务:
uv run python -m server或者,在发布到 PyPI 后:
uvx huoshui-file-search -
服务将根据 MCP 协议通过 stdio 进行通信
发布到 PyPI
-
构建软件包:
uv build -
上传到 PyPI:
uv publish
系统要求
- macOS 10.15 或更高版本
- Python 3.10 或更高版本
- uv 包管理器(使用
curl -LsSf https://astral.sh/uv/install.sh | sh安装) - 已启用 Spotlight 索引
故障排除
“Platform not supported” 错误
此扩展仅适用于 macOS。请确保在 Mac 上运行。
“mdfind command not found” 错误
请确保 Mac 上已启用 Spotlight。可在“系统偏好设置”>“Spotlight”中检查。
没有搜索结果
- Spotlight 可能仍在为新文件建立索引
- 检查文件路径是否包含在 Spotlight 的搜索范围内
- 检查搜索查询语法
搜索超时
大型搜索可能会在 30 秒后超时。请尝试:
- 限制搜索路径
- 使用更具体的查询
- 降低结果数量上限
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
参与贡献
欢迎贡献!请:
- Fork 此仓库
- 创建功能分支
- 为新功能添加测试
- 提交拉取请求
支持
如需反馈问题或提出功能请求,请访问: https://github.com/huoshui/huoshui-file-search/issues
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。