npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

atlas-mcp-files

v0.1.0

Published

Sandboxed file system access for AI agents. Read, write, move, delete, diff, and search local files inside explicit allowlisted roots. Part of Atlas — infrastructure for AI agents.

Downloads

17

Readme

atlas-mcp-files

Sandboxed filesystem access for AI agents. Let Claude, Cursor, Windsurf, or any MCP-compatible agent read, write, move, delete, and organize files — but only inside directories you explicitly allow.

Part of Atlas — infrastructure for AI agents.

Why

Every MCP-powered agent eventually needs to work with files. Some agents have some filesystem access built in. Cursor does. Claude Desktop kind of does. Windsurf does. None of them agree on the permission model, the path schema, or the safety rails.

Atlas Files is a single, portable, allowlisted filesystem layer that behaves identically across every MCP client. Drop it in once and your agent gets the same file tools everywhere.

Install

{
  "mcpServers": {
    "atlas-files": {
      "command": "npx",
      "args": ["-y", "atlas-mcp-files"],
      "env": {
        "ATLAS_FILES_ROOTS": "/Users/me/projects:/Users/me/notes"
      }
    }
  }
}

ATLAS_FILES_ROOTS is the critical line. It defines the only directories the agent is allowed to touch. Paths outside these roots are rejected even if the agent constructs them through .. or symlinks.

On Windows, use ; as the separator:

"env": { "ATLAS_FILES_ROOTS": "C:\\Users\\me\\projects;C:\\Users\\me\\notes" }

Read-only mode

To prevent any writes, set ATLAS_FILES_READONLY=1:

"env": {
  "ATLAS_FILES_ROOTS": "/Users/me/notes",
  "ATLAS_FILES_READONLY": "1"
}

In read-only mode only list_roots, list_directory, read_text_file, and stat_path are exposed. All mutation tools are hidden from the tool list.

Tools

Always available (read-only tools)

| Tool | Purpose | |------|---------| | list_roots | Return the allowlisted directories | | list_directory | List immediate children of a directory with type/size/mtime | | read_text_file | Read a UTF-8 file (optionally a line range) | | stat_path | Get metadata (type, size, mtime, ctime, mode) |

Write tools (disabled in read-only mode)

| Tool | Purpose | |------|---------| | write_text_file | Create or overwrite a UTF-8 text file | | append_text_file | Append to a text file | | delete_path | Delete a file; directories require recursive=true | | move_path | Rename/move a file or directory | | copy_path | Copy a file or directory recursively | | create_directory | mkdir -p a directory |

Safety model

  1. Allowlisted roots. ATLAS_FILES_ROOTS defines the only paths that can be accessed. Any input path is resolved and must fall inside at least one root.
  2. Symlink resolution. Before reading or writing, the server calls realpath on the target and re-checks that the resolved path is inside a root. This blocks ln -s / ~/notes/root escape attempts.
  3. 10MB read cap. Files larger than 10MB are rejected — use a line range or stream via a different tool.
  4. Directory deletes are opt-in. delete_path refuses to delete a directory unless recursive=true is explicitly passed.
  5. Overwrite is opt-in. write_text_file overwrites by default, but move_path and copy_path refuse to overwrite existing destinations unless overwrite=true.

License

MIT