{
  "name": "io.github.modelcontextprotocol/servers",
  "description": "The official Anthropic Filesystem MCP gives AI models secure, sandboxed access to your local filesystem. Define allowed directories, then let the model read, write, create, and delete files within those bounds. It is the default choice for any workflow that needs the AI to interact with local code, configs, or data.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-04-19",
    "com.top-mcps/score": {
      "value": 100,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-04-30T19:26:22.098Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-04-30T10:58:23.347Z",
      "githubStars": 84102,
      "lastCommitAt": "2026-04-17T22:59:54Z",
      "npmWeeklyDownloads": 308370
    }
  },
  "repository": {
    "url": "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem",
    "source": "github"
  },
  "author": {
    "name": "Anthropic (modelcontextprotocol)"
  },
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "@modelcontextprotocol/server-filesystem",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "runtimeArguments": [
        {
          "type": "positional",
          "value": "/path/to/allowed/dir"
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "read_file",
        "description": "Read the full contents of a file within an allowed directory.",
        "sideEffect": "read",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "read_multiple_files",
        "description": "Read several files in one call.",
        "sideEffect": "read",
        "args": [
          {
            "name": "paths",
            "type": "string[]",
            "required": true
          }
        ]
      },
      {
        "name": "write_file",
        "description": "Create or overwrite a file.",
        "sideEffect": "write",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          },
          {
            "name": "content",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "edit_file",
        "description": "Apply a search-and-replace edit to an existing file.",
        "sideEffect": "write",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          },
          {
            "name": "edits",
            "type": "object[]",
            "required": true
          }
        ]
      },
      {
        "name": "create_directory",
        "description": "Create a new directory (and parents) within an allowed root.",
        "sideEffect": "write",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "list_directory",
        "description": "List the entries of a directory.",
        "sideEffect": "read",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "directory_tree",
        "description": "Return a recursive tree of a directory.",
        "sideEffect": "read",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "move_file",
        "description": "Move or rename a file.",
        "sideEffect": "write",
        "args": [
          {
            "name": "source",
            "type": "string",
            "required": true
          },
          {
            "name": "destination",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "search_files",
        "description": "Recursively search for files by pattern.",
        "sideEffect": "read",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          },
          {
            "name": "pattern",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "get_file_info",
        "description": "Return size, timestamps, and type for a file.",
        "sideEffect": "read",
        "args": [
          {
            "name": "path",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "list_allowed_directories",
        "description": "Return the directory roots the server was started with.",
        "sideEffect": "read"
      }
    ],
    "security": {
      "scope": "read-write",
      "sandbox": "Runs as a child process over stdio. Access is restricted to the directory roots passed on the command line; path traversal via `..` or symlinks outside those roots is rejected at the path-normalization layer before any filesystem call is made.",
      "gotchas": [
        "Without at least one allowed-directory argument, the server refuses to start — there is no implicit current-working-directory default.",
        "Read and write are bundled; for read-only access you must mount the directory read-only at the OS level or run the server in a sandbox."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/filesystem",
    "markdown": "https://top-mcps.com/mcp/filesystem.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
