The file-search server finds files by name; the fuzzy-search server looks inside them. Pointing an assistant at the wrong one produces confident empty results. The SQLite server ships read-only by default, which is the right way round — turn writes on per registration rather than globally, and keep a separate read-only entry for exploration.
A set of four independent MCP servers you register separately: a file-name searcher built on fd and fzf, a content searcher built on ripgrep and fzf, a SQLite client that is read-only unless you say otherwise, and a Python port of the sequential-thinking server.
- File names, fast — `search_files` takes a regex or glob and a `limit`, `filter_files` applies a fuzzy filter to the result
- Text inside files — `fuzzy_search_files` matches paths, `fuzzy_search_content` matches path and content together, with no regex to get wrong
- Documents — `fuzzy_search_documents` reaches into PDFs, Office files and archives, and `extract_pdf_pages` pulls specific pages back out
- PDF structure — `get_pdf_page_labels`, `get_pdf_page_count` and `get_pdf_outline` answer 'what is in this file' before you read it
- SQLite — `query`, `execute`, `list_tables`, `describe_table` and `create_table`, with write operations disabled unless explicitly enabled and `:memory:` supported for scratch work
- `sequentialthinking` for step-by-step reasoning with revisions (`isRevision`, `revisesThought`) and branches (`branchFromThought`, `branchId`)
- Every server also runs as a standalone CLI, so you can check a query outside the assistant
Python 3.10 or higher. Published as mcp-personal version 0.1.0; the documented path is to clone the repo and point your client at the individual scripts — `mcp_fd_server.py`, `mcp_fuzzy_search.py`, `mcp_sqlite_server.py`, `mcp_sequential_thinking.py`. The search servers need external binaries: `fd` and `fzf` for file search, `ripgrep` and `fzf` for content search; PDF and Office search additionally wants `ripgrep-all`, PyMuPDF and pandoc. On Debian and Ubuntu `fd` installs as `fdfind`. Register with `-s user` if you want the servers available across all projects rather than just the current directory. `DISABLE_THOUGHT_LOGGING=true` silences the thinking server's stderr output.
