Filesystem MCP Server
# Filesystem MCP Server
A Model Context Protocol (MCP) server that provides filesystem operations for Claude AI.
## Features
This MCP server provides the following filesystem operations:
1. **read_file**: Read complete contents of a file
- Input: `path` (string)
- Reads complete file contents with UTF-8 encoding
2. **read_multiple_files**: Read multiple files simultaneously
- Input: `paths` (string[])
- Failed reads won't stop the entire operation
3. **write_file**: Create new file or overwrite existing
- Inputs:
- `path` (string): File location
- `content` (string): File content
4. **create_directory**: Create new directory or ensure it exists
- Input: `path` (string)
- Creates parent directories if needed
- Succeeds silently if directory exists
5. **list_directory**: List directory contents with [FILE] or [DIR] prefixes
- Input: `path` (string)
6. **move_file**: Move or rename files and directories
- Inputs:
- `source` (string)
- `destination` (string)
- Fails if destination exists
7. **search_files**: Recursively search for files/directories
- Inputs:
- `path` (string): Starting directory
- `pattern` (string): Search pattern
- Case-insensitive matching
- Returns full paths to matches
8. **get_file_info**: Get detailed file/directory metadata
- Input: `path` (string)
- Returns:
- Size
- Creation time
- Modified time
- Access time
- Type (file/directory)
- Permissions
9. **list_allowed_directories**: List all directories the server is allowed to access
- No input required
- Returns directories that this server can read/write from
## Security
The server only allows operations within directories specified via command-line arguments.
## Installation
1. Clone this repository
2. Install dependencies: `npm install`
3. Build the project: `npm run build`
## Usage
Run the server with one or more allowed directories:
```bash
node build/index.js /path/to/allowed/dir1 /path/to/allowed/dir2
```
## MCP Configuration
Add the server to your MCP configuration file:
```json
{
"mcpServers": {
"filesystem-server": {
"command": "node",
"args": [
"/path/to/filesystem-server/build/index.js",
"/path/to/allowed/dir1",
"/path/to/allowed/dir2"
],
"disabled": false,
"autoApprove": []
}
}
}
```
## License
ISC
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose with no ambiguity. For example, list_directory shows contents, list_allowed_directories shows accessible paths, and read_file vs read_multiple_files handle single vs batch operations. The descriptions clearly differentiate overlapping concepts like searching vs listing.
All tools follow a consistent verb_noun pattern with snake_case throughout. The naming is predictable and readable, with clear action-object pairs like create_directory, move_file, and search_files. There are no deviations in style or convention.
With 9 tools, the count is well-scoped for a filesystem server, covering essential operations without bloat. Each tool earns its place, from basic CRUD (create, read, write) to advanced utilities like search and batch reads, making it comprehensive yet manageable.
The toolset provides complete coverage for filesystem operations, including CRUD (create, read, write, move/delete via move_file), metadata access, listing, searching, and batch processing. There are no obvious gaps, and agents can handle typical workflows without dead ends.