File Operations MCP Server

File Operations MCP Server

Provides tools for common file processing operations including reading files, listing directories, searching across files, getting file info, and counting lines with built-in security features like path traversal protection.

Category
Visit Server

README

File Operations MCP Server

A Model Context Protocol (MCP) server that provides tools for common file processing operations. Built with FastMCP and ready for deployment on Smithery.

Features

This server provides the following file operation tools:

  • read_file: Read and return the contents of text files
  • list_directory: List files and directories with optional glob pattern filtering
  • search_in_files: Search for text across multiple files with pattern matching
  • get_file_info: Get detailed information about files (size, type, permissions, etc.)
  • count_lines: Count the number of lines in text files

Configuration

The server supports session-specific configuration:

  • base_path: Base directory for file operations (default: current directory)
  • max_file_size: Maximum file size in bytes to process (default: 1MB)

Security Features

  • Path traversal protection (prevents accessing files outside base_path)
  • File size limits to prevent memory issues
  • Binary file detection and handling
  • Error handling for permissions and encoding issues

Local Development

Prerequisites

  • Python 3.12 or higher
  • uv (recommended), poetry, or pip package manager

Setup

  1. Install dependencies:

    # Using uv (recommended)
    uv sync
    
    # Using poetry
    poetry install
    
    # Using pip
    pip install -e .
    
  2. Run the development server with interactive playground:

    # Using uv
    uv run playground
    
    # Using poetry
    poetry run playground
    
  3. Or run the server without playground:

    # Using uv
    uv run dev
    
    # Using poetry
    poetry run dev
    

The playground provides an interactive interface to test all server tools in real-time.

Deployment to Smithery

Prerequisites

  • GitHub account
  • Smithery account (connect at smithery.ai)

Steps

  1. Initialize Git repository (if not already done):

    cd fileops-server
    git init
    git add .
    git commit -m "Initial commit: File operations MCP server"
    
  2. Create GitHub repository:

    • Go to github.com and create a new repository
    • Follow GitHub's instructions to push your local repository:
    git remote add origin https://github.com/YOUR_USERNAME/fileops-server.git
    git branch -M main
    git push -u origin main
    
  3. Connect to Smithery:

    • Visit smithery.ai
    • Connect your GitHub account
    • Find your fileops-server repository
  4. Deploy:

    • Navigate to the Deployments tab on your server page
    • Click "Deploy" to build and host your server
    • Smithery will automatically containerize and deploy your server

Post-Deployment

Once deployed, you can:

  • Share your server with others
  • Configure per-user settings (base_path, max_file_size)
  • Monitor usage and logs through the Smithery dashboard
  • Update the server by pushing changes to GitHub

Project Structure

fileops-server/
├── smithery.yaml              # Smithery runtime configuration
├── pyproject.toml            # Python project configuration
├── README.md                 # This file
└── src/
    └── fileops_server/
        ├── __init__.py       # Package initialization
        └── server.py         # MCP server implementation

Usage Examples

Read a File

# Tool: read_file
# Parameters: file_path="example.txt"
# Returns: Contents of example.txt

List Directory

# Tool: list_directory
# Parameters: directory_path=".", pattern="*.py"
# Returns: List of all Python files in the directory

Search in Files

# Tool: search_in_files
# Parameters: search_term="TODO", directory_path=".", file_pattern="*.py"
# Returns: All lines containing "TODO" in Python files

Get File Info

# Tool: get_file_info
# Parameters: file_path="example.txt"
# Returns: Detailed file information (size, type, permissions, etc.)

Count Lines

# Tool: count_lines
# Parameters: file_path="example.txt"
# Returns: Number of lines in the file

License

MIT License - feel free to use and modify as needed.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured