MCP Filesystem
Model Context Protocol (MCP) server with a resource for each file in a workspace
isaacphi
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:
- mcp-golang 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
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
- [x] Resources for each file in workspace
- [x] .gitignore support
- [x] 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
, anddelete
tools
Recommended Servers
Excel MCP Server
A Model Context Protocol server that enables AI assistants to read from and write to Microsoft Excel files, supporting formats like xlsx, xlsm, xltx, and xltm.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Crawlab MCP Server
Edit File Lines MCP Server
A TypeScript-based MCP server that provides tools for making precise line-based edits to text files within allowed directories.
MCP Excel Reader
Provides efficient handling of large Excel files through automatic chunking and pagination, using MCP to enable seamless file reading and management features such as sheet selection and error handling.

MD Webcrawl MCP
A Python-based MCP server that crawls websites to extract and save content as markdown files, with features for mapping website structure and links.
mcp-server-code-assist
A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
mcp-editor
A TypeScript MCP server port of Anthropic's filesystem editing tools, allowing file manipulation via client-approved operations without automated writes to prevent system harm.
Terminal Controller for MCP
An MCP server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface for LLMs.

Obsidian MCP REST Server
Provides a standardized interface for AI assistants to interact with Obsidian vaults through a local REST API, enabling reading, writing, searching, and managing notes.