Skip to main content

Pathgrove

Give your AI assistant a fast way to find your local files.

Pathgrove lets an MCP-compatible assistant find files without knowing their location first. It keeps a reusable filename index, so repeated searches do not have to walk every folder again. Search text inside files, inspect matches and get the paths you need through the same connection.

Ask your assistant:

Find invoice PDFs modified in the last seven days.

Find Python files containing API_BASE_URL.

Show me a preview of annual-report.txt.

Runs locally on Windows, Linux and macOS. You choose the search folders. Pathgrove needs no hosted search service or API key; your MCP client controls what is sent to its model.

The payoff

On a physical Mac mini M1 with about four million indexed entries, repeated filename searches returned these results:

Search Fresh filesystem scan Pathgrove MCP Speed-up
invoice 77.06 seconds 64 milliseconds 1,196×
Broad substring in 77.65 seconds 2.39 seconds 32×

Five trials per query, with identical ordered first-50 result pages checked each time. The comparison is against a fresh Python os.scandir traversal, using a warmed filename index. Indexing and startup are excluded; it is not a comparison against Everything or Spotlight. These measurements describe the recorded baseline, before the later indexing optimizations. Method and raw data →

The first index costs time: that Mac traversal took 17.2 minutes, and inaccessible paths still limited coverage. Start with your project or document folders. Optimized Windows full-drive completion is estimated at about 75 minutes, not measured to completion. Windows measurements and estimate →

Get started

Requires Python 3.10+ and uv. See the SQLite requirements.

uv tool install pathgrove-mcp

This puts the pathgrove command on your PATH; pipx install pathgrove-mcp works too. Add this to an MCP client that uses mcpServers configuration:

{
  "mcpServers": {
    "pathgrove": {
      "command": "pathgrove",
      "env": {
        "PATHGROVE_ROOTS": "[\"<ABSOLUTE_SEARCH_ROOT>\"]"
      }
    }
  }
}

Replace <ABSOLUTE_SEARCH_ROOT> with an existing folder you want to search. Forward slashes work on Windows too, avoiding nested backslash escaping. You can put multiple roots in the JSON-encoded array. If the client cannot find pathgrove, use its absolute path (uv tool dir --bin shows the folder), or use "command": "uvx" with "args": ["--from", "pathgrove-mcp", "pathgrove"] without installing.

To run from a checkout instead, clone the repository, run uv sync --frozen and use "command": "uv" with "args": ["run", "--directory", "<ABSOLUTE_CHECKOUT_PATH>", "--frozen", "pathgrove"].

Restart your MCP client and ask it to find a file. Initial indexing runs in the background; committed batches become searchable before it finishes. Keep the server running for filesystem updates. On Windows (NTFS), later restarts read the drive's change journal and revisit only changed folders instead of walking everything again. No administrator rights or other search app are needed.

What it can do

Task Tool
Find files by name, path, extension, size or date pathgrove_search
Search literal text, even before the index finishes pathgrove_search_content
Find file categories or recent changes pathgrove_search_by_type, pathgrove_find_recent
Preview a file or inspect its metadata pathgrove_file_details
Count indexed matches or check index health pathgrove_count_stats, pathgrove_index_status
Search from a terminal or script pathgrove search, pathgrove count, pathgrove index (usage)

Examples of filename queries:

invoice ext:pdf dm:last7days
"annual report" !draft
ext:py content:"API_BASE_URL"

Know the limits

  • Search stays inside your configured roots and respects normal filesystem permissions. Links are not followed.
  • The index stores names, paths and metadata. Text is read from disk per query; PDF/Word extraction and OCR are not included.
  • Building indexes, inaccessible files and query budgets can produce partial results. A partial miss does not prove absence. The tools report these limits explicitly.

Read more

CI tests Python 3.10 and 3.14 across Linux, Windows and ARM/Intel macOS. Linux tests, lint and package builds use Ubicloud (ubicloud-standard-2); Windows and macOS use native GitHub-hosted runners. Forks need the Ubicloud app connected to run those Linux jobs.

MIT license.

Metadata

Release files for pathgrove-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pathgrove-mcp 0.1.0
File Size Uploaded Provenance Actions
pathgrove_mcp-0.1.0.tar.gz 214.4 kB With provenance Details for pathgrove_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pathgrove-mcp 0.1.0
File Interpreter ABI Platform Actions
pathgrove_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for pathgrove_mcp-0.1.0-py3-none-any.whl

Total release size: 276.9 kB

Release files / pathgrove_mcp-0.1.0.tar.gz

Download URL pathgrove_mcp-0.1.0.tar.gz
Size 214.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5efe1d584c246135110c78a5e9bde42ae1b8fa6acf52b3835b29f91590413277
BLAKE2b-256 checksum
How to use checksums
035c2cb52d2e6e183edf8663d3f1e9312d9bfb74b86fb766926bcc377d158b1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / pathgrove_mcp-0.1.0-py3-none-any.whl

Download URL pathgrove_mcp-0.1.0-py3-none-any.whl
Size 62.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f3700748ff4820f8483878bf55d238fc7bdfddbbe363626a997a45343581204
BLAKE2b-256 checksum
How to use checksums
f6af0a32e6f1e8f2b2913b1d17106fa478f807ee3b1f027e167f77ab5e81ee49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for pathgrove-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pathgrove_mcp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page