Skip to main content
Glama
CyberhavenInc

Filesystem MCP Server with .mcpignore

README.md
# Filesystem MCP Server with `.mcpignore` support

**Protect your most sensitive data by using this data security first filesystem.** This node.js server builds on top of [Filesystem MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) and lets you control which files your MCP Client can access using `.mcpignore` file. 

## Features

- Control MCP client's access to your filesystem based on `.mcpignore`
- Read/write files
- Create/list/delete directories
- Move files/directories
- Search files
- Get file metadata 

Note: Create an `.mcpignore` file for each direcoties specified via `args`

## Configuring `.mcpignore`

The `.mcpignore` file uses the same patterns as `.gitignore`

### Patterns Examples

```
# Ignore specific file `.env`
.env

# Ignore all files with a `.safetensor` extension
*.safetensors

# Ignore specific directory, 'assets/logos' and its files
assets/logos/
```

## API

For details, refer to [Filesystem MCP Server API Spec](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem#api)

### Tool behavior with ignore paths

| Tool                     | Behavior | 
| ------------------------ | :------------------------: |
| read_file                | Block |
| read_multiple_files      | Block |
| write_file               | Block |
| edit_file                | Block |
| create_directory         | Block |
| list_directory           | Block |
| directory_tree           | Allow |
| move_file                | Block |
| search_files             | Allow |
| get_file_info            | Block |
| list_allowed_directories | N/A   |

Note: `directory_tree` and `search_files` are allowed only to retrieve the file names

## Usage with MCP Clients

- **Claude**: Add this to your `claude_desktop_config.json`
- **Cline**: Add this to your `cline_mcp_settings.json`
- **Cursor**: Add this to your `mcp.json`

Note: `.mcpingore` applies to the list of allowed directories that you provide as `args`

### NPX

```json
{
    "mcpServers": {
        "mcpignore-filesystem": {
            "command": "npx",
            "args": [
                "-y",
                "@cyberhaven/mcpignore-filesystem",
                "/Users/<username>/Desktop",
                "/path/to/other/allowed/dir"
            ]
        }
    }
}
```
## License

This project is licensed under the MIT License. See [LICENSE](LICENSE).


## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for information on contributing to this repository.

## Security

See [SECURITY.md](SECURITY.md) for information on security.