MCP Custom Tools Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Custom Tools Server what's the current time in Tokyo?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Simple MCP Server
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
# 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 --helpUso
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-serverIntegració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
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.
# ❌ Error común
mcp-server
# Error: 'mcp-server' no se reconoce como comando
# ✅ Solución
uv run mcp-serverSi 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:
# 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
└── .gitignoreConfiguració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_toolsAñadir Nuevas Herramientas
Crear nueva función de herramienta:
def my_new_tool(args: Dict[str, Any]) -> str:
"""Mi nueva herramienta."""
# Implementación
return "resultado"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"]
}
}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
Available Tools
31 toolsanalyze_textC
Análisis completo de texto con estadísticas y patrones
Inputs: text (required).
build_urlB
Construir URL a partir de componentes
Inputs: host (required), scheme, port, path, +2 more.
calculate_ageC
Calcular edad basada en fecha de nacimiento
Inputs: birth_date (required).
calculate_file_hashC
Calcular hash de un archivo
Inputs: file_path (required), algorithm.
count_wordsB
Contar palabras, líneas y caracteres en un texto
Inputs: text (required).
days_between_datesC
Calcular días entre dos fechas
Inputs: start_date (required), end_date (required).
encode_decodeC
Codificar/decodificar texto en diferentes formatos
Inputs: text (required), operation, format.
extract_domainC
Extraer información detallada del dominio de una URL
Inputs: url (required).
extract_emailsC
Extraer direcciones de email de un texto
Inputs: text (required).
extract_urlsC
Extraer URLs de un texto
Inputs: text (required).
find_replaceC
Buscar y reemplazar texto con soporte para regex
Inputs: text (required), search (required), replace, use_regex, +1 more.
format_timestampC
Convertir timestamp Unix a fecha legible
Inputs: timestamp (required), format.
generate_hashC
Generar hash de un texto
Inputs: text (required), algorithm.
get_calendar_monthC
Mostrar calendario de un mes específico
Inputs: year, month.
get_cpu_infoB
Obtener información detallada de la CPU
Inputs: no named parameters.
get_current_timeB
Obtener la fecha y hora actual con formato personalizable
Inputs: timezone, format.
get_disk_infoB
Obtener información de discos y particiones
Inputs: no named parameters.
get_env_varsC
Obtener variables de entorno del sistema
Inputs: filter.
get_file_infoC
Obtener información detallada de un archivo o directorio
Inputs: file_path (required).
get_memory_infoB
Obtener información de memoria RAM y swap
Inputs: no named parameters.
get_network_infoB
Obtener información de interfaces de red
Inputs: no named parameters.
get_processesB
Listar procesos del sistema con información de uso
Inputs: limit, sort_by.
get_system_infoB
Obtener información general del sistema operativo
Inputs: no named parameters.
http_requestC
Realizar petición HTTP a una URL
Inputs: url (required), method, headers, data, +1 more.
list_directoryC
Listar el contenido de un directorio
Inputs: dir_path, show_hidden.
parse_urlC
Parsear y analizar componentes de una URL
Inputs: url (required).
read_fileC
Leer el contenido completo de un archivo
Inputs: file_path (required), encoding.
search_filesC
Buscar archivos por patrón en un directorio
Inputs: pattern (required), dir_path, recursive.
split_textC
Dividir texto por diferentes criterios
Inputs: text (required), delimiter, max_length.
url_encode_decodeB
Codificar/decodificar componentes de URL
Inputs: text (required), operation, component.
validate_urlC
Validar formato y accesibilidad de una URL
Inputs: url (required), check_accessibility.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 31 tools
Most tools have distinct purposes, but there are a few potential overlaps: 'build_url' and 'parse_url' both handle URL components, 'encode_decode' and 'url_encode_decode' both handle encoding/decoding, and 'generate_hash' and 'calculate_file_hash' both handle hashing. However, the descriptions clarify their specific contexts (text vs. file vs. URL), so misselection is unlikely.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., 'analyze_text', 'calculate_age', 'get_system_info'). There are no deviations in naming conventions, making the set predictable and readable.
With 31 tools, the count is borderline high for a general-purpose utility server. While many tools are useful, the set feels heavy and could be streamlined (e.g., merging related tools like 'encode_decode' and 'url_encode_decode'). It's not extreme, but it approaches the upper limit of reasonable scope.
The server covers a broad range of utility functions (text analysis, system info, file operations, URL handling, etc.) with good coverage in each area. Minor gaps exist, such as no direct tool for writing files or more advanced text processing, but agents can work around these with the available tools.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA unified MCP server with composable tools for GitHub operations, file management, shell execution, kanban boards, Discord messaging, and package management. Features role-based security, HTTP/stdio transports, and a web-based development UI.GPL 3.0
- AlicenseNot gradedqualityDmaintenanceA self-contained, dependency-free MCP server that provides utility tools for time, date, mathematical calculations, and shell command execution. It supports remote connectivity through SSE and is designed for easy deployment via Docker.GPL 3.0
- FlicenseAqualityDmaintenanceA general-purpose MCP server that provides utility tools for echo, date/time, and file operations within Claude Code and Claude Desktop. It functions as an extensible framework designed to help developers easily build and register custom Python-based tools.11-

onion-mcp-serverofficial
AlicenseAqualityDmaintenanceA feature-rich MCP server offering 30 tools across AI, code, text, data, web, and system categories, enabling tasks like chat, translation, code review, web scraping, and text processing.30MIT