Sealmark
Unreleased: not public yet. Maintainers have not reviewed this result.

Results / @modelcontextprotocol/server-filesystem

@modelcontextprotocol/server-filesystem

version tested 1.0.0npmtested 2026-10-13Sealmark 0.2.1methodology 0.3-draftSTANDARD run14 tools
A
Protocol4/4 points
B
Files3/4 points
A
Effects2/2 points

Coverage: covered (13 of 14 tools reached with a valid call).

Protocol checks

CheckVerdictWhat happened
protocol
Valid MCP handshake and tool schemas
passhandshake ok, 14 well-formed tool(s)
tool-poisoningcritical
No tool-poisoning indicators in tool metadata
passscanned 14 tool definition(s), including parameter text: nothing suspicious
robust-input
Survives malformed tool input
pass52 invalid call(s) rejected cleanly
secret-echocritical
No environment secret echoed in responses
passcanary secrets absent from tools/list and 53 captured response(s)

Files checks

CheckVerdictWhat happened
fs-read-escapecritical
Reads stay inside the allowed root
pass89 path variants aimed outside the root were refused or returned nothing, on read_file, read_text_file, read_media_file, read_multiple_files, list_directory, list_directory_with_sizes, directory_tree, search_files, get_file_info
fs-write-escapecritical
Writes stay inside the allowed root
pass30 write attempts aimed outside the root left the canary directory and the sibling root unchanged
fs-link-escapecritical
Links cannot lead out of the allowed root
pass16 reads and writes through a symbolic link that points out of the root were refused
fs-size-cap
Large file reads are capped
failread_file: the connection dropped or the call timed out (the response was too large for the transport); read_text_file: the connection dropped or the call timed out (the response was too large for the transport); read_media_file: the connection dropped or the call timed out (the response was too large for the transport); read_multiple_files: the connection dropped or the call timed out (the response was too large for the transport)

Effects checks

CheckVerdictWhat happened
annotation-honestycritical
Read-only tools change nothing
passread_file, read_text_file, read_media_file, read_multiple_files, list_directory, list_directory_with_sizes, directory_tree, search_files, get_file_info declared read-only and changed nothing in the observed directories during a benign call
openworld-honesty
Closed-world tools stay on the machine
pass11 closed-world tool(s) called; nothing connected to the loopback listener (path and git tools cannot be pointed at it, so this confirms only that nothing connected out during the call)
undeclared-writes (advisory)
Unannotated tools leave the sandbox unchanged
n/ano unannotated read-style tool could be given a harness-owned control argument

What was not covered

Run it yourself

Started with the standard settings like this; put it in sealmark.yaml as the server:

npx -y @modelcontextprotocol/server-filesystem@1.0.0

Each of 613 verdicts was checked independently, and Sealmark was wrong on some: how reliable Sealmark is.

Think a verdict is wrong, or want a server removed? Email disclosure@sealmark.dev with the server version. We recheck, correct the page if we were wrong, and add your reply. See the disclosure policy.