Back to Browse

Siigo Pyme MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

SIIGO Pyme as MCP tools: the 47 ExcelSIIGO functions, plus company discovery.

About

SIIGO Pyme as MCP tools: the 47 ExcelSIIGO functions, plus company discovery.

Security Report

4.2
Use Caution4.2High Risk

This is a Windows-specific MCP server for SIIGO Pyme (accounting software) that wraps the EXCELSIIGO.exe CLI tool. The server demonstrates good code structure and appropriate authentication practices, but has moderate security concerns stemming from the inherent limitations of its dependency on EXCELSIIGO.exe (credentials visible in process table, no protection against simultaneous executions) and some credential handling patterns that require user awareness. Permissions are appropriate for its purpose (file I/O, process execution, environment variables, Windows registry access). Supply chain analysis found 5 known vulnerabilities in dependencies (2 critical, 3 high severity). Package verification found 1 issue.

4 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

process_spawn

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

system_info

Check that this permission is expected for this type of plugin.

windows_registry_read

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Usuario de SIIGO (hasta 8 caracteres). Alternativa a guardarlo con la herramienta siigo_set_credentials.Optional

Environment variable: SIIGO_USUARIO

Clave del usuario de SIIGO (hasta 8 caracteres). Alternativa a guardarla con la herramienta siigo_set_credentials.Required

Environment variable: SIIGO_CLAVE

Anio de proceso por defecto en SIIGO, 4 digitos. Por defecto el anio actual.Optional

Environment variable: SIIGO_ANO

Carpeta donde guardar la configuracion del servidor. Por defecto %APPDATA%\siigo-pyme-mcp.Optional

Environment variable: SIIGO_MCP_CONFIG_DIR

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-javalenciacai-siigo-pyme-mcp": {
      "env": {
        "SIIGO_ANO": "your-siigo-ano-here",
        "SIIGO_CLAVE": "your-siigo-clave-here",
        "SIIGO_USUARIO": "your-siigo-usuario-here",
        "SIIGO_MCP_CONFIG_DIR": "your-siigo-mcp-config-dir-here"
      },
      "args": [
        "-y",
        "siigo-pyme-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

siigo-pyme-mcp

Servidor MCP que expone SIIGO Pyme a un agente de IA. Envuelve EXCELSIIGO.exe, el ejecutable de interfases de SIIGO, y convierte sus 47 funciones de exportación e importación en herramientas MCP con parámetros documentados, descubrimiento automático de empresas y resultados ya parseados a JSON.

Agente: "dame los terceros de la empresa 02"
  → siigo_getter(empresa: "02")
  → EXCELSIIGO.exe Z:\SIIWI02\ 2026 GETTER L ADMON **** ... Terceros.xlsx
  → { ok: true, archivo: "...", totalFilas: 1240, columnas: [...], filas: [...] }

Requisitos

RequisitoPor qué
WindowsSIIGO Pyme solo existe en Windows.
SIIGO Pyme instaladoSe necesita EXCELSIIGO.exe (por defecto en C:\Siigo).
Microsoft Excel instaladoSIIGO genera los .xlsx con Excel por COM, a través de SiigoExcel.exe. Sin Excel no se produce ningún archivo.
Sesión de escritorio activaConsecuencia de lo anterior: no funciona como servicio de Windows, ni por SSH sin sesión, ni en un contenedor.
Node.js 18 o superiorPara ejecutarlo con npx.

Instalación

No hace falta instalar nada: se ejecuta con npx. Añádalo a la configuración MCP de su cliente.

{
  "mcpServers": {
    "siigo": {
      "command": "npx",
      "args": ["-y", "siigo-pyme-mcp"]
    }
  }
}

Si prefiere pasar las credenciales por entorno en lugar de guardarlas:

{
  "mcpServers": {
    "siigo": {
      "command": "npx",
      "args": ["-y", "siigo-pyme-mcp"],
      "env": {
        "SIIGO_USUARIO": "ADMON",
        "SIIGO_CLAVE": "1111"
      }
    }
  }
}

Primeros pasos

  1. siigo_list_installations — comprueba qué instalaciones de SIIGO se detectaron.
  2. siigo_list_companies — lista las empresas SIIWI01..SIIWI99 disponibles.
  3. siigo_set_credentials — guarda usuario y clave. Sin indicar empresa, la credencial se aplica a todas, que es lo más cómodo si usa el mismo usuario en todas ellas.
  4. Ya puede llamar a cualquier función: siigo_getmov, siigo_getter, siigo_getinv...
siigo_set_credentials(usuario: "ADMON", clave: "1111")
siigo_set_company_alias(empresa: "Z:\\SIIWI01\\", alias: "Inmunotek")
siigo_getmov(empresa: "Inmunotek", fechaInicial: "0101", fechaFinal: "0131", tipoComprobante: "F")

Cómo encuentra sus empresas

  • Instalaciones: se leen del registro de Windows (HKLM\SOFTWARE\WOW6432Node\Informatica y Gestion S.A\Siigo Windows), de la configuración del servidor, y escaneando las unidades en busca de carpetas <X>:\Siigo* que contengan EXCELSIIGO.exe. Puede tener varias (C:\Siigo, C:\Siigo2, D:\Siigo...).
  • Empresas: cada instalación declara en su filepath.txt la ruta de una empresa. A partir de ella se explora la carpeta que la contiene buscando SIIWI00..SIIWI99. Solo se aceptan las que traen datos reales de SIIGO (ZnnSIIGO, CONFIMP.CFG, archivos .DIS), de modo que carpetas homónimas vacías o de instalación no se ofrecen como empresas.
  • Para registrar algo que el autodescubrimiento no ve, use siigo_add_installation o guarde credenciales directamente sobre la ruta de la empresa con siigo_set_credentials.

Puede referirse a una empresa por su ruta (Z:\SIIWI01\), por su número (01) o por el alias.

Herramientas

De apoyo

HerramientaPara qué
siigo_list_installationsInstalaciones de SIIGO detectadas.
siigo_list_companiesEmpresas disponibles, con alias y si tienen credenciales.
siigo_list_functionsCatálogo de las 47 funciones, filtrable por grupo.
siigo_describe_functionParámetros, orden posicional y ejemplo del manual de una función.
siigo_set_credentialsGuarda usuario y clave, global o por empresa.
siigo_set_company_aliasDa un nombre legible a una empresa.
siigo_add_installationRegistra una instalación que no se detectó sola.
siigo_get_configMuestra la configuración (claves enmascaradas).
siigo_read_xlsxLee de forma paginada cualquier .xlsx generado.

De función

Una por cada función del CLI, con el nombre en minúsculas: siigo_getmov, siigo_pushmov, siigo_getter, siigo_getinv, siigo_getcta, siigo_getsal, siigo_getinf... Use siigo_list_functions para verlas todas.

Todas aceptan los mismos campos comunes — empresa (obligatorio), anio, norma, instalacion, usuario, clave — más los parámetros propios de la función. Las de exportación admiten además filasPreview.

Las funciones GET* devuelven la ruta del .xlsx, el total de filas, las columnas y las primeras 50 filas ya parseadas, con un siguienteOffset para continuar con siigo_read_xlsx.

Configuración

Se guarda en %APPDATA%\siigo-pyme-mcp\config.json (se puede reubicar con SIIGO_MCP_CONFIG_DIR).

{
  "installations": ["D:\\Siigo"],
  "defaultCredentials": { "user": "ADMON", "password": "1111" },
  "companies": {
    "Z:\\SIIWI01\\": { "alias": "Inmunotek" },
    "Z:\\SIIWI02\\": { "alias": "Comercial", "user": "CONTA", "password": "2222", "year": "2025" }
  },
  "outputDir": "C:\\SiigoMCP\\out",
  "norma": "L",
  "timeoutMs": 300000
}

Precedencia de las credenciales: valores de la llamada → SIIGO_USUARIO/SIIGO_CLAVE → credencial de la empresa → credencial por defecto.

outputDir debe ser corto: SIIGO limita la ruta del .xlsx a 50 caracteres.

Limitaciones

Nacen del ejecutable de SIIGO, no del servidor:

  • La clave es visible en la tabla de procesos. EXCELSIIGO.exe la recibe como argumento posicional, así que aparece en Get-CimInstance Win32_Process mientras dura la ejecución. No hay forma de evitarlo desde fuera. El servidor sí la mantiene fuera de logs, mensajes de error y respuestas MCP.
  • Una ejecución a la vez. El CLI no tolera instancias simultáneas; el servidor las encola.
  • Rutas de 50 caracteres. Se aplica al .xlsx de salida y al log. El servidor genera nombres cortos y avisa antes de invocar si una ruta se pasa.
  • Requiere Excel y sesión interactiva, por el uso de COM.
  • exit code 0 no significa éxito. El binario puede fallar (081 Parámetros de la función tienen errores) y salir con 0. El servidor combina tres señales antes de dar por buena una corrida: código de salida, contenido del log y existencia y tamaño del archivo generado.
  • Las importaciones dejan su resultado en la carpeta TEMP de la empresa, según documenta el manual, no en la ruta que se indique.
  • Si la empresa vive en una unidad de red mapeada y el recurso se cae, Windows deja el mapeo visible pero desconectado. El servidor lo detecta antes de ejecutar y lo dice explícitamente.

Desarrollo

npm install
npm run typecheck
npm test               # 111 tests, incluidos los 47 dorados contra los ejemplos del manual
npm run build
npm run test:smoke     # handshake MCP y verificación de las 56 herramientas
npm run test:e2e -- ADMON 1111 01   # ejecuta GETTER de verdad contra una empresa

npm run test:e2e sin argumentos usa credenciales inválidas a propósito, para comprobar que un fallo se reporta como fallo y no como éxito silencioso. Es el único script que necesita SIIGO instalado; el resto corre en cualquier máquina, incluida la de CI.

Sobre los tests dorados

El manual de SIIGO (<instalación>\ExcelSIIGO-Ayuda.LOG) trae una línea Ejemplo: por cada función. src/siigo/args.golden.test.ts reconstruye el argv con esos mismos valores y exige que coincida token por token. Es la única defensa real contra el error 081, que el binario reporta en silencio. Si corrige la firma de una función en src/catalog/functions.ts, el test correspondiente se lo confirmará.

Publicación

La publicación es automática. No se publica nada a mano.

  • ci.yml valida cada PR y cada push a main en un runner de Windows: typecheck, tests, build, smoke y comprobación de que el tarball solo lleva artefactos de distribución.
  • publish.yml se dispara al empujar un tag v* y, tras repetir la validación completa, publica a npm con --provenance, publica al MCP Registry oficial autenticando con el OIDC de GitHub Actions, y crea la GitHub Release con notas generadas.

Para sacar una versión:

npm version patch --no-git-tag-version   # o minor / major
# sincronizar server.json a la misma versión (version y packages[].version)
git commit -am "release: v0.1.1"
git push
git tag v0.1.1
git push origin v0.1.1

El workflow bloquea la publicación si package.json, el tag y server.json no coinciden: el MCP Registry rechaza con 422 cuando las versiones difieren, y es mejor fallar antes de haber subido nada a npm.

Configuración necesaria una sola vez en el repositorio: el secret NPM_TOKEN con un token de tipo Automation de npm (los tokens Automation omiten el 2FA, que un runner no puede resolver). El MCP Registry no necesita ningún secret.

Licencia

MIT. Proyecto independiente, sin relación con Informática y Gestión S.A. (SIIGO).

Reviews

No reviews yet

Be the first to review this server!