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.
🌟 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
-
Clonar el repositorio:
git clone https://github.com/aiforhumans/local-utils-mcp.git cd local-utils-mcp -
Crear y activar un entorno virtual:
python -m venv .venv # Windows .venv\Scripts\activate # macOS/Linux source .venv/bin/activate -
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 convertirunit: "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 archivocontent: 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 hashhash_type: "md5", "sha1" o "sha256" (por defecto)is_file: Establecer atrueal 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/decodificaroperation: "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:
- 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)}"
- Agregar manejo de errores adecuado y mensajes de retorno significativos
- Actualizar el README con documentación para su nueva herramienta
- 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.
- Haga un fork del repositorio
- Cree su rama de características (
git checkout -b feature/AmazingFeature) - Haga commit de sus cambios (
git commit -m 'Add some AmazingFeature') - Haga push a la rama (
git push origin feature/AmazingFeature) - 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
- FastMCP - El framework FastMCP utilizado para construir este servidor
- Model Context Protocol - Documentación oficial de MCP
- LM Studio - Cliente MCP popular para modelos de IA locales
⭐ Soporte
Si encuentra útil este proyecto, ¡considere darle una estrella en GitHub!
Hecho con ❤️ para la comunidad MCP