Moondream MCP Server

# Search Syntax Guide ## Windows Search (Everything SDK) The following advanced search features are only available on Windows when using the Everything SDK: ### Basic Operators - `space`: AND operator - `|`: OR operator - `!`: NOT operator - `< >`: Grouping - `" "`: Search for an exact phrase ### Wildcards - `*`: Matches zero or more characters - `?`: Matches exactly one character Note: Wildcards match the whole filename by default. Disable Match whole filename to match wildcards anywhere. ### Functions #### Size and Count - `size:<size>[kb|mb|gb]`: Search by file size - `count:<max>`: Limit number of results - `childcount:<count>`: Folders with specific number of children - `childfilecount:<count>`: Folders with specific number of files - `childfoldercount:<count>`: Folders with specific number of subfolders - `len:<length>`: Match filename length #### Dates - `datemodified:<date>, dm:<date>`: Modified date - `dateaccessed:<date>, da:<date>`: Access date - `datecreated:<date>, dc:<date>`: Creation date - `daterun:<date>, dr:<date>`: Last run date - `recentchange:<date>, rc:<date>`: Recently changed date Date formats: YYYY[-MM[-DD[Thh[:mm[:ss[.sss]]]]]] or today, yesterday, lastweek, etc. #### File Attributes and Types - `attrib:<attributes>, attributes:<attributes>`: Search by file attributes (A:Archive, H:Hidden, S:System, etc.) - `type:<type>`: Search by file type - `ext:<list>`: Search by semicolon-separated extensions #### Path and Name - `path:<path>`: Search in specific path - `parent:<path>, infolder:<path>, nosubfolders:<path>`: Search in path excluding subfolders - `startwith:<text>`: Files starting with text - `endwith:<text>`: Files ending with text - `child:<filename>`: Folders containing specific child - `depth:<count>, parents:<count>`: Files at specific folder depth - `root`: Files with no parent folder - `shell:<name>`: Search in known shell folders #### Duplicates and Lists - `dupe, namepartdupe, attribdupe, dadupe, dcdupe, dmdupe, sizedupe`: Find duplicates - `filelist:<list>`: Search pipe-separated (|) file list - `filelistfilename:<filename>`: Search files from list file - `frn:<frnlist>`: Search by File Reference Numbers - `fsi:<index>`: Search by file system index - `empty`: Find empty folders ### Function Syntax - `function:value`: Equal to value - `function:<=value`: Less than or equal - `function:<value`: Less than - `function:=value`: Equal to - `function:>value`: Greater than - `function:>=value`: Greater than or equal - `function:start..end`: Range of values - `function:start-end`: Range of values ### Modifiers - `case:, nocase:`: Enable/disable case sensitivity - `file:, folder:`: Match only files or folders - `path:, nopath:`: Match full path or filename only - `regex:, noregex:`: Enable/disable regex - `wfn:, nowfn:`: Match whole filename or anywhere - `wholeword:, ww:`: Match whole words only - `wildcards:, nowildcards:`: Enable/disable wildcards ### Examples 1. Find Python files modified today: `ext:py datemodified:today` 2. Find large video files: `ext:mp4|mkv|avi size:>1gb` 3. Find files in specific folder: `path:C:\Projects *.js` ## macOS Search (mdfind) macOS uses Spotlight's metadata search capabilities through the `mdfind` command. The following features are supported: ### Command Options - `-live`: Provides live updates to search results as files change - `-count`: Show only the number of matches - `-onlyin directory`: Limit search to specific directory - `-literal`: Treat query as literal text without interpretation - `-interpret`: Interpret query as if typed in Spotlight menu ### Basic Search - Simple text search looks for matches in any metadata attribute - Wildcards (`*`) are supported in search strings - Multiple words are treated as AND conditions - Whitespace is significant in queries - Use parentheses () to group expressions ### Search Operators - `|` (OR): Match either word, e.g., `"image|photo"` - `-` (NOT): Exclude matches, e.g., `-screenshot` - `=`, `==` (equal) - `!=` (not equal) - `<`, `>` (less/greater than) - `<=`, `>=` (less/greater than or equal) ### Value Comparison Modifiers Use brackets with these modifiers: - `[c]`: Case-insensitive comparison - `[d]`: Diacritical marks insensitive - Can be combined, e.g., `[cd]` for both ### Content Types (kind:) - `application`, `app`: Applications - `audio`, `music`: Audio/Music files - `bookmark`: Bookmarks - `contact`: Contacts - `email`, `mail message`: Email messages - `event`: Calendar events - `folder`: Folders - `font`: Fonts - `image`: Images - `movie`: Movies - `pdf`: PDF documents - `preferences`: System preferences - `presentation`: Presentations - `todo`: Calendar to-dos ### Date Filters (date:) Time-based search using these keywords: - `today`, `yesterday`, `tomorrow` - `this week`, `next week` - `this month`, `next month` - `this year`, `next year` Or use time functions: - `$time.today()` - `$time.yesterday()` - `$time.this_week()` - `$time.this_month()` - `$time.this_year()` - `$time.tomorrow()` - `$time.next_week()` - `$time.next_month()` - `$time.next_year()` ### Common Metadata Attributes Search specific metadata using these attributes: - `kMDItemAuthors`: Document authors - `kMDItemContentType`: File type - `kMDItemContentTypeTree`: File type hierarchy - `kMDItemCreator`: Creating application - `kMDItemDescription`: File description - `kMDItemDisplayName`: Display name - `kMDItemFSContentChangeDate`: File modification date - `kMDItemFSCreationDate`: File creation date - `kMDItemFSName`: Filename - `kMDItemKeywords`: Keywords/tags - `kMDItemLastUsedDate`: Last used date - `kMDItemNumberOfPages`: Page count - `kMDItemTitle`: Document title - `kMDItemUserTags`: User-assigned tags ### Examples 1. Find images modified yesterday: `kind:image date:yesterday` 2. Find documents by author (case-insensitive): `kMDItemAuthors ==[c] "John Doe"` 3. Find files in specific directory: `mdfind -onlyin ~/Documents "query"` 4. Find files by tag: `kMDItemUserTags = "Important"` 5. Find files created by application: `kMDItemCreator = "Pixelmator*"` 6. Find PDFs with specific text: `kind:pdf "search term"` 7. Find recent presentations: `kind:presentation date:this week` 8. Count matching files: `mdfind -count "kind:image date:today"` 9. Monitor for new matches: `mdfind -live "kind:pdf"` 10. Complex metadata search: `kMDItemContentTypeTree = "public.image" && kMDItemUserTags = "vacation" && kMDItemFSContentChangeDate >= $time.this_month()` Note: Use `mdls filename` to see all available metadata attributes for a specific file. ## Linux Search (locate/plocate) Linux uses the locate/plocate command for fast filename searching. The following features are supported: ### Basic Search - Simple text search matches against filenames - Multiple words are treated as AND conditions - Wildcards (`*` and `?`) are supported - Case-insensitive by default ### Search Options - `-i`: Case-insensitive search (default) - `-c`: Count matches instead of showing them - `-r` or `--regex`: Use regular expressions - `-b`: Match only the basename - `-w`: Match whole words only ### Examples 1. Find all Python files: `*.py` 2. Find files in home directory: `/home/username/*` 3. Case-sensitive search for specific file: `--regex "^/etc/[A-Z].*\.conf$"` 4. Count matching files: Use with `-c` parameter Note: The locate database must be up to date for accurate results. Run `sudo updatedb` to update the database manually.