Skip to main content
Glama
codyde
by codyde
README.md
# MCP File Server

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](https://github.com/ModelContextProtocol/mcp) 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

```bash
npm install
```

## Usage

Start the MCP File Server:

```bash
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:

```json
{
  "name": "createfile",
  "params": {
    "filePath": "example/test.txt",
    "content": "Hello, world!"
  }
}
```

```json
{
  "name": "readfile",
  "params": {
    "filePath": "example/test.txt"
  }
}
```

```json
{
  "name": "listfiles",
  "params": {
    "path": "example"
  }
}
``` 

TDQS

D1.8/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have clearly distinct purposes: createfile for creating files, listfiles for listing files, and readfile for reading files. There is no overlap or ambiguity between these operations, making it easy for an agent to select the right tool for each task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (createfile, listfiles, readfile) with no deviations. The naming is uniform and predictable, using lowercase letters and clear action-object combinations throughout.

Tool Count3/5

With only three tools, the server feels thin for a file management domain, as it lacks essential operations like update, delete, or write to files. While the count is minimal, it covers basic CRUD aspects but leaves notable gaps in functionality.

Completeness2/5

The tool set is significantly incomplete for file management, missing critical operations such as updatefile, deletefile, and writefile. This creates dead ends for agents trying to perform common file workflows, leading to potential failures in tasks requiring modification or deletion.

Maintenance

ActivityInactive
ResponsivenessNo issues