Filesystem MCP Server
@sergiobayona
Ruby server implementing Model Context Protocol (MCP) for filesystem operations using the https://rubygems.org/gems/vector_mcp gem.
Overview
What is Filesystem MCP Server?
Filesystem MCP Server is a Ruby server implementing the Model Context Protocol (MCP) for filesystem operations. It integrates with the vector_mcp gem to provide file and directory manipulation, search, and metadata tools while enforcing secure filesystem boundaries via MCP roots.
How to use Filesystem MCP Server?
Install Ruby 3.1+ and bundler, clone the repository, run bundle install, then invoke with directories as arguments (e.g., ruby file_system_mcp.rb ~/Documents ~/Desktop). For secure mode, set the FILESYSTEM_MCP_API_KEY environment variable and add --enable-auth. Configure with Claude Desktop by editing claude_desktop_config.json.
Key features of Filesystem MCP Server
- File read, write, edit, and move operations
- Directory creation and listing with metadata
- Recursive search with pattern matching
- Advanced search with sorting and filtering
- Bulk metadata retrieval for multiple files
- Optional authentication via API key
Use cases of Filesystem MCP Server
- Read and edit files programmatically through MCP
- Move or rename files and directories within allowed roots
- Search and filter files by name, type, or metadata
- Manage project files with Claude Desktop integration
- Securely expose local directories with boundaries enforcement
FAQ from Filesystem MCP Server
What are the runtime requirements?
Ruby 3.1+ and the vector_mcp gem version 0.3.1 or later.
How does Filesystem MCP Server enforce security?
It uses MCP roots to restrict access to only the directories specified as command-line arguments. Optional authentication adds API key verification.
Can I use authentication with the server?
Yes, by setting FILESYSTEM_MCP_API_KEY and passing --enable-auth, all operations require a valid API key.
How do I configure Filesystem MCP Server with Claude Desktop?
Add it to claude_desktop_config.json under mcpServers with the command ruby and arguments pointing to the script and allowed directories.
Does the server support editing files?
Yes, the edit_file tool allows precise text replacements with a diff preview.