Skip to content

MCP Filesystem Ultra

MCP Filesystem Ultra is a Go server for the Model Context Protocol. It reads and writes the host filesystem (C:\, D:\, /mnt/...). A client may also expose native tools that target a different sandbox.

Version4.8.0
Go1.27.1
ProtocolMCP 2025-11-25
Transportstdio only
Default profileultra (29 tools)
Agent profileagent (18: strict plus git)
Strict profilestrict (17)

Spec 2026-07-28 (Tasks, stateless Streamable HTTP) is out of scope.

The server does not start unless at least one allowed path is set. Secret files are denied unless --allow-secrets.

Recommended flags for an agent:

--profile=strict --compact-mode --roots-mode=union

Default --profile is ultra, so existing configs keep the full catalog. Use strict when tools/list should stay small. --profile=agent is the strict catalog plus git.

First call list_allowed_directories. Then directory_tree or help(tool:"X"). Do not load the full catalog at startup.

Against @modelcontextprotocol/server-filesystem. The reference column is its README plus open issue 3174. This column is what this tree does.

Reference serverfilesystem-ultra
Windows rootsClient roots replace the CLI list. file:///c%3A/temp is skipped as invalid (issue 3174, open).file:///c%3A/temp becomes c:\temp. file://server/share/dir becomes \\server\share\dir. --roots-mode=union keeps the CLI list and adds client roots. Reserved device names (CON, NUL, …) and NTFS ADS (file.txt:stream) are rejected. 8.3 short names are not rewritten.
Searchsearch_files is a glob on names, not file contents.Names by default. Content with include_content:true.
UndoNo backup or undo tool.backup(action:"undo_last") walks the chain.
Dry-run / diffedit_file has dryRun and returns a diff.dry_run on edit and patch. Also diff_files and apply_patch.

Aliases (read_text_file, View, Edit, Write, Replace, LS, GlobTool, GrepTool, search, edit, write, create_file) and the fs super-tool are not registered.