The contents never pass through the model, so the size of what you are merging never lands in the conversation — that is the difference between this and asking an agent to do the same thing with generic file tools. The allow-list is the thing to check first, since paths outside it are refused and the lookup tool is the only way to see where the boundary sits.
A two-tool file server: a merge that reads each input in the order given and writes it sequentially to an output path, and a lookup of the directories it may access.
- Multiple files joined into one output file, in the order the input paths were given
- Size information back from the merge — the individual file sizes and the total
- The list of directories the server is allowed to access, checkable before a merge is attempted
Input and output paths that sit inside the allowed directories, which list_allowed_directories reports.
One command — npx -y @exoticknight/mcp-file-merger
