MCP Filesystem Server Setup: How I Ran It on My Laptop

MCP filesystem server setup takes Node.js, one command and one folder. You start the official server with the path of a test folder. Then an AI app can list, read and edit files inside that folder only. I ran it on a Windows 10 laptop: the first start took 24 seconds because npx had to download the package.

Key takeaways

  • You need Node.js and a test folder. I used Node.js v24.16.0 on Windows 10.

  • One command starts the server: npx, the package name and your folder path.

  • The server told me it has 16 tools. It refused to read a file outside my folder.

  • Connecting it to Claude Desktop means editing one config file. I did not run that part, so those steps come from the official guide.

  • The server can change files, so share a folder you can afford to change.

What do you need before you start the MCP filesystem server?

You need three things: Node.js, a terminal and a folder you are happy to share. Claude Desktop is only needed for the last part of this guide. If you are new to the idea, read what Model Context Protocol is first. This post is only about the setup.

What

Why

How I checked

Node.js

The server runs on it

node --version printed v24.16.0

A terminal

You type the start command there

I used one on Windows 10

A test folder

The server may only use this folder

I made one with two text files

Claude Desktop (optional)

Only for the last part

I did not run this part

How did I set up the MCP filesystem server step by step?

I did five things. Each one gave me a result I could check.

Five numbered cards in a row. 1 Check Node.js with node --version, result v24.16.0. 2 Make a folder with two text files. 3 Start the server, first start 24 seconds. 4 List the tools, 16 tools. 5 Test the limit by reading C:\Windows\win.ini, result Access denied.

Step 1: I checked that Node.js was installed

First I ran this in a terminal. It printed v24.16.0, so Node.js was ready. If your terminal says the command is not found, install Node.js first.

node --version

Step 2: I made a throwaway folder

Next I made a new folder only for this test. I put two text files in it: os-unit2.txt with the words "Operating Systems unit 2 notes" and dbms-pyq.txt with "DBMS pyq 2024". Why a throwaway folder? The server can edit files, so I did not want to risk my real study notes.

Step 3: I started the server

Then I ran the package from the official guide and pointed it at my test folder. Put your own folder path in place of mine.

npx -y @modelcontextprotocol/server-filesystem "C:\path\to\your\test-folder"

The first start took 24 seconds, because npx had to download the package. After that the server printed that it was running on stdio. It also listed my test folder as the only allowed one.

A dark terminal window shows the start command in three coloured parts: npx -y, the package name @modelcontextprotocol/server-filesystem and the folder path in quotes. Three numbered notes on the right explain each part.

Only the folder path at the end changes from one setup to the next.

Step 4: I asked the server for its tools

I wrote a small script that sends MCP messages to the server over stdio. You do not need one, because an AI app sends these messages for you. The server introduced itself as secure-filesystem-server, version 2.2.0. When I asked for its tool list, it sent back 16 tools.

Three columns of tool names. Look has 6 tools such as list_directory and search_files. Read has 4 tools such as read_text_file. Change has 6 tools such as write_file, edit_file and move_file. Its card has a red dashed border.

I sorted the 16 names into three groups myself: look, read and change. Six of them can change your files. That matters in the safety section below.

Step 5: I tested the folder limit

This was the part I cared about most, because the whole point of sharing one folder is that the server must stay inside it. First I called list_directory on my test folder, which showed both files. Then I called read_text_file on os-unit2.txt and got back "Operating Systems unit 2 notes". Last I asked it to read C:\Windows\win.ini, a file outside my folder.

What I asked

Tool

What came back

Show my test folder

list_directory

dbms-pyq.txt and os-unit2.txt

Read one file inside the folder

read_text_file

"Operating Systems unit 2 notes"

Read C:\Windows\win.ini

read_text_file

Access denied, path outside allowed directories

A dashed green box on the left holds os-unit2.txt marked read OK and dbms-pyq.txt marked listed. A fence of posts separates it from a dashed red box on the right. There, C:\Windows\win.ini returns Access denied, path outside allowed directories.

The server refused the last request. So the folder list you give it really is the limit, at least for this server version.

How do I connect the server to Claude Desktop?

You add the server to one config file, then restart the app. I did not run any of this myself, because I left my real Claude Desktop settings alone. The approval prompt, the Developer tab and the restart come only from the official guide.

I did not test this part inside Claude Desktop. Treat the steps below as the docs version, not as my own result.

  1. Install Claude Desktop and Node.js.

  2. In Claude Desktop, open the Claude menu, then Settings, then the Developer tab and click Edit Config. On Windows the file is at %APPDATA%\Claude\claude_desktop_config.json.

  3. Put the server in that file. Swap username for your own Windows username and change the two folders to the ones you want to share.

  4. Quit Claude Desktop completely, open it again and try a request like "What files are in my Downloads folder?" The docs say Claude asks for your approval before it does anything on your computer.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\username\\Desktop",
        "C:\\Users\\username\\Downloads"
      ]
    }
  }
}
The config file shown line by line with five numbered markers. 1 mcpServers is the list of servers. 2 filesystem is a name for this server. 3 command is the program to run, npx. 4 args is what npx receives. 5 the folder paths are the only folders shared, with every backslash doubled.

Write every backslash in a Windows path twice inside the file, exactly as the docs example does.

What would I check if the setup does not work?

I would start at the top of this table and go down. The first row is from my own test. I did not hit the other rows, so they are what I would check first, based on the docs.

What you see

Likely reason

What I would do

Nothing happens for half a minute

npx is downloading the package

Wait. My first start took 24 seconds

The terminal says a command is not found

Node.js is missing

Install Node.js, then run node --version

Access denied, path outside allowed directories

The file is not inside a folder you passed

Add that folder to the list in the command

Claude Desktop does not show the server

The app was not fully closed, or the file has a typo

Quit it completely, check the commas and the doubled backslashes

Is it safe to share a folder with an MCP server?

It is safe enough if you stay careful. In my test the server refused a file outside the folder I gave it. Still, six of the 16 tools can change files. The docs say a local server runs with the permissions of your own user account.

The docs warn that a local server runs with your user account permissions, so it can do anything you can do by hand. Share only folders you are comfortable with an AI reading and changing. Never share a folder with passwords or private documents.

Frequently asked questions

Do I need to install the package first?

No. I did not install anything by hand. The npx command downloaded the package on the first start. That is why the first start took 24 seconds.

Can I share more than one folder?

Yes. The docs example for Claude Desktop lists two folders, Desktop and Downloads. Each folder is one more path in the list.

Where is the config file on Windows?

The docs give the path as %APPDATA%\Claude\claude_desktop_config.json. You can also reach it from Claude Desktop through Settings, the Developer tab and Edit Config.

Does the server only work with Claude Desktop?

No. I ran it with my own small script and no AI app at all. The docs list other apps that support MCP, such as Visual Studio Code and Cursor. I did not try them.

What I would do next

The part I have not tried is the Claude Desktop approval prompt, so that is my next test. If you want to understand why the server behaves this way, read what Model Context Protocol is. For more guides like this one, browse the Tool Setup posts.

Sources

  1. Model Context Protocol docs: Connect to local MCP servers
  2. Model Context Protocol docs: Understanding MCP servers
  3. Model Context Protocol docs: What is MCP?

Checked on 2026-11-10

Comments