RUNLOCALAIv38
->Will it run?Best GPUCompareTroubleshootStartLearnPulseModelsHardwareToolsBench
Run check
RUNLOCALAI

Independently operated catalog for local-AI hardware and software. Hand-written verdicts. Source-cited claims. Reproducible commands when we have them.

OP·Eruo Fredoline
DIR
  • Models
  • Hardware
  • Tools
  • Benchmarks
TOOLS
  • Will it run?
  • Compare hardware
  • Cost vs cloud
  • Choose my GPU
  • Prompting kits
  • Quick answers
REF
  • All buyer guides
  • Learn local AI
  • Methodology
  • Glossary
  • Errors KB
  • Trust
EDITOR
  • About
  • Author
  • How we make money
  • Editorial policy
  • Contact
LEGAL
  • Privacy
  • Terms
  • Sitemap
MAIL · MONTHLY DIGEST
Get monthly local AI changes
Monthly recap. No spam.
DISCLOSURE

Some links on this site are affiliate links (Amazon Associates and other first-class retailers). When you buy through them, we earn a small commission at no extra cost to you. Affiliate links do not influence our verdicts — there are cards we rate highly that we don't have affiliate relationships with, and cards that sell well that we refuse to recommend. Read more →

© 2026 runlocalai.coIndependently operated
RUNLOCALAI · v38
  1. >
  2. Home
  3. /Tools
  4. /MCP Filesystem Server
server
Open source
free (OSS, MIT)

MCP Filesystem Server

Anthropic's reference MCP server for filesystem access. Read, write, search, move, and list files inside a configured allowlist of directories. The canonical example for understanding how MCP tool exposure works in practice — most third-party MCP servers borrow its argument-validation patterns.

By Eruo Fredoline·Last verified Jun 12, 2026·60,000 GitHub stars

Overview

What it is and how it works

The MCP Filesystem Server is Anthropic's reference implementation of a Model Context Protocol server that exposes local file operations — read, write, edit, move, search, list, and get metadata — as callable tools an LLM client can invoke. It lives in the modelcontextprotocol/servers monorepo alongside the other reference servers (fetch, memory, git, and so on), and it is the server most people run first when they set up MCP, because "let the model touch files on my machine" is the most immediately useful and most immediately dangerous thing you can wire into an agent.

Architecturally it is deliberately simple. The server is a small Node.js process that speaks the MCP protocol — JSON-RPC-style messages describing available tools, their JSON-schema argument shapes, and their results — over either stdio (the default for local desktop use, e.g. spawned as a child process by Claude Desktop or another MCP host) or a remote transport for networked deployments. On startup, it takes a list of allowlisted root directories as arguments. Every tool call is checked against that allowlist before touching disk: path arguments are resolved and normalized, then verified to fall inside one of the permitted roots, which is what stops an agent from being tricked into reading ../../.ssh/id_rsa or writing outside the sandbox via .. traversal or symlink tricks. This allowlist-plus-path-validation pattern is the single most copied piece of code in the MCP ecosystem — a large share of third-party servers that touch any kind of resource (databases, cloud storage, local repos) lift this exact validation approach almost verbatim, which is part of why the project is described as "canonical" rather than just "popular."

The tool surface itself is intentionally narrow and unopinionated: read_file, write_file, edit_file (line-based or diff-style patch application depending on version), create_directory, list_directory, move_file, search_files, and get_file_info. There's no built-in understanding of file types — a call to read a 50MB video file behaves the same as a call to read a 2KB config file, because the server does not inspect content, only enforce path boundaries and hand bytes back to the model. That's a conscious minimalism: it's a reference implementation meant to demonstrate the protocol correctly, not a hardened production file-management API.

Deployment patterns

The overwhelmingly common deployment is solo and local: a developer adds the server to their MCP host's config (Claude Desktop's claude_desktop_config.json, or an equivalent config in Cursor, Windsurf, Cline, or another MCP-aware client), pointing it at one or two project directories via npx -y @modelcontextprotocol/server-filesystem /path/to/project. The host spawns the server as a stdio subprocess per session — no daemon, no persistent listener, no network exposure. This is the "let Claude read and edit my repo" pattern, and it's low-risk precisely because the allowlist is scoped to a single project folder and the process dies with the session.

The second pattern is per-project configuration in a team or homelab setting: each repository or workspace gets its own MCP server config with its own allowlisted roots, checked into .mcp.json or similar so teammates get consistent tool access when they open the project. This is where the "requires per-directory configuration for each project" con in the source data actually bites — there's no global "trust this whole machine" mode by design, so multi-project setups mean repeating the config per workspace, which is friction but also the actual safety mechanism.

Remote/server deployment is rarer and more deliberate: running the filesystem server behind a remote MCP transport so multiple clients or a hosted agent can reach a shared filesystem (e.g., a CI runner's workspace, a shared NAS-backed directory). This shows up in more sophisticated internal tooling setups, not consumer usage, and it raises the stakes on the allowlist configuration since now it's gatekeeping access for potentially multiple untrusted callers rather than a single local user's own files.

How it compares

Within the MCP server ecosystem, the closest comparisons are the other Anthropic reference servers — mcp-server-git (structured git operations instead of raw file I/O) and mcp-server-fetch (HTTP retrieval) — which share the same minimalist, single-responsibility philosophy and the same stdio-first transport story. Filesystem is the one people reach for most because raw file access is a prerequisite for almost any coding-agent workflow, whereas git and fetch are more specialized.

Outside the reference set, third-party filesystem-adjacent servers (various community-built "smart" filesystem or codebase-indexing MCP servers) typically add things this one deliberately omits: semantic search over file contents, chunking/embedding for large codebases, gitignore-aware traversal, or content-type-aware previews for binaries and images. Those tools trade the reference server's auditability and small surface area for more capability — reasonable if you need RAG-style code search, but it's more code to trust and more attack surface to validate. Compared to giving an agent raw shell access (e.g., via a general-purpose exec/terminal MCP server), the filesystem server is far more constrained: shell access can do anything the OS user can do, while this server can only do the specific file operations it exposes, inside the specific directories it was configured with. That narrower blast radius is the main reason to prefer it over a shell-based workaround for pure file-editing tasks.

Best use cases and honest limitations

This is the right tool whenever an agent needs to read or edit files in a known, bounded set of directories — coding assistants working in a repo, documentation generators, local note-taking or knowledge-base agents. The Anthropic-maintained reference status and strict allowlisting mean it's a reasonable default to trust more than a random community server, and the stdio/remote transport flexibility covers both the desktop and the networked-service case.

It is a poor fit if you need content-awareness: because it has no content-type heuristics, pointing it at a directory containing large binaries, images, or media files means those bytes come through raw to the model, wasting context and potentially failing outright on very large files — you'll want a purpose-built ingestion or chunking layer in front of it for that. It's also not a fit for "just let the agent access whatever it needs" convenience, since every new project or directory means another explicit config entry; there's no discovery mechanism, and that's by design, not an oversight. Teams wanting fine-grained per-tool permissions (read but not write, for instance) will find the tool set is all-or-nothing per configured root — you allowlist a directory, and read/write/move/search all become available there. For anyone building or auditing their own MCP server, though, this remains the right place to start reading source, precisely because its patterns are what the rest of the ecosystem imitates.

Stack & relationships

How MCP Filesystem Server relates to other entries in the catalog — recommended pairings, alternatives, dependencies, and edges to avoid. Each edge carries a one-line operator note from our editorial team.

MCP Filesystem Server ↔ ecosystem

Recommended stack

  • Commonly deployed with
    Claude Desktop

    The reference deployment example for MCP. Configure filesystem allowlists in Claude Desktop's MCP config; the server starts on app launch.

  • Commonly deployed with
    Claude Code

    Same wiring as Claude Desktop. Most agent workflows that need local-file access pull this server in.

  • Pairs with
    MCP Git Server

    Together they give an agent full local-repo awareness — filesystem reads files, git reads metadata (status / diff / log / blame).

Works with

  • Integrates with
    OpenHands

    Filesystem MCP is non-optional for OpenHands — it's how the agent reads and writes project files. Allowlist limits blast radius.

Featured in these stacks

The L3 execution stacks that pick this tool as a recommended component, with the one-line note explaining the role it plays in each.

  • Stack · L3·Workstation tier·Role: File access (the agent's hands on the codebase)
    Build a local coding-agent stack (May 2026)

    The Anthropic reference filesystem MCP server with strict directory allowlisting. Required for OpenHands to read and write project files; allowlist limits blast radius when the agent goes off the rails.

  • Stack · L3·Workstation tier·Role: MCP filesystem (file access with allowlisting)
    Build a memory-enabled local agent stack (May 2026)

    Strict directory allowlist limits the agent's blast radius. Required for any agent that edits files; non-optional for a memory-enabled agent that may take destructive actions based on remembered context.

  • Stack · L3·Workstation tier·Role: MCP filesystem (strict allowlist)
    Build a fully offline coding stack (May 2026)

    Reference Anthropic filesystem MCP. Strict directory allowlisting limits the agent's blast radius — non-optional for offline deployments where the network can't catch a destructive mistake.

Pros

  • Anthropic-maintained reference implementation
  • Strict directory allowlisting prevents path-escape attacks
  • Stdio + remote transport support

Cons

  • No content-type heuristics — large binary files come through raw
  • Requires per-directory configuration for each project

Compatibility

Operating systems
macOS
Linux
Windows
GPU backends
n/a
LicenseOpen source · free (OSS, MIT)

Runtime health

Operator-grade signals on how actively MCP Filesystem Server is being maintained, how fresh its measurements are, and what failure classes operators have flagged. Every label below is anchored to a real date or count — we never infer maintainer activity we can't show.

Release cadence

Derived from the most recent editorial signal on this row.

Active
Updated Jul 3, 2026

32 days since last refresh · source: enrichedAt

Benchmark freshness

How recent the editorial measurements on this runtime are.

0editorial benchmarks

No editorial benchmarks for this runtime yet.

Community reproduction

Submissions that match an editorial measurement on similar hardware.

0reproduced reports

No community reproductions on file yet.

Get MCP Filesystem Server

Official site
https://modelcontextprotocol.io
GitHub
https://github.com/modelcontextprotocol/servers

Frequently asked

Is MCP Filesystem Server free?

Yes — MCP Filesystem Server is free to use and open-source.

What operating systems does MCP Filesystem Server support?

MCP Filesystem Server supports macOS, Linux, Windows.

Does MCP Filesystem Server need a GPU?

No — MCP Filesystem Server runs on CPU; it does not require or use a GPU.
See something off?Report outdated·Suggest a correctionWe read every submission. Editorial review takes 1-7 days.

Reviewed by RunLocalAI Editorial. See our editorial policy for how we evaluate tools.

Related — keep moving

Compare hardware
  • RTX 4090 vs RTX 5090 →
  • Dual 3090 vs RTX 5090 (tensor-parallel) →
  • RTX 5090 vs H100 →
Buyer guides
  • Best GPU for local AI →
  • Best AI PC build under $2,000 →
When it doesn't work
  • vLLM CUDA version mismatch →
  • Tensor parallelism crash →
  • CUDA driver too old →
  • CUDA out of memory →
Recommended hardware
  • RTX 4090 (24 GB) →
  • RTX 5090 (32 GB) →
  • H100 PCIe (datacenter) →
Alternatives
SGLangText Generation Inference (TGI)ExoWeaviateQdrantNeo4j GraphRAGChromaRedis (vector search)
Before you buy

Verify MCP Filesystem Server runs on your specific hardware before committing money.

Will it run on my hardware? →Custom hardware comparison →GPU recommender (4 questions) →