Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ“‚ File Systems
  3. FileSystem MCP Server
F
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:09:39 AM

FileSystem MCP Server

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository

Secure filesystem access for AI agents with configurable directory and file type restrictions

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "filesystem-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "filesystem-mcp-server"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing AlternativesπŸ“‚ More in File Systems

Documentation Overview

FileSystem MCP Server

Local MCP server for Visual Studio 2022+ that provides code-workspace functionality by giving AI agents selective access to project folders and files

Table of Contents

  • 🎯 Target Environment
  • Features
  • Installation
  • Quick Start
  • Configuration Options
    • Option 1: Config.json File (Simplest - Recommended for Beginners)
    • Option 2: Command-Line Arguments (Advanced - For MCP Clients)
    • Option 3: Hybrid Approach (Best of Both Worlds)
  • Usage
    • Command Line Examples
    • Available Tools
  • Why This Hybrid Approach is Perfect
  • Visual Studio 2022+ Debugging
  • Visual Studio 2022+ Usage Examples
  • Editing Your mcp.json File via GitHub Copilot Chat
  • Security
  • Error Handling
  • Troubleshooting
    • MCP Configuration Issues
    • Visual Studio 2022+ Debugging
    • Common Issues
  • Command Line Reference
  • Cross-Platform Path Support
  • Advanced & Real-World MCP Configuration Examples

🎯 Target Environment

This MCP server is optimized for:

  • Visual Studio 2022+ development workflows
  • Local development environments without complex workspace setups
  • Direct folder access scenarios where you need filesystem operations
  • Development environments that don't use .code-workspace files
  • Individual project directories rather than multi-root workspaces

Features

  • Directory Traversal: List contents of allowed directories
  • File Reading: Read contents of files with allowed extensions
  • File Writing: Write text/binary content to files β€” opt-in via --allow-write (disabled by default)
  • Directory Validation: Check accessibility of configured directories
  • Hybrid Configuration: Command-line arguments (MCP) + config.json fallback (debugging)
  • Visual Studio 2022+ Debugging: No-argument startup support
  • Cross-Platform Path Support: Automatically handles both Windows (\) and Unix (/) path separators
  • Security: Access restricted to explicitly specified directories and file types
  • Local Development Focus: Perfect for Visual Studio 2022+ and similar environments

Installation

From PyPI (Recommended for Users)

Terminal
pip install vs-filesystem-mcp-server

From Source (For Development)

  1. Ensure you have Python 3.10+ installed

  2. Clone the repository

  3. Navigate to the project directory

  4. Install dependencies using uv:

    bash
    uv sync
    

Quick Start

  1. For MCP usage: Add the corrected configuration to your .mcp.json
  2. For debugging: Just press F5 in Visual Studio 2022+ - uses config.json automatically
  3. Test your configuration by calling the init() tool first
  4. If init() returns errors, check your directory paths and permissions

Configuration Options

Option 1: Config.json File (Simplest - Recommended for Beginners)

The easiest way to get started! Create a config.json file:

For MCP server usage:

  • Place config.json in the same folder as your .mcp.json file (usually C:\Users\YourUsername\)

For debugging from source (Visual Studio 2022+):

  • Place config.json in the same directory as app.py (D:/Projects/filesystem_server/)
config.json
{
  "allowed_dirs": [
    "C:/Users/YourUsername/Documents/projects",
    "D:/projects",
    "D:/Webs"
  ],
  "allowed_extensions": [
    ".py", ".js", ".ts", ".json", ".md", ".txt",
    ".yml", ".yaml", ".toml", ".cfg", ".ini", ".cs",
    ".css", ".scss", ".htm", ".html", ".xml", ".xaml"
  ],
  "allow_write": false
}

Note: Set "allow_write": true to enable write_file and write_file_binary tools.

MCP Configuration (Installed via pip)

Add this to your .mcp.json file (usually C:\Users\YourUsername\ in VS 2022+):

config.json
{
  "servers": {
    "filesystem-server": {
      "command": "vs-filesystem-mcp-server"
    }
  }
}

Note: When installed via pip, the command is just vs-filesystem-mcp-server - no path to app.py needed!

MCP Configuration (Running from Source)

If you're developing and running from source code:

config.json
{
  "servers": {
    "filesystem-server": {
      "command": "python",
      "args": [
        "/absolute/path/to/your/project/filesystem_server/app.py"
      ],
      "cwd": "/absolute/path/to/your/project/filesystem_server"
    }
  }
}

Benefits:

  • βœ… No command-line arguments needed
  • βœ… Perfect for Visual Studio 2022 debugging (just press F5)
  • βœ… Works with MCP clients when placed in correct location
  • βœ… Easy to edit and modify
  • βœ… Great for testing and development

Usage:

bash
# For debugging in Visual Studio 2022:
python app.py  # Uses config.json from same directory as app.py

# For MCP server usage:
# The MCP client automatically finds config.json in the .mcp.json directory

Important Location Notes:

  • πŸ”§ Debugging: config.json goes next to app.py
  • 🌐 MCP Server: config.json goes next to .mcp.json
  • πŸ“ Different locations for different use cases!

Option 2: Command-Line Arguments (Advanced - For MCP Clients)

Best for production MCP client configurations where you want everything in one place:

When Installed via pip

config.json
{
  "servers": {
    "filesystem-server": {
      "command": "vs-filesystem-mcp-server",
      "args": [
        "--allowed-dirs", "D:/projects", "D:/Webs",
        "--allowed-extensions", ".py", ".js", ".ts", ".json", ".md", ".txt"
      ]
    }
  }
}

When Running from Source

bash
python app.py --allowed-dirs "D:/projects" "D:/Webs" --allowed-extensions ".py" ".js" ".md"

# With write access enabled:
python app.py --allowed-dirs "D:/projects" "D:/Webs" --allowed-extensions ".py" ".js" ".md" --allow-write true

MCP Client Configuration (.mcp.json):

config.json
{
  "servers": {
    "filesystem-server": {
      "command": "python",
      "args": [
        "/absolute/path/to/your/project/filesystem_server/app.py",
        "--allowed-dirs", "D:/projects", "D:/Webs",
        "--allowed-extensions", ".py", ".js", ".ts", ".json", ".md", ".txt"
      ],
      "cwd": "/absolute/path/to/your/project/filesystem_server"
    }
  }
}

Benefits:

  • βœ… Self-contained configuration
  • βœ… No external config files needed
  • βœ… Version control friendly
  • βœ… Explicit and visible in MCP setup

Option 3: Hybrid Approach (Best of Both Worlds)

The server automatically uses command-line arguments first, then falls back to config.json if no arguments provided.

How it works:

  • MCP clients: Use command-line arguments (Option 2)
  • Visual Studio debugging: Automatically uses config.json (Option 1)
  • Priority: Command-line args override config.json when present

Benefits:

  • βœ… Works for both MCP clients and debugging
  • βœ… No conflicts between different usage scenarios
  • βœ… Flexible and developer-friendly
  • βœ… Choose the best option for each situation

Usage

Command Line Examples

bash
# With command line arguments (MCP clients):
python app.py --allowed-dirs "D:/projects" "D:/Webs" --allowed-extensions ".py" ".js" ".md"

# Using config.json fallback (Visual Studio 2022+ debugging):
python app.py

# Show MCP configuration help:
python app.py --help-mcp

Available Tools

  1. init(directory, file_path) - Validates accessibility of configured directories and can optionally list a directory and/or read a file

    • directory (optional): Directory path to list contents (can be None)
    • file_path (optional): File path to read content (can be None)
    • Returns { "message": "OK", "isError": false, ... } if all directories accessible
    • Returns error details if any directories are inaccessible
    • Shows configuration source (command-line args vs config file)
    • Use this to verify your configuration before using other tools
  2. list_directory(directory, report_progress=True, batch_size=100) - Lists files and subdirectories in a given directory, with optional progress reporting

    • directory: The absolute or relative path to the directory (supports both / and \ separators)
    • report_progress (optional): If True, returns progress information and batch details (default: True)
    • batch_size (optional): Number of items to process before reporting progress (default: 100)
    • Returns a list of file and directory names if report_progress is False
    • Returns a dictionary with contents, progress_info, total_items, and processing_time if report_progress is True
    • If an error occurs, returns a dictionary with "error" and "error_message" keys
    • No exceptions are raised - all errors are returned as part of the result
  3. read_file(file_path) - Reads the content of a specified file as text

    • Returns the file content as a string (for text files only)
    • Not suitable for binary files (images, audio, etc.)
  4. read_file_binary(file_path) - Reads the content of a specified file as base64-encoded binary

    • Returns { "content_base64": <base64 string>, "encoding": "base64", "error": False } on success
    • Returns an error dict if the file is not allowed or not found
    • Suitable for images, audio, and other binary files
  5. list_resources(directory=None, report_progress=True, batch_size=100) - Lists all resources (files and directories) in a directory (or all allowed directories) in MCP resource format

    • directory (optional): Directory to start from (defaults to all allowed_dirs)
    • report_progress (optional): If True, returns progress information and batches (default: True)
    • batch_size (optional): Number of resources per progress batch (default: 100)
    • Returns a list of resource objects if report_progress is False
    • Returns a dictionary with contents, progress_info, total_items, and processing_time if report_progress is True
    • Example resource object:
      config.json
      {
        "id": "D:/projects/example.txt",
        "type": "file",
        "name": "example.txt",
        "path": "D:/projects/example.txt",
        "metadata": {
          "size": 1234,
          "modified": "2025-08-18T12:34:56Z"
        },
        "actions": ["read", "read_binary", "write", "write_binary"]
      }
      
  6. get_resource(path) - Gets metadata and actions for a specific file or directory

    • path: Absolute or relative path to the resource
    • Returns a resource object (id, type, name, path, metadata, actions) or an error dict
    • For files, includes size and modified time; for directories, includes type and actions
    • Does not return file content
  7. write_file(file_path, content) - Writes text content to a specified file (requires --allow-write)

    • file_path: Path to write to (must be within allowed dirs)
    • content: Text string to write
    • Raises ValueError if write access is disabled, path not allowed, extension not allowed, or IO error
    • Overwrites existing file
    • Disabled by default β€” enable with --allow-write flag or "allow_write": true in config.json
  8. write_file_binary(file_path, content_base64) - Writes binary content from base64 to file (requires --allow-write)

    • file_path: Path to write to (must be within allowed dirs)
    • content_base64: Base64-encoded binary data
    • Returns {"success": true, "bytes_written": int, "error": false} or error dict
    • Overwrites existing file, suitable for images/binaries
    • Disabled by default β€” enable with --allow-write flag or "allow_write": true in config.json

Why This Hybrid Approach is Perfect

  • βœ… MCP clients: Use efficient command-line arguments
  • βœ… Visual Studio 2022: Zero-friction debugging with config.json fallback
  • βœ… No conflicts: Priority system handles both scenarios gracefully
  • βœ… Developer-friendly: Works however you want to run it
  • βœ… Best of both worlds: MCP efficiency + debugging convenience

Visual Studio 2022+ Debugging

Perfect debugging experience:

  • βœ… No command-line arguments needed
  • βœ… Just press F5 to start debugging
  • βœ… Automatically uses config.json
  • βœ… Set breakpoints and debug normally
  • βœ… Full IntelliSense and debugging support

Debugging setup:

  1. Open the project in Visual Studio 2022
  2. Ensure config.json exists (already created for you)
  3. Press F5 or Debug > Start Debugging
  4. Server starts with your configured directories

Visual Studio 2022+ Usage Examples

Below are step-by-step examples showing how to call the FileSystem MCP Server from within Visual Studio 2022. These screenshots demonstrate the process using the alias "fss" for the server, which is simply a shorter name for "filesystem-server". You can customize this alias in your .mcp.json fileβ€”the actual name is up to you.

Note: All images are located in the images/ subfolder.

Step 1: Calling the Server Tool

Step 1: Example of calling the tool in Visual Studio 2022

In this example, the MCP client is configured to use "fss" as the server name. This is just an alias for convenience.

Step 2: Viewing the Server Response

Step 2: Example of viewing the server response in Visual Studio 2022

The server responds with the results of your request, such as the output from the read_file() tool.


Note:

  • The "fss" alias is used here for brevity. You can use any name you prefer in your .mcp.json configuration.
  • To change the server name, simply update the key in your .mcp.json file from "filesystem-server" to any other name you like.

For more details on configuring your MCP client, see the Configuration Options section above.

Editing Your mcp.json File via GitHub Copilot Chat

You can easily edit your mcp.json configuration file directly from Visual Studio using the GitHub Copilot Chat interface. Follow these steps:

  1. Click the Tools icon on the right side of Visual Studio, while in Agent mode.
  2. Click the arrow next to any MCP server in the list.
  3. Choose Edit – the mcp.json file will open for editing.

How to edit mcp.json using GitHub Copilot Chat

This allows you to quickly update your MCP server configuration without leaving the IDE.

Security

  • Only directories specified in --allowed-dirs or config.json can be accessed
  • Only files with extensions in --allowed-extensions or config.json can be read or written
  • Write access disabled by default: write_file and write_file_binary require --allow-write flag or "allow_write": true in config.json
  • All paths are validated before access
  • The server runs with the permissions of the user account
  • Perfect for local development: Secure access to your project directories

Error Handling

The server provides detailed error messages for:

  • Unauthorized directory access
  • Invalid file paths
  • Unsupported file extensions
  • Missing configuration (shows helpful guidance for both MCP and debugging scenarios)
  • Directory accessibility issues (via init() tool)

New Error Handling for list_directory():

  • The list_directory() function now returns errors as part of the result list instead of raising exceptions
  • Error format: ["error", "detailed_error_message"]
  • This makes it easier for MCP clients to handle errors gracefully without exception handling
  • Successful calls return the normal list of directory contents

Troubleshooting

MCP Configuration Issues

Your original config had a missing comma after "D:/Webs". The corrected version above fixes this.

Visual Studio 2022+ Debugging

  1. Ensure config.json exists (already created for your directories)
  2. Start with the init() tool to validate your configuration
  3. Set breakpoints and debug normally
  4. Check output window for configuration source confirmation

Common Issues

  1. Missing configuration: The server shows helpful messages for both MCP and debugging scenarios
  2. Path access errors: Verify your directories exist and are accessible
  3. Permission issues: Check directory permissions on your configured paths
  4. MCP client issues: Use the corrected configuration above

Command Line Reference

bash
python app.py --help                         # Show help
python app.py --help-mcp                     # Show MCP configuration examples  
python app.py --allowed-dirs DIR1 DIR2       # Set allowed directories
python app.py --allowed-extensions EXT1 EXT2 # Set allowed extensions
python app.py --allow-write true             # Enable write tools (disabled by default)
python app.py --allow-write false            # Explicitly disable write tools
python app.py --config custom.json           # Use custom config file
python app.py                                # Use config.json fallback (debugging)

Cross-Platform Path Support

The filesystem server automatically normalizes paths to handle different operating system conventions:

βœ… Windows Users - Both Formats Work

config.json
{
  "allowed_dirs": [
    "D:\\projects",           // Windows-style backslashes
    "F:/sd/wipes",           // Unix-style forward slashes  
    "C:\\Users\\Me\\Docs"    // Mixed formats work too
  ]
}

βœ… Automatic Path Normalization

  • Input: "F:\sd\wipes" (Windows natural format)
  • Normalized: "F:/sd/wipes" (Python-friendly format)
  • Result: βœ… Works seamlessly, no errors!

βœ… MCP Tool Examples

python
# All of these work identically:
list_directory("F:\\sd\\wipes")    # Windows format
list_directory("F:/sd/wipes")      # Unix format  
list_directory("F:\\sd/wipes")     # Mixed format

Why This Matters

  • πŸͺŸ Windows users can naturally type F:\sd\wipes
  • 🐧 Unix users can use traditional F:/sd/wipes
  • πŸ”§ No more path format errors - everything just works
  • πŸ›‘οΈ Security checks work correctly regardless of separator style

Advanced & Real-World MCP Configuration Examples

For more advanced, platform-specific, or legacy MCP client configuration examples (including both "servers" and "mcpServers" formats), see the mcp_configuration_examples.json file in this repository.

This file includes:

  • Additional real-world setups for Windows, Linux, and macOS
  • Minimal web development configurations
  • Multiple directory and file type examples
  • Migration tips for moving from config.json to command-line arguments
  • Legacy MCP client support using the "mcpServers" format

Refer to it if you need more flexibility or are working with a non-standard MCP client.

Buy Me A Coffee

Related MCP Servers

View all in File Systems View all alternatives
  • M
    Mcp Filesystem

    Advanced filesystem operations with strict security boundaries for AI agents

    πŸ“‚ File Systems1 views
    Compare vs Mcp Filesystem β†’
  • Mcp Everything Search logoMcp Everything Search

    Fast Windows file search using Everything SDK

    πŸ“‚ File Systems2 views
    Compare vs Mcp Everything Search β†’
  • Chisel logoChisel

    Reduce context usage on file use. Send only unified diffs instead of full files (up to 20-100Γ— fewer tokens), and read large files with targeted grep/sed instead of full reads (up to 500Γ—). Kernel-enforced path confinement hard-locks the agent to a configured root: no accidental reads or writes outside scope. Standalone for your file access or embed in any MCP server (Rust, Node.js, Python via WASM).

    πŸ“‚ File Systems3 views
    Compare vs Chisel β†’
  • A
    Agent Workspace MCP

    A sandboxed, agentic workspace providing secure filesystem, bash, and uv-powered Python execution.

    πŸ“‚ File Systems0 views
    Compare vs Agent Workspace MCP β†’

Frequently Asked Questions about FileSystem MCP Server

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "filesystem-mcp-server": { "command": "npx", "args": ["-y", "FileSystem MCP Server"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFileSystem MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/filesystem-mcp-server?style=directory)](https://allmcps.com/mcp/filesystem-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/filesystem-mcp-server"><img src="https://allmcps.com/api/badge/filesystem-mcp-server?style=directory" alt="FileSystem MCP Server on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ“‚File Systems
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
0/4 checks healthy over the last 6h
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ“‚ File Systems β†’Best MCP servers for File Systems β†’Alternatives to FileSystem MCP Server β†’Install in Claude DesktopInstall in CursorInstall in VS Code