Fs MCP Rs logo

Fs MCP Rs

Rust MCP filesystem server with scoped roots, read-only mode, search, optional writes, and terminal sessions.

Install Fs MCP Rs

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "fs-mcp-rs": {
      "command": "npx",
      "args": [
        "-y",
        "fs-mcp-rs"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y fs-mcp-rs

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 24d ago.

Overview

The fs-mcp-rs MCP server exposes selected filesystem roots to MCP clients through JSON-RPC over STDIO or Streamable HTTP. Written in Rust, it provides bounded file operations, content search, optional mutations, and configurable terminal sessions. Access is restricted to operator-selected directories, with controls for hidden files, Git ignores, symlinks, concurrency, and output limits. Use it when an agent needs controlled access to local project files rather than unrestricted filesystem access.

Use cases

  • Expose selected project directories to an MCP client
  • Search source files with literal or regular-expression patterns
  • Apply controlled file edits in writable mode
  • Run bounded terminal sessions when explicitly enabled

Key features

  • Scoped filesystem roots
  • STDIO and Streamable HTTP transports
  • Read-only and write-capable modes
  • Literal and regex content search
  • Symlink and Git ignore controls
  • Bounded terminal sessions

Tools21

What Fs MCP Rs lets your agent do. Expand a tool for its parameters.

Self-reported~409 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11d ago via OSV.dev · fs-mcp-rs (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars8Stargazers on the source repository.
npm downloads177Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed21Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Fs MCP Rs works

What fs-mcp-rs does

The fs-mcp-rs MCP server gives an MCP client a controlled interface to local files and directories. It accepts one or more explicitly configured filesystem roots and resolves requested paths within those roots. The server does not assume a personal directory, create a writable default, or start without configuration or supplied roots.

Its filesystem capabilities include reading and writing files, editing text, moving files, creating directories, removing entries, and searching file contents. Mutating operations can be disabled with read-only mode. Reads, writes, search results, and concurrent work are bounded by configuration values.

Search supports literal patterns and regular expressions. Directory traversal can include or exclude hidden entries and can respect Git ignore files. Symbolic-link traversal is disabled by default.

How it works

The fs-mcp-rs MCP server supports line-delimited JSON-RPC over STDIO and MCP over HTTP. It selects STDIO when used as a subprocess with piped standard streams, or when started with --stdio; interactive execution uses HTTP by default. HTTP exposes /health and /mcp endpoints.

A server process can be started with positional root paths or with a TOML configuration file. Relative roots in that file are interpreted relative to the configuration file's directory. The HTTP host, port, request concurrency, filesystem concurrency, search workers, and safety limits are configurable.

The optional terminal feature adds arbitrary command execution and persistent terminal sessions with incremental reads, long polling, input, process-tree termination, retention, and bounded output buffers. Commands run with the permissions of the operating-system account running the server.

Setup and configuration

Install the executable with cargo install fs-mcp-rs, build it from source with Rust 1.85 or newer, or use npx fs-mcp-rs with Node.js 18 or newer. The npm package downloads a precompiled binary for supported Windows, Linux, and macOS targets.

Run the fs-mcp-rs MCP server against selected directories directly, for example fs-mcp-rs /path/to/project, or pass --config /path/to/fs-mcp-rs.toml. The configuration path can also be supplied through FS_MCP_CONFIG. A non-empty roots list is required in a configuration file, and unknown fields or zero-valued safety limits are rejected.

Keep the server bound to 127.0.0.1 unless remote access is needed. Enable terminal execution only after reviewing its permissions: filesystem roots and read-only mode do not restrict commands started through the terminal feature.

Tools and capabilities

  • File reads and bounded file writes.
  • Text editing, moving, directory creation, and removal when writes are enabled.
  • Literal and regular-expression content search.
  • Hidden-file and .gitignore traversal controls.
  • Optional BLAKE3 hashes and atomic file replacement.
  • Optional command execution and persistent terminal sessions.
  • Concise execution logging to help distinguish successful and warning results.
  • No telemetry or automatic network discovery.

Limitations and notes

The fs-mcp-rs MCP server does not provide an unrestricted filesystem root. Every requested path must resolve inside an allowed root, subject to the configured symlink policy. Read-only mode rejects mutating tools but does not sandbox terminal commands.

Terminal execution is disabled unless explicitly enabled. When enabled, commands can access anything permitted to the server process, including resources outside the configured filesystem roots. Terminal timeouts, retained output, concurrent commands, and individual reads remain bounded by configuration.

MCP clients must support STDIO JSON-RPC or Streamable HTTP. The server requires either explicit roots or a configuration file when launched according to the documented setup, and it intentionally has no automatic configuration path.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Fs MCP Rs

fs-mcp-rs is an MCP server that connects AI clients to operator-selected local filesystem directories. Its main tools support bounded file access, text editing, directory and file management, content search, and optional terminal sessions. It runs over line-delimited STDIO JSON-RPC or Streamable HTTP and keeps requests inside configured roots.

Install it with `cargo install fs-mcp-rs`, build it from source with Rust 1.85 or newer, or run `npx fs-mcp-rs` with Node.js 18 or newer. The npm package downloads a matching precompiled binary for supported Windows, Linux, and macOS architectures.

Set a non-empty `roots` list in a TOML configuration file or pass root directories as positional command-line arguments. Start with `--config /path/to/fs-mcp-rs.toml`, or set `FS_MCP_CONFIG` before launching the executable. Relative configured roots use the configuration file's directory as their base.

Yes, fs-mcp-rs works with Cursor through its STDIO or Streamable HTTP MCP support. The README specifically lists Cursor as an example client and shows `npx fs-mcp-rs /path/to/project` for starting the server.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFs MCP Rs AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/fs-mcp-rs?style=directory)](https://allmcps.com/mcp/fs-mcp-rs)
HTML Embed
<a href="https://allmcps.com/mcp/fs-mcp-rs"><img src="https://allmcps.com/api/badge/fs-mcp-rs?style=directory" alt="Fs MCP Rs on AllMCPs" /></a>