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 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.0' }, {
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.',
@@ -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.0';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uade-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "MCP no oficial y de solo lectura para alumnos de UADE: WebCampus, inscripciones, apuntes e información oficial. Corre local, sin telemetría.",
5
5
  "keywords": [
6
6
  "mcp",