search_tracks_by_filename
Find tracks in your rekordbox DJ database by searching for specific filenames or partial filename matches to locate music files quickly.
Instructions
Search for tracks by filename.
Args: filename: Filename to search for (partial match)
Returns: List of tracks matching the filename
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes |
Implementation Reference
- rekordbox_mcp/server.py:230-245 (handler)MCP tool handler decorated with @mcp.tool(), serving as both handler and registration. Validates DB connection and delegates to database helper, serializing Track models to dicts.@mcp.tool() async def search_tracks_by_filename(filename: str) -> List[Dict[str, Any]]: """ Search for tracks by filename. Args: filename: Filename to search for (partial match) Returns: List of tracks matching the filename """ if not db: raise RuntimeError("Database not initialized.") tracks = await db.search_tracks_by_filename(filename) return [track.model_dump() for track in tracks]
- rekordbox_mcp/database.py:346-361 (helper)Database class method implementing filename search logic: filters active content, performs case-insensitive substring match on Location field, converts to Track models.async def search_tracks_by_filename(self, filename: str) -> List[Track]: """Search tracks by filename.""" if not self.db: raise RuntimeError("Database not connected") all_content = list(self.db.get_content()) active_content = [c for c in all_content if getattr(c, 'rb_local_deleted', 0) == 0] filename_lower = filename.lower() matching_tracks = [] for content in active_content: file_path = content.Location or "" if filename_lower in file_path.lower(): matching_tracks.append(self._content_to_track(content)) return matching_tracks