Labsco
aiforhumans logo

Local Utilities

from aiforhumans

Provides essential utility tools for text processing, file operations, and system tasks.

๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

๐Ÿ› ๏ธ 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

๐Ÿ“– 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

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE 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