Skip to main content
Glama
High-Performance File System MCP Server

High-Performance File System MCP Server

๐Ÿ“ High-Performance File System MCP Server

Secure, Dockerized Model Context Protocol (MCP) Server for File & Directory CRUD Operations

MCP Version Docker Node.js License: MIT


Empower your AI assistants (Claude Desktop, Cursor, Codex, Windsurf, Continue.dev) to read, write, edit, search, and manage local files and folders seamlessly via Docker Desktop.


๐Ÿ“‘ Table of Contents


Related MCP server: local-mcp

โœจ Core Capabilities

Feature

Tool Name

Description

Read File

read_file

Read text content of any file within mounted folders.

Read Batch

read_multiple_files

Read multiple files in a single request for fast analysis.

Create / Overwrite

write_file

Create new files or overwrite existing files safely.

Edit & Patch

edit_file

Replace target text blocks (single or replaceAll mode).

Delete File

delete_file

Delete specified files from the filesystem.

Create Folder

create_directory

Create recursive directory trees (mkdir -p).

List Folder

list_directory

List folder contents with file size, type, & timestamp metadata.

Delete Folder

delete_directory

Remove folders recursively or non-recursively.

Move / Rename

move_file

Move or rename files and directories.

File Metadata

get_file_info

Inspect file stats (size, creation/modified dates, attributes).

Search Files

search_files

Search files via glob patterns (**/*.ts, *.json), including hidden dotfiles.


๐Ÿ—๏ธ How It Works (Architecture)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      AI Client / IDE                            โ”‚
โ”‚  (Claude Desktop, Cursor, Codex, Windsurf, Continue.dev, etc.)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚ JSON-RPC over Stdio
                                โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Docker Desktop Container                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚               Node.js MCP Server Runtime                  โ”‚  โ”‚
โ”‚  โ”‚   - Security validation against allowed directories        โ”‚  โ”‚
โ”‚  โ”‚   - Full File & Folder CRUD Operations                    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚ Volume Mount (-v)
                                โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      Host Filesystem                            โ”‚
โ”‚   (e.g., C:\Users\Username\Desktop  โ”€โ”€>  Mounted as /data)      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

[!SECURITY NOTE] Containerized Isolation: The AI client can only read and modify files in directories explicitly passed to the container via Docker volume mounts (-v). Your rest of system remains isolated.


๐Ÿš€ Quick Start Guide

1. Clone Repository

git clone https://github.com/SohailShabbir867/file_mcp_server.git
cd file_mcp_server

2. Build Docker Image

Build the container image tagged as file-mcp-server:

docker build -t file-mcp-server .

Verify that the image is ready:

docker images | grep file-mcp-server

๐Ÿ“‚ Connecting Files & Folders via MCP

Docker volume mounts (-v) control which local folders on your computer are accessible to the AI through the MCP server. Inside the container, mounted paths map to /data.

Scenario A: Access Desktop Folder Only

Mount only your Windows or macOS Desktop folder:

  • Windows: -v "C:\Users\YourName\Desktop:/data"

  • macOS / Linux: -v "/Users/yourname/Desktop:/data"

Scenario B: Access Entire User Directory

Mount your entire User home folder to allow access to Desktop, Documents, Downloads, Projects, etc.:

  • Windows: -v "C:\Users\YourName:/data"

  • macOS / Linux: -v "/Users/yourname:/data"

Scenario C: Access Specific Workspace or Project

Mount a specific project directory:

  • Windows: -v "D:\Projects\MyApp:/data"

  • macOS / Linux: -v "/Users/yourname/Projects/MyApp:/data"

Scenario D: Access Multiple Folders or Drives

You can pass multiple volume mounts to access multiple paths:

docker run -i --rm \
  -v "C:\Users\YourName\Desktop:/data/desktop" \
  -v "D:\Projects:/data/projects" \
  file-mcp-server /data/desktop /data/projects

๐Ÿ’ป Client Integration Guides

1. Claude Desktop

Configuration File Location:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Config File Example:

Open claude_desktop_config.json and add the file-server configuration:

{
  "mcpServers": {
    "file-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "C:\\Users\\Sohail Shabbir\\Desktop:/data",
        "file-mcp-server"
      ]
    }
  }
}
TIP

Windows Path Formatting: Remember to use double backslashes (\\) in claude_desktop_config.json (e.g. C:\\Users\\YourName\\Desktop:/data). After updating the file, restart Claude Desktop. Look for the hammer icon ๐Ÿ› ๏ธ to confirm tools are loaded!


2. Cursor IDE

  1. Open Cursor Settings (Ctrl + , or Cmd + ,).

  2. Navigate to Features -> MCP Servers.

  3. Click + Add New MCP Server.

  4. Set the following fields:

    • Name: file-server

    • Type: command

    • Command:

      docker run -i --rm -v "C:\Users\Sohail Shabbir\Desktop:/data" file-mcp-server
  5. Click Save.


3. Codex / Continue.dev / VS Code

For Continue.dev or VS Code MCP Extensions, add the server to your MCP configuration file (e.g., ~/.continue/config.json or .mcp.json):

{
  "mcpServers": [
    {
      "name": "file-server",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "C:\\Users\\Sohail Shabbir\\Desktop:/data",
        "file-mcp-server"
      ]
    }
  ]
}

4. Windsurf / Cline / Roo Code

In your extension settings (cline_mcp_settings.json or Windsurf MCP settings):

{
  "mcpServers": {
    "file-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "C:\\Users\\Sohail Shabbir\\Desktop:/data",
        "file-mcp-server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

๐Ÿ› ๏ธ Tool Reference & Example Prompts

Tool

Key Parameters

Example Prompt for AI Client

read_file

path

"Read the content of /data/todo.txt"

read_multiple_files

paths: [...]

"Compare /data/config.json and /data/config.prod.json"

write_file

path, content, overwrite

"Create a file /data/notes/ideas.md with my meeting summary"

edit_file

path, target, replacement, replaceAll

"Replace v1.0.0 with v1.1.0 in /data/package.json"

delete_file

path

"Delete temp file /data/scratch.log"

create_directory

path

"Create folder /data/projects/new-app/src"

list_directory

path

"List all files and folders inside /data"

delete_directory

path, recursive

"Delete directory /data/old-builds"

move_file

source, destination

"Rename /data/draft.txt to /data/final.txt"

get_file_info

path

"Check creation date and size of /data/report.pdf"

search_files

directory, pattern

"Search for all .ts files inside /data/src"


๐Ÿ”ง Local Development (Without Docker)

To run or debug the server directly using Node.js:

# 1. Install dependencies
npm install

# 2. Build TypeScript source
npm run build

# 3. Start server with allowed base directory
node dist/index.js "C:\Users\Sohail Shabbir\Desktop"

โ“ Troubleshooting & FAQ

Q1: docker: command not found or connection error

  • Solution: Ensure Docker Desktop is installed and running in your taskbar.

Q2: Path permission denied inside Claude or Cursor

  • Solution: Check your -v volume mount path. Ensure the directory exists on your computer and your user account has read/write permissions.

Q3: Cannot find files created by AI

  • Solution: Files created inside /data will appear directly inside the mounted folder on your computer (e.g. C:\Users\YourName\Desktop).


๐Ÿ“„ License

This project is licensed under the MIT License. Feel free to use, modify, and distribute!

Available Tools

11 tools
create_directoryA

Create a directory path recursively.

Inputs: path (required).

delete_directoryB

Delete a directory and optionally all of its contents.

Inputs: path (required), recursive.

delete_fileB

Delete a specific file from the filesystem.

Inputs: path (required).

edit_fileA

Update an existing file by replacing target text with new text.

Inputs: path (required), target (required), replacement (required), replaceAll.

get_file_infoA

Get metadata for a file or directory (size, modification date, path stats).

Inputs: path (required).

list_directoryA

List all items inside a directory with metadata (size, isDirectory, modified date).

Inputs: path (required).

move_fileA

Move or rename a file or directory.

Inputs: source (required), destination (required), overwrite.

read_fileB

Read the complete content of a single text file.

Inputs: path (required), encoding.

read_multiple_filesA

Read the contents of multiple files in a single request.

Inputs: paths (required).

search_filesB

Search for files within a directory matching a glob pattern.

Inputs: pattern (required), directory (required).

write_fileA

Create a new file or overwrite an existing file with text content.

Inputs: path (required), content (required), overwrite.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    A3.7/5.0

    Scored across 11 tools

    Disambiguation4/5

    Each tool targets a distinct operation: read vs. read_multiple, write vs. edit, file vs. directory actions. get_file_info and list_directory might seem similar, but descriptions clarify that one returns metadata for a single path while the other lists directory contents.

    Naming Consistency4/5

    Most tool names follow a verb_noun pattern (read_file, write_file, delete_file, create_directory). Minor deviations include read_multiple_files (verb_phrase) and get_file_info (uses 'get' instead of 'read'), but the overall convention is consistent and readable.

    Tool Count5/5

    With 11 tools, the set is well-scoped for a file system MCP server. Each tool covers a necessary file or directory operation without unnecessary redundancy or bloat.

    Completeness4/5

    The tool surface covers core lifecycle operations for files and directories: create, read, update, delete, list, move, and search. A notable gap is the lack of a copy operation, but move_file and edit_file cover most workflows.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server that enables AI assistants to perform comprehensive file operations including finding, reading, writing, editing, searching, moving, and copying files with security validations.
      7
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A lightweight, stdio-based MCP server enabling AI assistants to perform local file system operations like reading, writing, searching, and executing commands.
      5,159 npm
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server that enables AI to read, search, and edit local files securely without external data exposure, using local LLMs via Ollama and integrating with Open WebUI or Claude Desktop.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server enabling ChatGPT to interact with local filesystem via controlled file operations like read, write, edit, and search, with configurable guardrails for safety.
      MIT