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 分