Local Utilities

Proporciona herramientas de utilidad esenciales para el procesamiento de texto, operaciones con archivos y tareas del sistema.

Documentación

🛠️ Servidor MCP de Utilidades Locales

Un servidor integral de Protocolo de Contexto de Modelo (MCP) construido con FastMCP que proporciona herramientas de utilidad esenciales para procesamiento de texto, operaciones de archivos, tareas del sistema y más.

Python 3.8+ FastMCP License: MIT

🌟 Características

🌡️ Conversión de Temperatura

  • Convertir entre Celsius y Fahrenheit
  • Cálculos de alta precisión con 2 decimales

📁 Operaciones de Archivos

  • Leer archivos de texto con visualización completa del contenido
  • Escribir contenido en archivos con creación automática de directorios
  • Listar contenidos de directorios con tamaños de archivo e iconos

🔐 Seguridad y Hash

  • Calcular hashes MD5, SHA1, SHA256
  • Hash de cadenas de texto o contenidos completos de archivos
  • Codificación y decodificación Base64

📊 Análisis de Texto

  • Contar palabras, caracteres y líneas
  • Calcular estadísticas detalladas de texto
  • Promedio de palabras por línea y caracteres por palabra

🕒 Fecha y Hora

  • Obtener información actual de fecha y hora
  • Formato personalizado con Python strftime
  • Desglose detallado (año, mes, día, día de la semana, etc.)

🔑 Generación de Contraseñas

  • Generar contraseñas seguras con opciones personalizables
  • Controlar longitud y conjuntos de caracteres
  • Incluir/excluir mayúsculas, minúsculas, números, símbolos

🚀 Inicio Rápido

Requisitos Previos

  • Python 3.8 o superior
  • Cliente MCP compatible (LM Studio, Claude Desktop, etc.)

Instalación

  1. Clonar el repositorio:

    git clone https://github.com/aiforhumans/local-utils-mcp.git
    cd local-utils-mcp
    
  2. Crear y activar un entorno virtual:

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

    pip install -r requirements.txt
    

Ejecutar el Servidor

Iniciar el servidor MCP:

python server.py

El servidor se ejecuta en el transporte stdio por defecto, que es compatible con la mayoría de los clientes MCP.

🔧 Configuración

Integración con LM Studio

Agregue esta configuración a su archivo mcp.json de LM Studio:

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

Integración con Claude Desktop

Agregue a su configuración de Claude Desktop:

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

📖 Referencia de la API

Herramientas Disponibles

convert_temp(value: float, unit: str)

Convertir temperatura entre Celsius y Fahrenheit.

Parámetros:

  • value: Valor de temperatura a convertir
  • unit: "C" para Celsius a Fahrenheit, "F" para Fahrenheit a Celsius

Ejemplo:

convert_temp(25, "C") → "77.00 °F"
convert_temp(77, "F") → "25.00 °C"

read_file(file_path: str)

Leer y devolver el contenido de un archivo de texto.

Parámetros:

  • file_path: Ruta absoluta o relativa al archivo

Devuelve: Contenido del archivo con información de la ruta

write_file(file_path: str, content: str)

Escribir contenido en un archivo de texto con creación automática de directorios.

Parámetros:

  • file_path: Ruta donde escribir el archivo
  • content: Contenido de texto a escribir

list_directory(directory_path: str = ".")

Listar contenidos de un directorio con tamaños de archivo.

Parámetros:

  • directory_path: Ruta al directorio (por defecto, el directorio actual)

Devuelve: Lista formateada con iconos de archivos/carpetas y tamaños

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

Calcular hash criptográfico de texto o contenido de archivo.

Parámetros:

  • text_or_path: Cadena de texto o ruta de archivo para hash
  • hash_type: "md5", "sha1" o "sha256" (por defecto)
  • is_file: Establecer a true al hacer hash de un archivo

base64_encode_decode(text: str, operation: str = "encode")

Codificar o decodificar texto usando Base64.

Parámetros:

  • text: Texto a codificar/decodificar
  • operation: "encode" o "decode"

get_datetime_info(format_string: str = "%Y-%m-%d %H:%M:%S")

Obtener información completa de fecha y hora actual.

Parámetros:

  • format_string: Cadena de formato Python strftime para formato personalizado

text_stats(text: str)

Calcular estadísticas detalladas para el texto dado.

Parámetros:

  • text: Texto a analizar

Devuelve: Líneas, palabras, caracteres y promedios

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

Generar una contraseña aleatoria segura.

Parámetros:

  • length: Longitud de la contraseña (por defecto: 12)
  • include_uppercase: Incluir A-Z (por defecto: true)
  • include_lowercase: Incluir a-z (por defecto: true)
  • include_numbers: Incluir 0-9 (por defecto: true)
  • include_symbols: Incluir caracteres especiales (por defecto: false)

🧪 Pruebas

Ejecute el conjunto de pruebas para verificar la funcionalidad:

python test.py

Esto probará todas las funciones principales y verificará que el servidor se pueda importar correctamente.

🔨 Desarrollo

Agregar Nuevas Herramientas

Para extender el servidor con herramientas adicionales:

  1. Crear una nueva función con el decorador @mcp.tool():
@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. Agregar manejo de errores adecuado y mensajes de retorno significativos
  2. Actualizar el README con documentación para su nueva herramienta
  3. Probar su herramienta para asegurarse de que funcione correctamente

Estructura del Proyecto

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)

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request). Para cambios importantes, abra primero un issue para discutir lo que le gustaría cambiar.

  1. Haga un fork del repositorio
  2. Cree su rama de características (git checkout -b feature/AmazingFeature)
  3. Haga commit de sus cambios (git commit -m 'Add some AmazingFeature')
  4. Haga push a la rama (git push origin feature/AmazingFeature)
  5. Abra una Solicitud de Extracción

📋 Requisitos

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

Consulte requirements.txt para la lista completa de dependencias.

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.

🔗 Proyectos Relacionados

⭐ Soporte

Si encuentra útil este proyecto, ¡considere darle una estrella en GitHub!


Hecho con ❤️ para la comunidad MCP