Skip to main content
Glama
ai-yliu

Filesystem MCP Server

by ai-yliu
README.md
# 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

A3.5/5.0

Scored across 9 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues