uade-mcp 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SECURITY.md +19 -0
- package/dist/index.js +1 -1
- package/dist/report/errores.js +1 -1
- package/package.json +1 -1
package/SECURITY.md
CHANGED
|
@@ -27,6 +27,25 @@ No abras un issue público para temas de seguridad.
|
|
|
27
27
|
La auditoría completa (hallazgos, controles OWASP, NIST y ISO 27001, riesgos aceptados) está en
|
|
28
28
|
[docs/AUDITORIA.md](docs/AUDITORIA.md).
|
|
29
29
|
|
|
30
|
+
## Cadena de suministro (que lo que instalás sea lo que está en el repo)
|
|
31
|
+
|
|
32
|
+
- **Publicación solo desde GitHub Actions** (`.github/workflows/publicar.yml`), al crear un tag `vX.Y.Z`
|
|
33
|
+
que coincida con `package.json`. Usa *trusted publishing* (OIDC): no existe ningún token de npm guardado
|
|
34
|
+
que se pueda robar, y cada versión sale con **provenance** firmada que apunta a este repo y a este commit.
|
|
35
|
+
- **Nada sale al público sin una persona:** GitHub solo deja la versión *en espera* en npm; la publica quien
|
|
36
|
+
mantiene el paquete, aprobándola en npmjs.com con su segundo factor. Un repo o una cuenta de GitHub
|
|
37
|
+
comprometidos no alcanzan para publicar.
|
|
38
|
+
- **Verificar lo instalado:** `npm audit signatures` en una carpeta con `uade-mcp` instalado comprueba la
|
|
39
|
+
firma y la provenance contra el registro.
|
|
40
|
+
- **CI en cada push y PR** (`revisar.yml`): tipos, tests, `npm audit` y búsqueda de secretos en todo el
|
|
41
|
+
repo, en Node 20 y 22, sin credenciales de nadie.
|
|
42
|
+
- **Rama `main` protegida:** sin force-push ni borrado, historial lineal, y solo por PR con el CI en verde;
|
|
43
|
+
la regla aplica también a quien administra el repo.
|
|
44
|
+
- **Dependabot** avisa (y propone el PR) ante vulnerabilidades en dependencias o acciones; el escaneo de
|
|
45
|
+
secretos de GitHub, con protección al push, bloquea tokens que intenten entrar.
|
|
46
|
+
- **Dependencias con versión exacta** y `package-lock.json`; `npm ci --ignore-scripts` en CI: ninguna
|
|
47
|
+
dependencia corre código al instalarse.
|
|
48
|
+
|
|
30
49
|
## Lo que queda fuera de estas garantías
|
|
31
50
|
|
|
32
51
|
- **`experimentos/`**: el servidor no carga nada de esa carpeta, no se compila ni se testea con el resto
|
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@ if (args.length) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
const server = new McpServer({ name: 'uade-mcp', version: '0.1.
|
|
34
|
+
const server = new McpServer({ name: 'uade-mcp', version: '0.1.3' }, {
|
|
35
35
|
instructions: [
|
|
36
36
|
'Unofficial MCP for UADE (Universidad Argentina de la Empresa, Buenos Aires). All tools are read-only and read live data; prefer them over memory.',
|
|
37
37
|
'Answer in Argentine Spanish (vos). Dates dd/mm/aaaa, 24 h times, as tools return them.',
|
package/dist/report/errores.js
CHANGED
|
@@ -15,7 +15,7 @@ import { SessionExpiredError } from '../net/session.js';
|
|
|
15
15
|
import { PageChangedError } from '../sources/webcampus/parse.js';
|
|
16
16
|
import { toolActual } from './contexto.js';
|
|
17
17
|
export const REPORT_URL = 'https://planuade.ar/api/mcp-error';
|
|
18
|
-
export const VERSION = '0.1.
|
|
18
|
+
export const VERSION = '0.1.3';
|
|
19
19
|
// Errores esperables que no son bugs del MCP ni cambios de UADE: no se reportan.
|
|
20
20
|
const ESPERADOS = [SessionExpiredError, PermissionError, PolicyError, ConfirmationError];
|
|
21
21
|
// Tapa lo que podría identificar a alguien: mails, números largos (legajo, ids), rutas con usuario.
|
package/package.json
CHANGED