# Tools changed (breaking): Filesystem (reference)

> Source: <https://testedmcp.com/tools/filesystem-reference/#tool-changes>
> Published: 2026-11-12 00:00:00+00:00

# Filesystem (reference)

**93**/100

Score = points from our five tests (install, handshake, maintenance, docs, license). Not a quality or security rating. [Methodology](https://testedmcp.com/methodology/)

- Install20/20
- Handshake30/30
- Maintenance25/25
- Docs15/15
- License3/10

Retested 2026-11-12 on @modelcontextprotocol/server-filesystem@2.3.0. The date versions 2025.1.14 to 2026.8.31 are also affected; npm ranks those date versions above 2.3.0, so the install line pins 2.3.0 explicitly. The tool list is 16 (append_file and copy_file were added; directory_tree has a new depth input).

Tool-call test (2026-11-12, direct MCP stdio client, no LLM): **pass**. 2 of 2 calls passed in the 2026-11-12 fixed-in retest. Evidence: local test run, Nov 12, 2026.

**Transport (tested 2026-10-27):** stdio

Tested version: 2.3.0 · tested 2026-11-12

**Token cost (estimate):** approx. 2885 tokens, cl100k estimate (16 tools, measured 2026-11-12, version 2.3.0). This is an estimate from our testing of the tool names, descriptions and input schemas, counted with cl100k_base.

## Permissions: 10 read, 6 write (state-changing), 0 unclassified · Auth: local · Rate limit: unknown · Pricing unit: unknown

Auth: local. Rate limit: unknown. Pricing unit: unknown.

- `append_file` — write (state-changing)
- `copy_file` — write (state-changing)
- `create_directory` — write (state-changing)
- `directory_tree` — read
- `edit_file` — write (state-changing)
- `get_file_info` — read
- `list_allowed_directories` — read
- `list_directory` — read
- `list_directory_with_sizes` — read
- `move_file` — write (state-changing)
- `read_file` — read
- `read_media_file` — read
- `read_multiple_files` — read
- `read_text_file` — read
- `search_files` — read
- `write_file` — write (state-changing)

local stdio server with no recorded cloud credential

Score **93/100** · Tools **16** · Token cost **approx. 2,885 tokens** (Tool list changed 2026-11-12; count from 2026-11-12 capture) · [Compare](https://testedmcp.com/compare/?s=filesystem-reference) · Last tested **2026-11-12** · Version tested `2.3.0` · Package [@modelcontextprotocol/server-filesystem](https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem)[modelcontextprotocol/servers](https://testedmcp.com/go/filesystem-reference/)

Summary: Filesystem (reference) completed an MCP handshake without credentials and exposed 16 tools.

Related: [Sequential Thinking (reference) test results](https://testedmcp.com/tools/sequential-thinking-reference/)

## Evidence summary

- Handshake
- pass
- Tools listed
- 16
- Context cost
- approx. 2885 tokens, cl100k estimate (16 tools, measured 2026-11-12, version 2.3.0; an estimate) [ranking](https://testedmcp.com/best/lowest-context-cost-mcp-servers/) ·[add up your servers' context cost](https://testedmcp.com/guides/how-much-context-mcp-servers-cost/)
Tool list changed 2026-11-12; count from 2026-11-12 capture
- API key
- No key needed for the tools we called
- Tested
- 2026-11-12

## Test results

| Test | Result | Points | Evidence | 
|---|---|---|---|
| install | pass | 20 | `npm install @modelcontextprotocol/server-filesystem` (Node 20, Linux) succeeded in 0s. | 
| handshake | pass | 30 | MCP `initialize` +`tools/list` over stdio succeeded with no credentials; 16 tools listed in 0.3s. | 
| maintenance | pass | 25 | Repo pushed 24 days before test; 91,469 GitHub stars. | 
| docs | pass | 15 | README over 3,000 chars; install instructions present; `mcpServers` config example present. Check of the package's own README (README shipped in npm package). | 
| license | partial | 3 | License not machine-detected as OSI (SEE LICENSE IN LICENSE). | 

## Local-model readiness

Token cost (estimate): **approx. 2885 tokens, cl100k estimate** for 16 tools · about 35% of an 8k context. This is an estimate from our testing (counted with cl100k_base).

Small-model friendly (schema heuristic, not a model result): **high**.

| Model | Quantization | Runs | Task completed | Correct tool | Avg rounds | 
|---|---|---|---|---|---|
| qwen2.5:3b-instruct-q4_K_M | Q4_K_M GGUF (bartowski/Qwen2.5-3B-Instruct-GGUF), CPU-only | 3 | 100% | 100% | 2 | 
| qwen2.5:1.5b-instruct-q4_K_M | Q4_K_M GGUF (bartowski/Qwen2.5-1.5B-Instruct-GGUF), CPU-only | 3 | 100% | 100% | 2 | 

## Functional tasks (3/3 passed, tested 2026-10-27)

| Task | Tool | Result | Evidence | 
|---|---|---|---|
| write file | write_file | pass | [{"type":"text","text":"Successfully wrote to <temp dir>/probe-1793079959975.txt"}] | 
| read file | read_file | pass | [{"type":"text","text":"testedmcp-qf5qae7yz3q"}] | 
| list directory | list_directory | pass | [{"type":"text","text":"[FILE] probe-1793079959975.txt"}] | 

## What we tested and what we didn't

### Tested on 2026-11-12

- Install from the registry
- We connected with no credentials and asked for its tool list: it listed 16 tools (Method details: MCP `initialize` then`tools/list` )
- Maintenance signals (last push, archived/deprecated status)
- Docs (README length, install and config example)
- License (OSI-approved or not)
- Functional tasks: 3/3 passed
- Token cost (estimate)
- Small local-model task runs (directional)

### Not tested

- Security: **not audited** (no code review, no permission or data-flow analysis)
- Behaviour with real credentials or a real account
- Performance, rate limits or load
- Correctness of results beyond the listed tasks

Methodology: [how we test](https://testedmcp.com/methodology/). A high score means it installs and responds, not that giving it access to your data carries no risk.

## Known security issues

**Security fix released:** [GHSA-p9cv-8g75-4xcg](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-p9cv-8g75-4xcg) (medium) and [GHSA-7m4x-rv66-mxhh](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-7m4x-rv66-mxhh) (medium). Fixed in 2.3.0 (advisory published 2026-11-11). The date versions 2025.1.14 to 2026.8.31 are also affected. npm ranks those date versions above 2.3.0, so the install line pins 2.3.0 explicitly.

Checked on 2026-11-12 for version `2.3.0` against OSV, GitHub advisories, GitHub repository advisories. Scope: the package itself; dependencies not scanned.

No published advisories found in OSV and GitHub advisories whose affected range includes @modelcontextprotocol/server-filesystem 2.3.0 as of 2026-11-12. This is not a security audit.

## Other advisories we checked (8)

- Tested version 2.3.0 is not in the affected range of [GHSA-q66q-fx2p-7w4m](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-q66q-fx2p-7w4m) .
- Tested version 2.3.0 is not in the affected range of [GHSA-hc55-p739-j48w](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-hc55-p739-j48w) .
- Tested version 2.3.0 is not in the affected range of [GHSA-4gxg-m5jx-9j57](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-4gxg-m5jx-9j57) .
- Tested version 2.3.0 is not in the affected range of [GHSA-7rgq-gccq-qphx](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-7rgq-gccq-qphx) .
- Tested version 2.3.0 is not in the affected range of [GHSA-53mr-w429-c597](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-53mr-w429-c597) .
- Tested version 2.3.0 is not in the affected range of [GHSA-hhwq-wxfx-cj7g](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-hhwq-wxfx-cj7g) .
- Tested version 2.3.0 is not in the affected range of [GHSA-p9cv-8g75-4xcg](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-p9cv-8g75-4xcg) .
- Tested version 2.3.0 is not in the affected range of [GHSA-7m4x-rv66-mxhh](https://github.com/modelcontextprotocol/servers/security/advisories/GHSA-7m4x-rv66-mxhh) .

Monthly roundup: [MCP security issues, October 2026](https://testedmcp.com/security/2026-10/).

## Tool list changes ↻ Tools changed (breaking) 2026-11-12

**Tool list changed since last test (2026-11-11 → 2026-11-12): +2 added, 12 changed (breaking).** Confirmed by a re-run with the same arguments.

## Show the diff

- Added: `append_file`
- Added: `copy_file`
- Changed schema: `create_directory`
- Changed schema: `directory_tree`
- Changed schema: `edit_file`
- Changed schema: `get_file_info`
- Changed schema: `list_directory`
- Changed schema: `list_directory_with_sizes`
- Changed schema: `move_file`
- Changed schema: `read_file` (breaking)
- Changed schema: `read_media_file`
- Changed schema: `read_text_file` (breaking)
- Changed schema: `search_files`
- Changed schema: `write_file`

## Snapshot hash (fingerprint of the tool list)

`b6a46ea21cb6`: SHA-256 of the canonical tool names, descriptions and input schemas. If it changes, the tool list changed.

## Raw test record (JSON)

```
{
  "name": "@modelcontextprotocol/server-filesystem",
  "version": "2.3.0",
  "registry": "npm",
  "status": "working",
  "tested": "2026-11-12",
  "tools_count": 16,
  "deprecated": false,
  "archived": false,
  "tests": {
    "install": [
      "pass",
      20,
      "`npm install @modelcontextprotocol/server-filesystem` (Node 20, Linux) succeeded in 0s."
    ],
    "handshake": [
      "pass",
      30,
      "MCP `initialize` + `tools/list` over stdio succeeded with no credentials; 16 tools listed in 0.3s."
    ],
    "maintenance": [
      "pass",
      25,
      "Repo pushed 24 days before test; 91,469 GitHub stars."
    ],
    "docs": [
      "pass",
      15,
      "README over 3,000 chars; install instructions present; `mcpServers` config example present. Check of the package's own README (README shipped in npm package)."
    ],
    "license": [
      "partial",
      3,
      "License not machine-detected as OSI (SEE LICENSE IN LICENSE)."
    ]
  }
}
```

## Install

`npx -y @modelcontextprotocol/server-filesystem <path>`

## Pin the version we tested

`npx -y @modelcontextprotocol/server-filesystem@2.3.0 <path>`

tested 2026-11-12. Newer versions may differ and were not tested by us.

```
{
  "mcpServers": {
    "filesystem-reference": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem@2.3.0",
        "<path>"
      ]
    }
  }
}
```

## Tools listed

`append_file`, `copy_file`, `create_directory`, `directory_tree`, `edit_file`, `get_file_info`, `list_allowed_directories`, `list_directory`, `list_directory_with_sizes`, `move_file`, `read_file`, `read_media_file`, `read_multiple_files`, `read_text_file`, `search_files`, `write_file`

Tool history: captured Nov 11, 2026. [All tool history](https://testedmcp.com/changes/).

## Quick config

```
{
  "mcpServers": {
    "filesystem-reference": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/tmp"
      ]
    }
  }
}
```

[Add to config](https://testedmcp.com/free-tools/mcp-config-generator/?s=filesystem-reference) Opens the config generator with this server selected.

## Setup

1. **Install.** Run`npm install @modelcontextprotocol/server-filesystem` (Node 20). This is the exact command we ran on 2026-11-12.
2. **Configure.** Add the mcpServers entry below to your MCP client config.
3. **Verify.** Restart the client and check that tools/list returns tools (16 in our test).

```
{
  "mcpServers": {
    "filesystem-reference": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/tmp"
      ]
    }
  }
}
```

## Test history

- 2026-11-12: Retested
- 2026-11-12: Tools changed (breaking)
- 2026-10-27: Retested
- 2026-10-22: New

Related: [Best file MCP servers](https://testedmcp.com/best/files-mcp-servers/)

## FAQ

### Is Filesystem (reference) deprecated?

No. @modelcontextprotocol/server-filesystem was not deprecated or archived when we last tested it on 2026-11-12.

### What replaces Filesystem (reference)?

Nothing; Filesystem (reference) is not deprecated as of 2026-11-12.

### Does Filesystem (reference) need an API key?

No. It completed an MCP handshake with no credentials and listed 16 tools.

## Embed the badge

Every tested server gets a free embeddable badge. It shows the current score and test date and expires after 90 days. Testing is free; payment never changes a score.
