Skip to content

Tool Reference

All paths are cloud URIs — e.g. s3://my-bucket/path/to/file.txt. The server validates every path against the configured root URIs at startup; requests outside allowed roots are rejected.

Read Tools

ToolParametersDescription
read_filepathRead a file. Binary → base64; text → UTF-8.
read_text_filepath, head?, tail?Read text file with optional head/tail line limits. Returns ETag in metadata.
read_media_filepathRead image/media as base64 MCP image content block.
read_multiple_filespathsRead several files in parallel.
read_file_rangepath, offset, limitRead a 1-based line range with total line count header.
read_file_chunkpath, start_byte, end_byte?, encoding?Read a byte range without downloading the entire file. Max 10MB.

Write Tools

ToolParametersDescription
write_filepath, contentWrite/overwrite a file. Flushed after debounce window.
edit_filepath, edits[], dryRun?, expected_etag?Apply { oldText, newText } edits. Preview with dryRun. Optional ETag conflict detection.

Directory Tools

ToolParametersDescription
create_directorypathCreate a directory placeholder and parent prefixes.
list_directorypathList immediate children (like ls).
list_directory_with_sizespath, sortBy?, limit?List children with sizes. Sort by size or name.
directory_treepath, excludePatterns?Recursive directory tree with glob exclusions.

Move, Copy & Delete Tools

ToolParametersDescription
move_filesource, destinationMove file. Server-side copy + delete for same-bucket.
copy_filesource, destinationCopy file. Server-side for same-bucket.
delete_filepathDelete file. Requires --enable-delete.

Search Tools

ToolParametersDescription
search_filespath, pattern, excludePatterns?Glob-based object key search.
grep_filepath, pattern, case_insensitive?Regex search in a single file with line numbers.
grep_filespath, pattern, glob?, case_insensitive?, output_mode?, max_objects?Regex search across all objects under a path.

Info Tools

ToolParametersDescription
get_file_infopathFile metadata: size, last-modified, content type.
list_allowed_directories(none)List configured root URIs.

✨ = Extended tool (not in standard mcp-server-filesystem)

AI-Native Tools 🧠

ToolParametersDescription
get_file_schema 🧠pathExtract structural schema: CSV column names/types/samples, JSON shape, or text line/byte counts.
summarize_file 🧠pathCompact head/tail preview with file size, line count, and content type.

🧠 = AI-native tool (reduces LLM context token waste)

Cloud-Native Tools ☁️

ToolParametersDescription
get_presigned_url ☁️path, operation?, expires_in?Generate a temporary access URL (default: GET, 1 hour).
get_object_metadata ☁️pathGet size, content type, last modified, custom metadata, and tags.
set_object_tags ☁️path, tagsReplace object tags with key-value pairs.
search_by_tag ☁️path, tags, recursive?Find objects matching tag filters (AND logic).
list_versions ☁️path, max_results?, page_token?List version history with timestamps, sizes, and markers.
restore_version ☁️path, version_idRestore a previous object version (copies over current).

☁️ = Cloud-native tool (requires provider support)

Macro Tools 🩹

ToolParametersDescription
patch_file 🩹path, patch, format?, expected_etag?Apply unified diffs or line-range replacements atomically in a single tool call.

Two patch formats are supported:

FormatSyntaxBest for
unified (default)Standard @@ -1,3 +1,3 @@ hunksMulti-hunk diffs
line_replacestartLine:endLine followed by replacement textSimple line-range replacements

🩹 = Macro tool (combines multiple operations into one tool call)

Shell Tool ⚡

ToolParametersDescription
shellcommandExecute POSIX-like commands. Supports pipes, redirects, and command list operators. Requires --enable-shell.

Built-in commands: ls, cat, head, tail, cp, mv, rm, mkdir, touch, stat, find, grep, wc, du, echo, tee, diff, jq, cd

Supported syntax:

SyntaxDescriptionExample
cmd1 | cmd2Pipe stdout of cmd1 to stdin of cmd2cat s3://b/f | grep foo | wc -l
cmd > pathRedirect stdout to file (overwrite)echo hello > s3://b/out.txt
cmd >> pathRedirect stdout to file (append)date >> s3://b/logs.txt
< path cmdRedirect file content as stdingrep pat < s3://b/f.txt
cmd1 && cmd2Run cmd2 only if cmd1 succeedsmkdir s3://b/d && echo created
cmd1 || cmd2Run cmd2 only if cmd1 failscat missing || echo fallback
cmd1 ; cmd2Always run both commandsecho a ; echo b
bash
shell "ls -l s3://my-bucket/data/"
shell "cat s3://my-bucket/config.json | grep port | wc -l"
shell "echo hello world > s3://my-bucket/greeting.txt"
shell "mkdir s3://my-bucket/reports && echo ready"
shell "cat s3://my-bucket/primary.json || cat s3://my-bucket/fallback.json"

WARNING

shell requires --enable-shell. rm and mv additionally require --enable-delete.

Released under the PolyForm Shield 1.0.0 License.