huoshui-file-search
An MCP server that provides fast Spotlight file search capabilities for macOS
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"huoshui-file-search": {
"args": [
"huoshui-file-search@1.0.0"
],
"command": "uvx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
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)
uvx huoshui-file-search
# # From Source
git clone https://github.com/huoshui/huoshui-file-search.git
cd huoshui-file-search
uv sync
# Usage
# # As a Desktop Extension (DXT)
- Install the extension via your DXT-compatible application (e.g., Claude Desktop)
- The extension will be automatically configured and ready to use
- Use the
search_filestool with various parameters
# # Direct Usage
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)
# Tool Parameters
query(required): Search query stringpath(optional): Directory to limit search scopecase_sensitive(optional): Enable case-sensitive search (default: false)regex(optional): Regex pattern to filter results by filenamesort_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:
- No files match both criteria
- The syntax needs adjustment (try
寻找工程车 AND kind:movie) - Spotlight hasn't indexed the files yet
# Examples
# # Basic File Search
{
"query": "document.pdf"
}
# # Search in Specific Directory
{
"query": "*.txt",
"path": "/Users/username/Documents"
}
# # Case-Sensitive Search
{
"query": "README",
"case_sensitive": true
}
# # Search with Regex Filter
{
"query": "kind:text",
"regex": "log.*2024.*\\.txt$"
}
# # Sorted and Limited Results
{
"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 scopedefault_limit: Default maximum number of search resultsenable_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
-
Install dependencies:
uv sync -
Run the server:
uv run python -m serverOr after publishing to PyPI:
uvx huoshui-file-search -
The server will communicate via stdio according to the MCP protocol
# # Publishing to PyPI
-
Build the package:
uv build -
Upload to PyPI:
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:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
# Support
For issues and feature requests, please visit:
https://github.com/huoshui/huoshui-file-search/issues