mcpField
M
MCP Filesystem

MCP Filesystem

Local
github.com/isaacphiFiles & Storage3Updated 80w ago

About MCP Filesystem

MCP Filesystem is a Go MCP server for exposing files in a workspace to MCP clients. It creates a resource for each non-ignored file and reports file changes.

Key features

  1. 01One resource per workspace file
  2. 02Respects .gitignore rules
  3. 03Notifies clients of file changes
  4. 04Detects MIME types and text encodings

Use cases

  1. 01Browse repository files through an MCP client
  2. 02Track additions, edits, and deletions in a workspace

MCP support

Exposes each non-ignored workspace file as an MCP resource. It sends notifications when files are added, changed, or deleted.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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:

Development

Clone the repository:

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

Install dependencies:

go mod download

Build:

go build

Configure you client to use your local build:

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

Feedback

Please submit issues with as many details as you can.

Set the DEBUG environment variable to enable verbose logging:

"env": {
  "DEBUG": "1"
}

Features on my radar

  • Resources for each file in workspace
  • .gitignore support
  • Change notifications
  • Standardize MCP protocol use to work with more clients (Claude Desktop)
  • Configurable support for line numbers
  • Resource update subscriptions
  • Additional ignore patterns (beyond .gitignore)
  • Debounced notifications for high-volume file changes
  • info, create, edit, and delete tools

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.