Skip to main content
Glama

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 actual

  • format_timestamp - Formatear timestamp a formato legible

  • calculate_age - Calcular edad a partir de fecha de nacimiento

  • days_between - Calcular días entre dos fechas

  • month_calendar - Generar calendario mensual

📁 Manejo de Archivos (file_tools)

  • read_file - Leer contenido de archivo (async/sync)

  • file_info - Obtener información detallada de archivo

  • list_directory - Listar contenido de directorio

  • calculate_hash - Calcular hash MD5/SHA256 de archivo

  • search_files - Buscar archivos por patrón

💻 Sistema (system_tools)

  • system_info - Información general del sistema

  • cpu_info - Información detallada de CPU

  • memory_info - Información de memoria RAM

  • disk_info - Información de discos y almacenamiento

  • network_info - Información de interfaces de red

  • process_list - Lista de procesos en ejecución

  • environment_vars - Variables de entorno del sistema

📝 Procesamiento de Texto (text_tools)

  • word_count - Contar palabras, líneas y caracteres

  • search_replace - Búsqueda y reemplazo con regex

  • extract_emails - Extraer direcciones de email

  • extract_urls - Extraer URLs de texto

  • text_analysis - Análisis detallado de texto

  • encode_decode - Codificación/decodificación de texto

  • generate_hash - Generar hash de texto

  • split_text - Dividir texto en chunks

🌐 Web (web_tools)

  • http_request - Realizar peticiones HTTP

  • parse_url - Parsear y analizar URLs

  • build_url - Construir URLs desde componentes

  • url_encode_decode - Codificar/decodificar URLs

  • validate_url - Validar formato y accesibilidad

  • extract_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

# Clonar el repositorio git clone <repository-url> cd mcp-custom-tools # Instalar uv (si no lo tienes) curl -LsSf https://astral.sh/uv/install.sh | sh # Instalar dependencias y crear entorno virtual automáticamente uv sync # Instalar dependencias de desarrollo uv sync --group dev # Verificar instalación uv run mcp-server --help

Uso

Ejecutar el servidor

# Método recomendado - usando el script instalado uv run mcp-server # Con nivel de logging específico uv run mcp-server --log-level DEBUG # Con configuración personalizada uv run mcp-server --log-level INFO --name "Mi Servidor MCP" --version "1.0.0" # Método alternativo - usando módulo Python uv run python -m mcp_custom_tools.server # Con configuración personalizada usando módulo uv run python -m mcp_custom_tools.server --log-level INFO --name "Custom Server"

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:

# ✅ Correcto uv run mcp-server # ❌ Error - No funciona mcp-server

Integración con clientes MCP

El servidor usa comunicación stdio y es compatible con cualquier cliente MCP estándar.

Configuración JSON:

{ "mcpServers": { "mcp-custom-tools": { "command": "uv", "args": [ "run", "mcp-server", "--log-level", "INFO" ], "cwd": "/path/to/mcp-custom-tools" } } }

Ejemplos de rutas por sistema operativo:

// Windows "cwd": "C:\\Users\\TuUsuario\\mcp-custom-tools" // macOS/Linux "cwd": "/home/tuusuario/mcp-custom-tools" // o "cwd": "~/mcp-custom-tools"

Configuración para otros clientes MCP

Para otros clientes que soporten MCP, usar la siguiente configuración base:

{ "name": "mcp-custom-tools", "command": ["uv", "run", "mcp-server"], "args": ["--log-level", "INFO"], "cwd": "/path/to/mcp-custom-tools" }

Verificar la configuración

  1. Reinicia Claude Desktop después de modificar la configuración

  2. Abre una nueva conversación en Claude

  3. Verifica las herramientas escribiendo: "¿Qué herramientas tienes disponibles?"

  4. 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.

# ❌ Error común mcp-server # Error: 'mcp-server' no se reconoce como comando # ✅ Solución uv run mcp-server

Si el servidor no se conecta:

  1. Verificar que "cwd" apunte al directorio correcto del proyecto

  2. Verificar uv: Comprobar que uv esté instalado: uv --version

  3. Sincronizar proyecto: Ejecutar uv sync en el directorio del proyecto

  4. Revisar logs: Verificar logs en Claude Desktop (Ver > Herramientas de desarrollador)

  5. Probar manualmente: uv run mcp-server --log-level DEBUG desde el directorio del proyecto

Logs y debugging:

# Probar el servidor directamente uv run mcp-server --log-level DEBUG # Verificar herramientas disponibles uv run python -c "from mcp_custom_tools.tools import get_available_tools; print(list(get_available_tools().keys()))" # Verificar que uv funciona correctamente uv run python --version # Verificar instalación del paquete uv run python -c "import mcp_custom_tools; print('Instalación OK')"

Desarrollo

Estructura del Proyecto

mcp-custom-tools/ ├── src/ │ └── mcp_custom_tools/ │ ├── __init__.py │ ├── server.py │ └── tools/ │ ├── __init__.py │ ├── datetime_tools.py │ ├── file_tools.py │ ├── system_tools.py │ ├── text_tools.py │ └── web_tools.py ├── pyproject.toml ├── README.md └── .gitignore

Configuración de Desarrollo

# Instalar dependencias de desarrollo uv sync --group dev # Ejecutar linting black src/ isort src/ flake8 src/ mypy src/ # Ejecutar tests pytest # Ejecutar tests con cobertura pytest --cov=mcp_custom_tools

Añadir Nuevas Herramientas

  1. Crear nueva función de herramienta:

def my_new_tool(args: Dict[str, Any]) -> str: """Mi nueva herramienta.""" # Implementación return "resultado"
  1. Registrar en función de registro:

def register_my_tools(tools: Dict[str, Dict[str, Any]]) -> None: tools["my_tool"] = { "description": "Descripción de mi herramienta", "handler": my_new_tool, "inputSchema": { "type": "object", "properties": { "param": {"type": "string", "description": "Parámetro"} }, "required": ["param"] } }
  1. Importar y registrar en tools/__init__.py

Dependencias

Principales

  • mcp - Protocolo MCP core

  • httpx - Peticiones HTTP async

  • aiofiles - Operaciones de archivo async

  • psutil - Información del sistema

  • click - CLI framework

Desarrollo

  • black - Formateo de código

  • isort - Ordenamiento de imports

  • mypy - Type checking

  • flake8 - Linting

  • pytest - Testing framework

Licencia

MIT License - ver archivo LICENSE para detalles.

Contribuir

  1. Fork el proyecto

  2. Crear rama de feature (git checkout -b feature/AmazingFeature)

  3. Commit cambios (git commit -m 'Add some AmazingFeature')

  4. Push a la rama (git push origin feature/AmazingFeature)

  5. 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SergiFuster/mcp-custom-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server