nanostores_store_impact opens by telling the caller not to run nanostores_store_summary on each downstream store, and nanostores_store_subgraph opens by redirecting downstream-only questions back to nanostores_store_impact — the surface is written to keep an agent from fanning out into a call per store. Another design decision worth knowing is that the static index and the runtime stream are genuinely separate, and nanostores_runtime_coverage exists because they disagree: a store defined but never observed may be dead code or may just be untested, and a store observed but unindexed means the scan missed something dynamic. Results are cached, so nanostores_clear_cache and force:true are what you reach for when the answers stop matching the files.
A Nanostores code-intelligence server built on a cached static index of stores, subscribers and relations read from the project source, alongside a runtime event stream from a logger bridge in the running app.
- nanostores_scan_project returns the complete store, subscriber and relation index, with compact:true for a directory-level count instead and force:true to bypass the cache; nanostores_clear_cache drops the cached index so the next scan is fresh.
- nanostores_project_outline answers the orientation question from the same scan data at a smaller size: store-kind distribution, top directories, and hub stores ranked by connectivity.
- nanostores_store_summary takes a store name such as $counter or an id such as store:src/stores.ts#$counter and returns its kind, file location, direct subscribers and first-level derived relations.
- Graph walks in either shape, and the descriptions say which to pick: nanostores_store_impact returns the ordered downstream chain in one response, dependents at hop 1, their dependents at hop 2 and onward, with subscribers placed at the same hop as the store they react to; nanostores_store_subgraph returns the BFS neighbourhood in both directions within a radius that defaults to 2.
- nanostores_store_activity reports a store's recent events, change frequency, action calls and errors, filtered by kinds such as change and action-error and bounded by limit and windowMs.
- nanostores_find_noisy_stores ranks stores by activity to point at a re-render bottleneck, and nanostores_runtime_overview returns active stores, error-prone stores, unused stores and activity patterns for the session.
- nanostores_runtime_coverage sets the static graph and the runtime events against each other, listing stores present in the static graph but never observed at runtime, and stores seen at runtime that the scan did not find.
- nanostores_docs_search finds Nanostores documentation by free-text query or by storeKind, with full pages read through the nanostores://docs/page/{id} resource; nanostores_ping reports whether the server is alive and whether the runtime logger bridge is connected.
The project root to index, supplied as NANOSTORES_MCP_ROOT. The activity, noisy-store, overview and coverage tools additionally need the app running with its logger bridge connected — nanostores_ping is what reports whether that bridge is up.
One command — npx -y nanostores-mcp
