Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2025 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Bsmi021 Mcp Filesystem Server

    Mirror of https://github.com/bsmi021/mcp-filesystem-server

    0 stars
    TypeScript
    Updated Dec 25, 2024

    Documentation

    Filesystem MCP Server

    A Model Context Protocol (MCP) server implementation providing file system operations, analysis, and manipulation capabilities through a standardized tool interface.

    Architecture

    The server is built on the MCP SDK and organized into distinct layers:

    mermaid
    graph TD
        A[MCP Server Layer] --> B[Tool Registry]
        B --> C[Operations Layer]
        C --> D[File System Operations]
        C --> E[Analysis Operations]
        C --> F[Stream Operations]

    Components

    • Server Layer: Handles MCP protocol communication and tool dispatch
    • Tool Registry: Manages tool registration and execution
    • Operations Layer: Implements core functionality
    • File System Interface: Provides safe file system access

    Installation

    1. Clone the repository:

    bash
    git clone 
    cd filesystem-server

    2. Install dependencies:

    bash
    npm install

    3. Build the server:

    bash
    npm run build

    4. Configure MCP settings (cline_mcp_settings.json):

    json
    {
      "mcpServers": {
        "filesystem": {
          "command": "node",
          "args": ["path/to/filesystem-server/build/index.js"]
        }
      }
    }

    Tool Reference

    Directory Operations

    list_directory

    Lists directory contents with metadata.

    typescript
    interface ListDirectoryParams {
        path: string;       // Directory path
        recursive?: boolean; // List recursively (default: false)
    }
    
    interface ListDirectoryResult {
        entries: {
            name: string;
            path: string;
            isDirectory: boolean;
            size: number;
            created: string;
            modified: string;
            accessed: string;
            mode: string;
        }[];
    }

    create_directory

    Creates a new directory.

    typescript
    interface CreateDirectoryParams {
        path: string;       // Directory path
        recursive?: boolean; // Create parent directories (default: true)
    }

    File Operations

    read_file

    Reads file content with encoding support.

    typescript
    interface ReadFileParams {
        path: string;     // File path
        encoding?: string; // File encoding (default: 'utf8')
    }

    write_file

    Writes content to a file.

    typescript
    interface WriteFileParams {
        path: string;     // File path
        content: string;  // Content to write
        encoding?: string; // File encoding (default: 'utf8')
    }

    append_file

    Appends content to a file.

    typescript
    interface AppendFileParams {
        path: string;     // File path
        content: string;  // Content to append
        encoding?: string; // File encoding (default: 'utf8')
    }

    Analysis Operations

    analyze_text

    Analyzes text file properties.

    typescript
    interface AnalyzeTextParams {
        path: string; // File path
    }
    
    interface AnalyzeTextResult {
        lineCount: number;
        wordCount: number;
        charCount: number;
        encoding: string;
        mimeType: string;
    }

    calculate_hash

    Calculates file hash using specified algorithm.

    typescript
    interface CalculateHashParams {
        path: string;           // File path
        algorithm?: 'md5' | 'sha1' | 'sha256' | 'sha512'; // Hash algorithm
    }
    
    interface CalculateHashResult {
        hash: string;
        algorithm: string;
    }

    find_duplicates

    Identifies duplicate files in a directory.

    typescript
    interface FindDuplicatesParams {
        path: string; // Directory path
    }
    
    interface FindDuplicatesResult {
        duplicates: {
            hash: string;
            size: number;
            files: string[];
        }[];
    }

    Compression Operations

    create_zip

    Creates a ZIP archive.

    typescript
    interface CreateZipParams {
        files: string[];  // Files to include
        output: string;   // Output ZIP path
    }

    extract_zip

    Extracts a ZIP archive.

    typescript
    interface ExtractZipParams {
        path: string;    // ZIP file path
        output: string;  // Output directory
    }

    Error Handling

    The server uses standard MCP error codes:

    typescript
    enum ErrorCode {
        ParseError = -32700,
        InvalidRequest = -32600,
        MethodNotFound = -32601,
        InvalidParams = -32602,
        InternalError = -32603
    }

    Error responses include:

    • Error code
    • Human-readable message
    • Additional context when available

    Example error:

    json
    {
        "code": -32602,
        "message": "File not found: /path/to/file.txt"
    }

    Development

    Project Structure

    code
    src/
    ├── operations/     # Core operations implementation
    ├── tools/         # MCP tool definitions and handlers
    ├── __tests__/     # Test suites
    ├── index.ts       # Entry point
    ├── server.ts      # MCP server setup
    ├── types.ts       # Type definitions
    └── utils.ts       # Utility functions

    Running Tests

    Run the test suite:

    bash
    npm test

    Run with coverage:

    bash
    npm run test:coverage

    Development Mode

    Run in watch mode:

    bash
    npm run watch

    Code Quality

    Lint the codebase:

    bash
    npm run lint

    Type check:

    bash
    npm run type-check

    Dependencies

    Core dependencies:

    • @modelcontextprotocol/sdk: MCP server implementation
    • file-type: File type detection
    • mime-types: MIME type lookup
    • crypto-js: File hashing
    • archiver: ZIP creation
    • extract-zip: ZIP extraction
    • iconv-lite: Text encoding
    • chardet: Encoding detection

    Development dependencies:

    • typescript: Type system
    • jest: Testing
    • eslint: Linting
    • prettier: Formatting
    • ts-node: TypeScript execution
    • nodemon: Development server

    Contributing

    1. Fork the repository

    2. Create your feature branch

    3. Write tests for new features

    4. Ensure all tests pass

    5. Submit a pull request

    License

    MIT

    Similar MCP

    Based on tags & features

    • MC

      Mcp Wave

      TypeScript00
    • GL

      Glm Mcp Server

      TypeScript·
      3
    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcp Wave

      TypeScript00
    • GL

      Glm Mcp Server

      TypeScript·
      3
    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k