MCP Custom Tools Server
Un servidor MCP (Model Context Protocol) personalizado con un conjunto completo de herramientas para fecha/hora, manejo de archivos, información del sistema, procesamiento de texto y operaciones web.
Características
✅ Servidor MCP completo implementado desde cero
✅ Gestión moderna de dependencias con
pyproject.toml✅ 30+ herramientas personalizadas organizadas por categorías
✅ Comunicación asíncrona con soporte para stdio
✅ Logging configurable y manejo de errores robusto
✅ CLI integrado con opciones flexibles
Herramientas Disponibles
🕒 Fecha y Hora (datetime_tools)
current_time- Obtener fecha y hora actualformat_timestamp- Formatear timestamp a formato legiblecalculate_age- Calcular edad a partir de fecha de nacimientodays_between- Calcular días entre dos fechasmonth_calendar- Generar calendario mensual
📁 Manejo de Archivos (file_tools)
read_file- Leer contenido de archivo (async/sync)file_info- Obtener información detallada de archivolist_directory- Listar contenido de directoriocalculate_hash- Calcular hash MD5/SHA256 de archivosearch_files- Buscar archivos por patrón
💻 Sistema (system_tools)
system_info- Información general del sistemacpu_info- Información detallada de CPUmemory_info- Información de memoria RAMdisk_info- Información de discos y almacenamientonetwork_info- Información de interfaces de redprocess_list- Lista de procesos en ejecuciónenvironment_vars- Variables de entorno del sistema
📝 Procesamiento de Texto (text_tools)
word_count- Contar palabras, líneas y caracteressearch_replace- Búsqueda y reemplazo con regexextract_emails- Extraer direcciones de emailextract_urls- Extraer URLs de textotext_analysis- Análisis detallado de textoencode_decode- Codificación/decodificación de textogenerate_hash- Generar hash de textosplit_text- Dividir texto en chunks
🌐 Web (web_tools)
http_request- Realizar peticiones HTTPparse_url- Parsear y analizar URLsbuild_url- Construir URLs desde componentesurl_encode_decode- Codificar/decodificar URLsvalidate_url- Validar formato y accesibilidadextract_domain- Extraer información de dominio
Instalación
Prerrequisitos
Python 3.10+
uv (gestor de paquetes y entornos virtuales moderno)
Instalación desde código fuente
Uso
Ejecutar el servidor
Opciones de CLI
--log-level- Nivel de logging (DEBUG, INFO, WARNING, ERROR)--name- Nombre del servidor MCP--version- Versión del servidor--help- Mostrar ayuda
⚠️ Importante: Usar siempre uv run
En Windows, los scripts instalados con uv no están disponibles globalmente en PATH. Siempre usa:
Integración con clientes MCP
El servidor usa comunicación stdio y es compatible con cualquier cliente MCP estándar.
Configuración JSON:
Ejemplos de rutas por sistema operativo:
Configuración para otros clientes MCP
Para otros clientes que soporten MCP, usar la siguiente configuración base:
Verificar la configuración
Reinicia Claude Desktop después de modificar la configuración
Abre una nueva conversación en Claude
Verifica las herramientas escribiendo: "¿Qué herramientas tienes disponibles?"
Prueba una herramienta como: "¿Qué hora es ahora?"
Solución de problemas
Si el comando 'mcp-server' no se reconoce:
Este es el error más común en Windows. El script se instala en el entorno virtual pero no está en PATH global.
Si el servidor no se conecta:
Verificar que
"cwd"apunte al directorio correcto del proyectoVerificar uv: Comprobar que uv esté instalado:
uv --versionSincronizar proyecto: Ejecutar
uv syncen el directorio del proyectoRevisar logs: Verificar logs en Claude Desktop (Ver > Herramientas de desarrollador)
Probar manualmente:
uv run mcp-server --log-level DEBUGdesde el directorio del proyecto
Logs y debugging:
Desarrollo
Estructura del Proyecto
Configuración de Desarrollo
Añadir Nuevas Herramientas
Crear nueva función de herramienta:
Registrar en función de registro:
Importar y registrar en
tools/__init__.py
Dependencias
Principales
mcp- Protocolo MCP corehttpx- Peticiones HTTP asyncaiofiles- Operaciones de archivo asyncpsutil- Información del sistemaclick- CLI framework
Desarrollo
black- Formateo de códigoisort- Ordenamiento de importsmypy- Type checkingflake8- Lintingpytest- Testing framework
Licencia
MIT License - ver archivo LICENSE para detalles.
Contribuir
Fork el proyecto
Crear rama de feature (
git checkout -b feature/AmazingFeature)Commit cambios (
git commit -m 'Add some AmazingFeature')Push a la rama (
git push origin feature/AmazingFeature)Abrir Pull Request
Soporte
Para reportar bugs o solicitar features, crear un issue en GitHub.
Changelog
v1.0.0
Implementación inicial del servidor MCP
30+ herramientas personalizadas
Gestión con pyproject.toml
CLI integrado
Documentación completa