local-utils-mcp

aiforhumans/local-utils-mcp

3.2

If you are the rightful owner of local-utils-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Local Utilities MCP Server is a versatile tool built with FastMCP, offering a range of utility functions for text processing, file operations, and more.

Tools
  1. convert_temp

    Convert temperature between Celsius and Fahrenheit.

  2. read_file

    Read and return the contents of a text file.

  3. write_file

    Write content to a text file with automatic directory creation.

  4. list_directory

    List contents of a directory with file sizes.

  5. calculate_hash

    Calculate cryptographic hash of text or file content.

  6. base64_encode_decode

    Encode or decode text using Base64.

  7. get_datetime_info

    Get comprehensive current date and time information.

  8. text_stats

    Calculate detailed statistics for the given text.

  9. generate_password

    Generate a secure random password.

๐Ÿ› ๏ธ Local Utilities MCP Server

A comprehensive Model Context Protocol (MCP) server built with FastMCP that provides essential utility tools for text processing, file operations, system tasks, and more.

Python 3.8+ FastMCP License: MIT

๐ŸŒŸ Features

๐ŸŒก๏ธ Temperature Conversion

  • Convert between Celsius and Fahrenheit
  • High precision calculations with 2 decimal places

๐Ÿ“ File Operations

  • Read text files with full content display
  • Write content to files with automatic directory creation
  • List directory contents with file sizes and icons

๐Ÿ” Security & Hashing

  • Calculate MD5, SHA1, SHA256 hashes
  • Hash text strings or entire file contents
  • Base64 encoding and decoding

๐Ÿ“Š Text Analysis

  • Count words, characters, and lines
  • Calculate detailed text statistics
  • Average words per line and characters per word

๐Ÿ•’ Date & Time

  • Get current date and time information
  • Custom formatting with Python strftime
  • Detailed breakdown (year, month, day, weekday, etc.)

๐Ÿ”‘ Password Generation

  • Generate secure passwords with customizable options
  • Control length and character sets
  • Include/exclude uppercase, lowercase, numbers, symbols

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • Compatible MCP client (LM Studio, Claude Desktop, etc.)

Installation

  1. Clone the repository:

    git clone https://github.com/aiforhumans/local-utils-mcp.git
    cd local-utils-mcp
    
  2. Create and activate a virtual environment:

    python -m venv .venv
    
    # Windows
    .venv\Scripts\activate
    
    # macOS/Linux
    source .venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    

Running the Server

Start the MCP server:

python server.py

The server runs on stdio transport by default, which is compatible with most MCP clients.

๐Ÿ”ง Configuration

LM Studio Integration

Add this configuration to your LM Studio mcp.json file:

{
  "mcpServers": {
    "local-utils": {
      "command": "python",
      "args": ["path/to/your/server.py"],
      "env": {}
    }
  }
}

Claude Desktop Integration

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "local-utils": {
      "command": "python",
      "args": ["path/to/your/server.py"]
    }
  }
}

๐Ÿ“– API Reference

Available Tools

convert_temp(value: float, unit: str)

Convert temperature between Celsius and Fahrenheit.

Parameters:

  • value: Temperature value to convert
  • unit: "C" for Celsius to Fahrenheit, "F" for Fahrenheit to Celsius

Example:

convert_temp(25, "C") โ†’ "77.00 ยฐF"
convert_temp(77, "F") โ†’ "25.00 ยฐC"
read_file(file_path: str)

Read and return the contents of a text file.

Parameters:

  • file_path: Absolute or relative path to the file

Returns: File contents with path information

write_file(file_path: str, content: str)

Write content to a text file with automatic directory creation.

Parameters:

  • file_path: Path where to write the file
  • content: Text content to write
list_directory(directory_path: str = ".")

List contents of a directory with file sizes.

Parameters:

  • directory_path: Path to directory (defaults to current directory)

Returns: Formatted list with file/folder icons and sizes

calculate_hash(text_or_path: str, hash_type: str = "sha256", is_file: bool = False)

Calculate cryptographic hash of text or file content.

Parameters:

  • text_or_path: Text string or file path to hash
  • hash_type: "md5", "sha1", or "sha256" (default)
  • is_file: Set to true when hashing a file
base64_encode_decode(text: str, operation: str = "encode")

Encode or decode text using Base64.

Parameters:

  • text: Text to encode/decode
  • operation: "encode" or "decode"
get_datetime_info(format_string: str = "%Y-%m-%d %H:%M:%S")

Get comprehensive current date and time information.

Parameters:

  • format_string: Python strftime format string for custom formatting
text_stats(text: str)

Calculate detailed statistics for the given text.

Parameters:

  • text: Text to analyze

Returns: Lines, words, characters, and averages

generate_password(length: int = 12, include_uppercase: bool = True, include_lowercase: bool = True, include_numbers: bool = True, include_symbols: bool = False)

Generate a secure random password.

Parameters:

  • length: Password length (default: 12)
  • include_uppercase: Include A-Z (default: true)
  • include_lowercase: Include a-z (default: true)
  • include_numbers: Include 0-9 (default: true)
  • include_symbols: Include special characters (default: false)

๐Ÿงช Testing

Run the test suite to verify functionality:

python test.py

This will test all core functions and verify the server can be imported correctly.

๐Ÿ”จ Development

Adding New Tools

To extend the server with additional tools:

  1. Create a new function with the @mcp.tool() decorator:
@mcp.tool(
    description="Your tool description here"
)
async def your_new_tool(param1: str, param2: int = 10) -> str:
    """
    Your tool implementation.
    
    Args:
        param1: Description of parameter 1
        param2: Description of parameter 2 with default value
    
    Returns:
        String result of the tool operation
    """
    try:
        # Your tool logic here
        result = f"Processed {param1} with value {param2}"
        return result
    except Exception as e:
        return f"Error: {str(e)}"
  1. Add proper error handling and meaningful return messages
  2. Update the README with documentation for your new tool
  3. Test your tool to ensure it works correctly

Project Structure

local-utils-mcp/
โ”œโ”€โ”€ server.py              # Main MCP server
โ”œโ”€โ”€ requirements.txt       # Python dependencies  
โ”œโ”€โ”€ README.md             # This file
โ”œโ”€โ”€ .gitignore           # Git ignore rules
โ”œโ”€โ”€ test.py              # Test suite
โ””โ”€โ”€ .venv/               # Virtual environment (not in git)

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“‹ Requirements

  • Python 3.8+
  • FastMCP 2.9.0+
  • MCP 1.9.4+

See requirements.txt for complete dependency list.

๐Ÿ“„ License

This project is licensed under the MIT License - see the file for details.

๐Ÿ”— Related Projects

โญ Support

If you find this project helpful, please consider giving it a star on GitHub!


Made with โค๏ธ for the MCP community