Filesystem

by isaacphi

Not rated
GitHub

About

Exposes local filesystem as resources to Claude, enabling real-time browsing, reading, and monitoring of files with automatic change detection and .gitignore pattern respect.

Details

Author
isaacphi
Repository
isaacphi/mcp-filesystem
License
MIT License
Categories
Productivity, Developer Tools, Design, Workplace, File Management, AI, Frontend, Infrastructure

- Resources: Creates one MCP resource for each file in your workspace
- Gitignore Support: Respects .gitignore rules
- Change Notification: Detects file changes, additions, and deletions
- MIME Type Detection and Encoding Handling: Identifies file types and handles various text encodings

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Filesystem
    Command (node, npx, python, etc.) /full/path/to/your/mcp-filesystem/mcp-filesystem
    Arguments
    • Argument 1 --workspace
    • Argument 2 /path/to/repository
    Environment
    • DEBUG 1

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Your client will be able to access and reference all non-ignored files in your repository as MCP resources. Each file is registered as a separate resource with appropriate MIME type detection.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "filesystem": {
            "env": {
                "DEBUG": "1"
            },
            "args": [
                "--workspace",
                "/path/to/repository"
            ],
            "command": "/full/path/to/your/mcp-filesystem/mcp-filesystem"
        }
    }
}

Linux

{
    "env": {
        "DEBUG": "1"
    },
    "args": [
        "--workspace",
        "/path/to/repository"
    ],
    "command": "/full/path/to/your/mcp-filesystem/mcp-filesystem"
}

Macos

{
    "env": {
        "DEBUG": "1"
    },
    "args": [
        "--workspace",
        "/path/to/repository"
    ],
    "command": "/full/path/to/your/mcp-filesystem/mcp-filesystem"
}

Windows

{
    "env": {
        "DEBUG": "1"
    },
    "args": [
        "--workspace",
        "/path/to/repository"
    ],
    "command": "/full/path/to/your/mcp-filesystem/mcp-filesystem"
}

MCP Filesystem

A Model Context Protocol (MCP) server that exposes resources for each file in a working directory and sends change notifications.

Status

⚠️ Pre-beta Quality ⚠️

"It works on my machine". Issues are welcome ❤️

Features

- Resources: Creates one MCP resource for each file in your workspace
- Gitignore Support: Respects .gitignore rules
- Change Notification: Detects file changes, additions, and deletions
- MIME Type Detection and Encoding Handling: Identifies file types and handles various text encodings

Setup

Install Go: Follow instructions at <https://golang.org/doc/install>

Fetch or update this server:

go install github.com/isaacphi/mcp-filesystem@latest

Add the following to your client configuration (located at ~/Library/Application Support/Claude/claude_desktop_config.json for Claude Desktop):

{
  "mcpServers": {
    "filesystem": {
      "command": "mcp-filesystem",
      "args": ["--workspace", "/path/to/your/repository"]
    }
  }
}

Replace /path/to/your/repository with the absolute path to your project directory.

Usage

Your client will be able to access and reference all non-ignored files in your repository as MCP resources. Each file is registered as a separate resource with appropriate MIME type detection.

Client Requirements

Your client needs to support the following MCP features:

- Resource Listing: The ability to list and access resources exposed by the server
- Change Notifications: Support for receiving notifications/resources/list_changed events
- Resource Content Access: Ability to request and render resource content with appropriate MIME types

About

This project uses:

- mark3labs/mcp-go for MCP communication
- fsnotify for file system event monitoring
- go-gitignore for parsing .gitignore files

Development

Clone the repository:

git clone https://github.com/isaacphi/mcp-filesystem.git
cd mcp-filesystem

Install dependencies:

go mod download
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.