mcp file tool

Local 2025-09-01 00:11:51 0

Enables AI models to perform file system operations (reading, creating, and listing files) on a local file system through a standardized Model Context Protocol interface.


A Model Context Protocol (MCP) server implementation providing file system operations through a standardized interface.

Overview

The MCP File Server enables AI models to perform file operations on the local file system through a standardized API. It's built using the Model Context Protocol SDK and provides tools for reading, creating, and listing files.

Features

  • Create Files: Create new files with specified content
  • Read Files: Read the contents of existing files
  • List Directory Contents: List files and directories with detailed information
  • Performance Monitoring: Built-in Sentry integration for error tracking and performance monitoring

Installation

npm install

Usage

Start the MCP File Server:

node src/index.js

The server communicates through stdin/stdout using the MCP protocol.

Available Tools

createfile

Creates a new file at the specified path with the provided content.

Parameters: - filePath: Path where the file should be created - content: Content to write to the file

Returns: - Success message with file path and size information

readfile

Reads the content of a file at the specified path.

Parameters: - filePath: Path to the file to read

Returns: - The content of the file

listfiles

Lists files and directories at the specified path.

Parameters: - path: Directory path to list contents from

Returns: - A markdown table containing file names, sizes, and types

Environment Variables

  • SENTRY_DSN: Sentry Data Source Name for error tracking (optional)

Dependencies

  • @modelcontextprotocol/sdk: The MCP SDK package
  • zod: Schema validation
  • @sentry/node: Error tracking and performance monitoring

Examples

Examples of how to call these tools through the MCP protocol:

{
  "name": "createfile",
  "params": {
    "filePath": "example/test.txt",
    "content": "Hello, world!"
  }
}
{
  "name": "readfile",
  "params": {
    "filePath": "example/test.txt"
  }
}
{
  "name": "listfiles",
  "params": {
    "path": "example"
  }
}
[
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "content": {
          "description": "Content to write to the file",
          "type": "string"
        },
        "filePath": {
          "description": "Path where the file should be created",
          "type": "string"
        }
      },
      "required": [
        "filePath",
        "content"
      ],
      "type": "object"
    },
    "name": "createfile"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "filePath": {
          "description": "Path to the file to read",
          "type": "string"
        }
      },
      "required": [
        "filePath"
      ],
      "type": "object"
    },
    "name": "readfile"
  },
  {
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "path": {
          "type": "string"
        }
      },
      "required": [
        "path"
      ],
      "type": "object"
    },
    "name": "listfiles"
  }
]