The safety property here is structural rather than configured: there are no write tools to disable, the root is derived from the install location instead of a setting, and paths that climb above it are refused. That combination is what makes the workflow work — open the editor on the folder you want changed, and let this expose the rest of the repository read-only, so the agent has the context without the reach.
A read-only view of one project directory. You open your editor on a small folder so writes stay contained, and this gives the agent visibility into the rest of the codebase without the ability to change it.
- Files and directories searched by name pattern, with glob support
- Content searched inside files, with an include filter and case sensitivity you control
- The project listed as MCP resources — recursive by default, to a depth you configure — and file contents read back with MIME type detected
- Server health and metrics on request
- No write, edit or delete operation exists in the surface at all
- Path traversal above the project root refused, and the root itself detected from where the package is installed rather than configured
No account and no key. Install it into the project you want readable — npm install peekaboo-mcp — then run npx peekaboo-mcp with that project as the working directory. The root comes from where the package is installed and cannot be overridden: the PEEKABOO_ROOT variable was removed in 2.0.0 precisely so a model or a malicious caller cannot repoint it. PEEKABOO_RECURSIVE=false turns off recursive listing and PEEKABOO_MAX_DEPTH changes the depth, which defaults to 10. Resource limits default to a 30 second timeout, 10MB per file and 100MB in total, and are adjustable when the server is created programmatically.
One command — npm install peekaboo-mcp
