MCP API Server
Servidor MCP (Model Context Protocol) con arquitectura modular que permite conectarse a APIs externas.
Estructura del Proyecto
src/
├── config/ # Configuración
│ ├── api.ts # Configuración de API
│ └── env.ts # Variables de entorno
├── services/ # Servicios de negocio
│ ├── httpClient.ts # Cliente HTTP base
│ ├── userService.ts # Servicio de usuarios
│ ├── weatherService.ts # Servicio de clima
│ └── companyService.ts # Servicio de empresas
├── tools/ # Herramientas MCP
│ ├── weatherTool.ts # Herramienta de clima
│ ├── userCreateTool.ts # Crear usuarios
│ ├── userListTool.ts # Listar usuarios
│ ├── companyCreateTool.ts # Crear empresas
│ └── companyListTool.ts # Listar empresas
├── types/ # Tipos TypeScript
│ ├── api.ts # Tipos base de API
│ └── company.ts # Tipos de empresas
└── main.ts # Punto de entrada
Características
- ✅ Arquitectura modular y escalable
- ✅ Cliente HTTP reutilizable
- ✅ Validación con Zod
- ✅ Tipos TypeScript completos
- ✅ Manejo de errores robusto
- ✅ Configuración por variables de entorno
Herramientas Disponibles
Clima
obtener-clima: Obtiene información del clima
Usuarios
crear-usuario: Crea un nuevo usuariolistar-usuarios: Lista todos los usuarios
Empresas (API Externa)
crear-empresa: Crea una nueva empresa vía API- Tamaños permitidos:
small,medium,large
- Tamaños permitidos:
listar-empresas: Lista empresas desde la API
Scripts Disponibles
# Construir el proyecto
npm run build
# Ejecutar en modo desarrollo
npm run dev
# Ejecutar el servidor
npm start
# Abrir inspector MCP
npm run inspector
Variables de Entorno
API_BASE_URL=https://api.ejemplo.com # URL base de la API
API_TIMEOUT=30000 # Timeout en milisegundos
NODE_ENV=development # Entorno de ejecución
Uso con Inspector MCP
- Ejecutar el inspector:
npm run inspector - El servidor se iniciará en modo debug
- Se abrirá automáticamente el navegador con la interfaz
Agregar Nuevos Servicios
Para agregar un nuevo servicio (ej: productos):
- Crear tipos en
src/types/product.ts - Crear servicio en
src/services/productService.ts - Crear herramientas en
src/tools/productCreateTool.ts, etc. - Registrar herramientas en
src/main.ts - Actualizar configuración si es necesario
Estructura de API Externa
El servidor está configurado para trabajar con APIs que sigan este formato:
GET Response
{
"data": [...],
"links": {
"first": "string",
"last": "string",
"prev": "string",
"next": "string"
},
"meta": {
"current_page": 0,
"from": 0,
"last_page": 0,
"per_page": 0,
"to": 0,
"total": 0
}
}
POST Request
{
"field1": "value1",
"field2": "value2"
}
