Skip to main content
Glama
JMG3ND

mcp-despliegue-local

by JMG3ND

mcp-despliegue-local

Agente de diagnóstico de solo lectura para servicios Node/Nitro que corren bajo pm2 en un servidor Windows on-premise. Se expone como servidor MCP por HTTP, así que un asistente de IA puede contestar, sin que nadie entre por escritorio remoto:

  1. ¿Qué build corre ahí, y desde cuándo?

  2. ¿Está vivo?

  3. ¿Qué dice el log?

  4. ¿Qué configuración tiene cargada?

  5. ¿El proceso vivo arrancó con la configuración que hoy está en disco, o con una anterior?

La quinta es la que justifica el proyecto. pm2 conserva el entorno con el que arrancó cada proceso, y pm2 restart no lo recarga y no lo dice. El síntoma es «cambié el archivo y no pasa nada» y cuesta media hora cada vez. El agente compara por huella el archivo en disco contra el entorno del proceso vivo y responde directamente si divergen.

Qué NO es

  • No despliega. No construye, no copia, no reinicia, no escribe. Ni una sola ruta de escritura existe en la tabla de enrutado — no está desactivada por bandera, no existe. El despliegue está diseñado por escrito en docs/V1-DESPLIEGUE.md y deliberadamente no implementado.

  • No es un monitor. No agrega, no alerta, no guarda serie temporal. Contesta preguntas cuando se las hacen.

  • No adivina. No prueba /health ni /healthz a ver si suena. Cada servicio declara cómo se sondea, o declara que no se sondea.

  • No exige nada a los servicios vigilados. Ni una línea de código, ni un endpoint de versión, ni una variable nueva. Todo se infiere desde el disco.

Related MCP server: Windows MCP Server

Por qué existe

En un servidor de planta nadie sabe qué versión corre. Los servicios de este tipo declaran version: "0.0.0" en su package.json, no exponen commit ni fecha de build, y no tienen endpoint de versión. Preguntar «¿está actualizado?» no tiene respuesta, y la que se da es un recuerdo.

El agente responde con evidencia etiquetada: cada dato de build viene con su origen y su nivel de confianza, y esa etiqueta nunca sube de tono al resumirse. Una herramienta de diagnóstico que exagera lo que sabe es una que miente. Los límites están escritos, uno a uno, en docs/DIAGNOSTICO.md — es el documento que más importa de este repo.

Arranque en 10 minutos

Requiere Node ≥ 22.19 y pm2 en la máquina vigilada.

git clone <este-repo> C:\agentes\mcp-despliegue-local
cd C:\agentes\mcp-despliegue-local
npm install
  1. Descriptor. Copia ejemplos/servicios.ejemplo.mjs a tu repo privado (nunca a este) y describe tus servicios. Empieza por uno solo, con sonda: { tipo: 'ninguna' }. Esquema completo en docs/DESCRIPTORES.md.

  2. Entorno. cp env.ejemplo .env y rellena:

    DESPLIEGUE_LOCAL_TOKEN=<32 caracteres o más, generado al azar>
    DESPLIEGUE_LOCAL_DESCRIPTORES=D:\servicios\configuracion\servicios.mjs

    Genera el token con node -p "require('crypto').randomBytes(32).toString('hex')". Con menos de 32 caracteres el agente sale con código 1 y te dice por qué.

  3. Arranca bajo pm2.

    pm2 start ecosystem.config.cjs
    pm2 save
  4. Verifica sin un modelo delante. /salud no pide token y no devuelve datos:

    curl http://127.0.0.1:7717/salud
    { "ok": true, "contrato": 1, "version": "0.1.0", "arrancadoEn": "2026-09-08T09:12:44.001Z",
      "expuesto": false, "descriptores": { "cargados": 4, "invalidos": 0, "avisos": 1 } }
  5. Registra el MCP en el consumidor. No hace falta OAuth ni un puente stdio: el agente es el servidor MCP por Streamable HTTP y .mcp.json admite cabeceras estáticas con expansión de variables de entorno.

    { "mcpServers": { "planta": {
      "type": "http",
      "url": "https://agente.example.com/mcp",
      "headers": { "Authorization": "Bearer ${TOKEN_DESPLIEGUE_LOCAL}" }
    } } }

    Con headers puesto, un 401 se reporta como fallo de conexión y no dispara el flujo OAuth.

El runbook completo — proxy inverso, servicio de arranque, verificación paso a paso — está en docs/INSTALACION.md.

Salida de ejemplo

estado_de_los_servicios es la primera llamada de cualquier diagnóstico y casi siempre la única que hace falta:

4 servicios descritos, 3 en línea.

inventario     en línea    3 d 4 h    build 2026-09-04 (sello.json, confianza alta)
               sonda http /contrato → 200 en 41 ms. Alcance: http.

etiquetas      en línea    3 d 4 h    build 2026-09-04 (nitro.json, confianza media)
               sonda http /api/etiqueta → 400 en 18 ms, esperado. Alcance: proceso:
               contesta, pero esto no prueba que emita etiquetas.

telemetria     en línea      41 min   build 2026-09-08 (mtime de entrada, confianza BAJA —
               probablemente la fecha del copiado, no la del build).
               sonda websocket → 101. Alcance: proceso.
               AVISO: el archivo de configuración en disco no es el que el proceso
               tiene cargado. Divergen: NIVEL_LOG, INTERVALO_MS. Remedio:
               pm2 startOrRestart, no pm2 restart.

pedidos        detenido    —          build 2026-08-27 (nitro.json, confianza media)
               Sin sonda por decisión del descriptor: solo tiene endpoints de negocio
               que exigen base viva, así que un 200 no probaría nada.
               Señales en disco: datos/cola.jsonl, 0 bytes, sin cambios desde hace 6 d.

Nada de eso es JSON crudo por accidente: toda salida de una herramienta MCP es prosa en español ya traducida a una acción.

Las cinco herramientas MCP

Herramienta

Qué responde

estado_de_los_servicios

Pase de lista. La primera llamada, y casi siempre la única

detalle_de_servicio

Expediente de uno: build con su evidencia, proceso pm2, rutas, señales, protegidos

configuracion_de_servicio

Qué configuración tiene cargada, y si el proceso arrancó con esa o con otra

bitacora_de_servicio

Últimas N líneas del log (def. 50, tope duro 500, filtro aplicado en el servidor)

estado_del_agente

Distingue «el agente no corre» de «el agente corre pero no sabe que ese servicio existe»

Documentación

Documento

Para quién

docs/ARQUITECTURA.md

Quien va a leer o escribir el código

docs/DESCRIPTORES.md

Quien describe sus servicios. Esquema campo a campo

docs/INSTALACION.md

Quien lo instala en el servidor. Runbook

docs/DIAGNOSTICO.md

Quien lee las respuestas. Los límites de lo que el agente sabe

docs/SEGURIDAD.md

Quien tiene que aprobar poner esto en una red industrial

docs/V1-DESPLIEGUE.md

Quien implemente el despliegue. Diseñado, no construido

CLAUDE.md

Quien edite este repo, humano o asistente

Estado

v0 implementado. Los dieciséis módulos de src/ están escritos, con 115 tests unitarios y una prueba de aceptación de 41 comprobaciones que corre contra pm2 de verdad y un servicio de juguete.

npm test                      # 115 tests unitarios
npm run utiles:aceptacion     # 41 comprobaciones contra pm2 real (monta y borra su banco)
npm run verificar             # higiene pública con historial + tests. Antes de publicar

La prueba que decide si esto sirve está en utiles/prueba-de-aceptacion.mjs: cambia una variable, hace pm2 restart —el comando equivocado— y comprueba que el agente detecta la divergencia; luego pm2 startOrRestart y comprueba que desaparece.

El despliegue (v1) sigue diseñado por escrito y sin implementar, en docs/V1-DESPLIEGUE.md.

Licencia

MIT. Ver LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Exposes Windows system information and control tools including hardware stats, network details, and process monitoring. It enables AI applications to retrieve real-time data about CPU, memory, drives, and active system processes.
    12
    GPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to retrieve structured information about the local Windows machine, including system specifications, resource health, developer tools, and AI environment, all through a secure, read-only interface.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to run PowerShell commands and manage Windows services without intrusive console windows, while also supporting remote execution via SSH and WinRM.
    10
    461
    MIT

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/JMG3ND/mcp-despliegue-local'

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