Huoshui File Search

io.github.huoshuiai42由 GitHub 账号 huoshuiai42 发布v1.0.0更新于 Nov 3, 2026

An MCP server that provides fast Spotlight file search capabilities for macOS

概览

AI 生成的概览

一个仅支持 macOS 的 MCP 服务器,让助手通过原生 mdfind 命令调用 Spotlight 索引快速搜索本地文件。

可以做什么
  • 按查询文本、文件类型、文件名模式或日期,使用 Spotlight 的 mdfind 语法搜索本地文件
  • 将搜索限制在指定目录,并支持区分大小写或正则表达式过滤
  • 按名称、大小或日期排序,并限制返回结果数量
  • 以结构化 JSON 返回结果
适用场景
适用于 Mac 上的助手需要查找用户机器上已建立索引的文档、图片、代码文件等场景,尤其是需要按文件类型、文件夹、日期或大小筛选时。
运行要求
以本地 Python 包形式运行(Python 3.10 或更高版本、uv 包管理器),需要 macOS 10.15 或更高版本并启用 Spotlight 索引;不支持 Windows 和 Linux。未声明需要账号、API 密钥或环境变量。
安装前请注意
该服务器会读取本地文件索引,可能把文件名和路径暴露给助手,建议通过 allowed_directories 和 path 参数限制范围。大规模搜索可能在 30 秒后超时。尚未被 Spotlight 索引的文件无法被找到。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Huoshui File Search,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Huoshui File Search

A Desktop Extension (DXT) that provides fast file search capabilities for macOS using the native mdfind command (Spotlight search).

⚠️ IMPORTANT: This extension only works on macOS systems. Windows and Linux are not supported.

Features

  • Fast file search using macOS Spotlight index
  • Multiple filtering options:
    • Path-based search restrictions
    • Case-sensitive/insensitive search
    • Regular expression matching
    • Sort results by name, size, or date
  • Configurable search limits
  • Clean JSON-structured responses
  • Built with FastMCP framework for optimal performance

Installation

From MCP Registry (Recommended)

This server is available in the Model Context Protocol Registry. Install it using your MCP client.

mcp-name: io.github.huoshuiai42/huoshui-file-search

Via PyPI (Recommended)

bash
uvx huoshui-file-search

From Source

bash
git clone https://github.com/huoshui/huoshui-file-search.gitcd huoshui-file-searchuv sync

Usage

As a Desktop Extension (DXT)

  1. Install the extension via your DXT-compatible application (e.g., Claude Desktop)
  2. The extension will be automatically configured and ready to use
  3. Use the search_files tool with various parameters

Direct Usage

python
from server.main import search_files, FileSearchParams
# Basic searchparams = FileSearchParams(query="report.pdf")result = await search_files(None, params)
# Search with filtersparams = FileSearchParams(    query="*.py",    path="/Users/username/Documents",    case_sensitive=True,    sort_by="size",    limit=50)result = await search_files(None, params)

Tool Parameters

  • query (required): Search query string
  • path (optional): Directory to limit search scope
  • case_sensitive (optional): Enable case-sensitive search (default: false)
  • regex (optional): Regex pattern to filter results by filename
  • sort_by (optional): Sort results by 'name', 'size', or 'date'
  • limit (optional): Maximum number of results (default: 100, max: 1000)

mdfind Query Syntax

The query parameter uses macOS Spotlight's mdfind syntax:

  • Simple text search: report - finds files containing "report"
  • File kind: kind:pdf, kind:image, kind:movie
  • Filename search: kMDItemFSName == "*.py" - finds Python files
  • Combined queries: invoice AND kind:pdf - finds PDF files containing "invoice"
  • Date queries: date:today, modified:this week

Note: If your query like '寻找工程车' kind:movie returns no results, it might mean:

  1. No files match both criteria
  2. The syntax needs adjustment (try 寻找工程车 AND kind:movie)
  3. Spotlight hasn't indexed the files yet

Examples

Basic File Search

json
{  "query": "document.pdf"}

Search in Specific Directory

json
{  "query": "*.txt",  "path": "/Users/username/Documents"}

Case-Sensitive Search

json
{  "query": "README",  "case_sensitive": true}

Search with Regex Filter

json
{  "query": "kind:text",  "regex": "log.*2024.*\\.txt$"}

Sorted and Limited Results

json
{  "query": "*.jpg",  "sort_by": "size",  "limit": 20}

Configuration

The extension supports user configuration through the DXT manifest:

  • allowed_directories: List of directories to limit search scope
  • default_limit: Default maximum number of search results
  • enable_logging: Enable debug logging

Development

Project Structure

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

Testing Locally

  1. Install dependencies:

    bash
    uv sync
  2. Run the server:

    bash
    uv run python -m server

    Or after publishing to PyPI:

    bash
    uvx huoshui-file-search
  3. The server will communicate via stdio according to the MCP protocol

Publishing to PyPI

  1. Build the package:

    bash
    uv build
  2. Upload to PyPI:

    bash
    uv publish

System Requirements

  • macOS 10.15 or later
  • Python 3.10 or later
  • uv package manager (install with: curl -LsSf https://astral.sh/uv/install.sh | sh)
  • Spotlight indexing enabled

Troubleshooting

"Platform not supported" Error

This extension only works on macOS. Ensure you're running it on a Mac.

"mdfind command not found" Error

Ensure Spotlight is enabled on your Mac. You can check this in System Preferences > Spotlight.

No Search Results

  • Spotlight may still be indexing new files
  • Check if the file path is included in Spotlight's search scope
  • Verify the search query syntax

Search Timeout

Large searches may timeout after 30 seconds. Try:

  • Limiting the search path
  • Using more specific queries
  • Reducing the result limit

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Submit a pull request

Support

For issues and feature requests, please visit: https://github.com/huoshui/huoshui-file-search/issues

来源:README.md,提交 1c838bd

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分