Filesystem logo

Filesystem

OrganizationPopular
modelcontextprotocol

Model Context Protocol Servers

Publishermodelcontextprotocol
Repositoryservers
LanguageTypeScript
Forks
11.7K
Stars
90.5K
Available tools
14
Transport typestdio
Links
  • Connect tools to AI workflows

    Filesystem exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 14 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    90.5K stars and 11.7K forks from the linked repository.

Model Context Protocol servers

This repository is a collection of reference implementations for the Model Context Protocol (MCP), as well as references to community-built servers and additional resources.

[!IMPORTANT] If you are looking for a list of MCP servers, you can browse published servers on the MCP Registry. The repository served by this README is dedicated to housing just the small number of reference servers maintained by the MCP steering group.

[!WARNING] The servers in this repository are intended as reference implementations to demonstrate MCP features and SDK usage. They are meant to serve as educational examples for developers building their own MCP servers, not as production-ready solutions. Developers should evaluate their own security requirements and implement appropriate safeguards based on their specific threat model and use case.

The servers in this repository showcase the versatility and extensibility of MCP, demonstrating how it can be used to give Large Language Models (LLMs) secure, controlled access to tools and data sources. Typically, each MCP server is implemented with an MCP SDK:

🌟 Reference Servers

These servers aim to demonstrate MCP features and the official SDKs.

  • Everything - Reference / test server with prompts, resources, and tools.
  • Fetch - Web content fetching and conversion for efficient LLM usage.
  • Filesystem - Secure file operations with configurable access controls.
  • Git - Tools to read, search, and manipulate Git repositories.
  • Memory - Knowledge graph-based persistent memory system.
  • Sequential Thinking - Dynamic and reflective problem-solving through thought sequences.
  • Time - Time and timezone conversion capabilities.

Archived

The following reference servers are now archived and can be found at servers-archived.

  • AWS KB Retrieval - Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
  • Brave Search - Web and local search using Brave's Search API. Has been replaced by the official server (@brave/brave-search-mcp-server).
  • EverArt - AI image generation using various models.
  • GitHub - Repository management, file operations, and GitHub API integration.
  • GitLab - GitLab API, enabling project management.
  • Google Drive - File access and search capabilities for Google Drive.
  • Google Maps - Location services, directions, and place details.
  • PostgreSQL - Read-only database access with schema inspection.
  • Puppeteer - Browser automation and web scraping.
  • Redis - Interact with Redis key-value stores.
  • Sentry - Retrieving and analyzing issues from Sentry.io.
  • Slack - Channel management and messaging capabilities. Now maintained by Zencoder
  • SQLite - Database interaction and business intelligence capabilities.

🚀 Getting Started

Using MCP Servers in this Repository

TypeScript-based servers in this repository can be used directly with npx.

For example, this will start the Memory server:

sh
npx -y @modelcontextprotocol/server-memory

Python-based servers in this repository can be used directly with uvx or pip. uvx is recommended for ease of use and setup.

For example, this will start the Git server:

sh
# With uvx
uvx mcp-server-git

# With pip
pip install mcp-server-git
python -m mcp_server_git

Follow these instructions to install uv / uvx and these to install pip.

Using an MCP Client

However, running a server on its own isn't very useful, and should instead be configured into an MCP client. For example, here's the Claude Desktop configuration to use the above server:

json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

On Windows, wrap npx with cmd /c:

json
{
  "mcpServers": {
    "memory": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

Additional examples of using the Claude Desktop as an MCP client might look like:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
    },
    "git": {
      "command": "uvx",
      "args": ["mcp-server-git", "--repository", "path/to/git/repo"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
    }
  }
}

On Windows, apply the same wrapper to each npx-based entry above by changing "command" to "cmd" and prepending "/c", "npx" to the existing args. Leave uvx entries unchanged.

🛠️ Creating Your Own Server

Interested in creating your own MCP server? Visit the official documentation at modelcontextprotocol.io for comprehensive guides, best practices, and technical details on implementing MCP servers.

📚 Learn More

See ADDITIONAL.md for a curated list of frameworks and resources that simplify building MCP servers and clients.

🤝 Contributing

See CONTRIBUTING.md for information about contributing to this repository.

📦 Releasing

See RELEASING.md for how packages are published (OIDC trusted publishing from CI — no registry tokens) and how to retry a failed publish.

🔒 Security

See SECURITY.md for reporting security vulnerabilities.

📜 License

This project is licensed under the Apache License, Version 2.0 for new contributions, with existing code under MIT - see the LICENSE file for details.

💬 Community

⭐ Support

If you find MCP servers useful, please consider starring the repository and contributing new servers or improvements!


Managed by Anthropic, but built together with the community. The Model Context Protocol is open source and we encourage everyone to contribute their own servers and improvements!

Installation

TypingMind
Prerequisites:

Node.js 18+

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

Available Tools

  • read_file

    Read the complete contents of a file as text. DEPRECATED: Use read_text_file instead.

  • read_text_file

    Read the complete contents of a file from the file system as text. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Use the 'head' parameter to read only the first N lines of a file, or the 'tail' parameter to read only the last N lines of a file. Operates on the file as text regardless of extension. Only works within allowed directories.

  • read_media_file

    Read an image or audio file. Returns the base64 encoded data and MIME type. Only works within allowed directories.

  • read_multiple_files

    Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.

  • write_file

    Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.

  • edit_file

    Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.

  • create_directory

    Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.

  • list_directory

    Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.

  • list_directory_with_sizes

    Get a detailed listing of all files and directories in a specified path, including sizes. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is useful for understanding directory structure and finding specific files within a directory. Only works within allowed directories.

  • directory_tree

    Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.

  • move_file

    Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.

  • search_files

    Recursively search for files and directories matching a pattern. The patterns should be glob-style patterns that match paths relative to the working directory. Use pattern like '.ext' to match files in current directory, and '**/.ext' to match files in all subdirectories. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.

  • get_file_info

    Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.

  • list_allowed_directories

    Returns the list of directories that this server is allowed to access. Subdirectories within these allowed directories are also accessible. Use this to understand which directories and their nested paths are available before trying to access files.

Use Filesystem MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Filesystem is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Filesystem as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Filesystem MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Filesystem MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Filesystem MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Filesystem to help me with this task?
Filesystem
Sure. I read it.
Here is what I found using Filesystem.

Frequently asked questions

What is the Filesystem MCP server used for?

Filesystem is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Filesystem MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Filesystem with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Filesystem MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Filesystem connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Filesystem MCP to TypingMind?

Filesystem runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Filesystem MCP provide in TypingMind?

Filesystem exposes 14 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Filesystem MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Filesystem requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇