@albertomarturelo/sii-mcp 0.14.0 → 0.15.0
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/CHANGELOG.md +17 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +35 -59
- package/dist/server.js.map +1 -1
- package/dist/tools/alertas.d.ts +4 -0
- package/dist/tools/alertas.d.ts.map +1 -0
- package/dist/tools/alertas.js +25 -0
- package/dist/tools/alertas.js.map +1 -0
- package/dist/tools/f29.d.ts.map +1 -1
- package/dist/tools/f29.js +34 -1
- package/dist/tools/f29.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,23 @@ Versions move in **lockstep** with `@albertomarturelo/sii-core` and
|
|
|
9
9
|
(ADR-003), so the domain detail behind each entry lives in the
|
|
10
10
|
[core changelog](../core/CHANGELOG.md).
|
|
11
11
|
|
|
12
|
+
## 0.15.0 — 2026-10-23
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`alertas` (#195, #208)** (`fuentes`, `desde`; `readOnlyHint`). The description states the
|
|
17
|
+
cost and the PII the alertas carry.
|
|
18
|
+
- **`f29_submit_preview` (#161)** (`periodo`; no `readOnlyHint`, it leaves a borrador « Guardada »)
|
|
19
|
+
and **`f29_submit`** (`periodo`, `confirmar: true`, `total`; `destructiveHint`). The description
|
|
20
|
+
says it files a legal declaration and tells the model to file only on the user's approval.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- **Breaking: `auth_login`, `auth_status`, `auth_logout` and `operate` return JSON (#198).** The
|
|
25
|
+
same object as `sii <cmd> --json`, including the no-session shapes, instead of Spanish text. A
|
|
26
|
+
client that read the text should `JSON.parse` it. The hints the text carried moved into the
|
|
27
|
+
tool descriptions; errors are unchanged.
|
|
28
|
+
|
|
12
29
|
## 0.14.0 — 2026-10-21
|
|
13
30
|
|
|
14
31
|
### Added
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAUL,KAAK,OAAO,EACb,MAAM,4BAA4B,CAAC;AA0BpC,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CA0JvD"}
|
package/dist/server.js
CHANGED
|
@@ -6,15 +6,10 @@
|
|
|
6
6
|
import { createRequire } from 'node:module';
|
|
7
7
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
import { HOSTS, authStatus,
|
|
9
|
+
import { HOSTS, authStatus, listOperable, login, logout, operate, operateSelf, operatingStatus, statusRefresh, } from '@albertomarturelo/sii-core';
|
|
10
10
|
import { toolText } from './tool-helpers.js';
|
|
11
|
-
/**
|
|
12
|
-
const
|
|
13
|
-
? `Sesión www2: activa${w.expiresAt ? ` (hasta ${w.expiresAt})` : ''}.`
|
|
14
|
-
: 'Sesión www2: no iniciada (auth_login con www2=true para la Carpeta Tributaria).';
|
|
15
|
-
/** The www2 layer a logout could not close: SII does not revoke it, it expires on its own (#146). */
|
|
16
|
-
const www2StillValid = (until) => `La sesión www2 sigue válida en el SII${until ? ` hasta ${until}` : ''}: el SII no la ` +
|
|
17
|
-
'revoca al cerrar sesión. Sus cookies ya se borraron de este equipo.';
|
|
11
|
+
/** A tool result is the task's object, the same one `sii <cmd>` prints as JSON (ADR-012). */
|
|
12
|
+
const json = (value) => JSON.stringify(value, null, 2);
|
|
18
13
|
// Domain read surfaces — each module owns a tools/<mod>.ts register fn (append-only).
|
|
19
14
|
import { registerWhoamiTools } from './tools/whoami.js';
|
|
20
15
|
import { registerRcvTools } from './tools/rcv.js';
|
|
@@ -24,6 +19,7 @@ import { registerDteTools } from './tools/dte.js';
|
|
|
24
19
|
import { registerBteTools } from './tools/bte.js';
|
|
25
20
|
import { registerPeticionesTools } from './tools/peticiones.js';
|
|
26
21
|
import { registerCarpetaTools } from './tools/carpeta.js';
|
|
22
|
+
import { registerAlertasTools } from './tools/alertas.js';
|
|
27
23
|
const jsonResource = (uri, value) => ({
|
|
28
24
|
contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(value, null, 2) }],
|
|
29
25
|
});
|
|
@@ -65,64 +61,49 @@ export function buildServer(runtime) {
|
|
|
65
61
|
description: 'Abre el navegador en la página del SII para que el usuario escriba su Clave Tributaria. ' +
|
|
66
62
|
'NUNCA recibe la Clave como argumento (ADR-006); persiste solo cookies. Idempotente sobre una sesión viva. ' +
|
|
67
63
|
'www2=true añade además la sesión de la plataforma www2 (necesaria para carpeta_*): el mismo ' +
|
|
68
|
-
'navegador abre la página OAuth del SII y el usuario vuelve a escribir su Clave ahí (ADR-026).'
|
|
64
|
+
'navegador abre la página OAuth del SII y el usuario vuelve a escribir su Clave ahí (ADR-026). ' +
|
|
65
|
+
'Devuelve { authenticated, rut, reason } (reason "already_authenticated" si ya había sesión) ' +
|
|
66
|
+
'y, con www2=true, el estado de esa capa en www2.',
|
|
69
67
|
inputSchema: { www2: z.boolean().optional() },
|
|
70
68
|
annotations: { readOnlyHint: false, openWorldHint: true },
|
|
71
|
-
}, ({ www2 }) => toolText(async () => {
|
|
72
|
-
const r = await login(runtime, www2 ? { www2: true } : {});
|
|
73
|
-
const head = r.reason === 'already_authenticated'
|
|
74
|
-
? `Ya tienes una sesión activa como ${fmt(r.rut)}.`
|
|
75
|
-
: `Sesión iniciada como ${fmt(r.rut)}.`;
|
|
76
|
-
return r.www2 ? `${head}\n${www2Line(r.www2)}` : head;
|
|
77
|
-
}));
|
|
69
|
+
}, ({ www2 }) => toolText(async () => json(await login(runtime, www2 ? { www2: true } : {}))));
|
|
78
70
|
server.registerTool('auth_status', {
|
|
79
71
|
title: 'Estado de sesión',
|
|
80
|
-
description: 'Lectura LOCAL de la sesión (quién soy, operando-como). refresh=true lee la identidad desde el portal (requiere sesión viva).'
|
|
72
|
+
description: 'Lectura LOCAL de la sesión (quién soy, operando-como). refresh=true lee la identidad desde el portal (requiere sesión viva). ' +
|
|
73
|
+
'Devuelve { authenticated, rut, sessionSource, www2, loginBlocked, operating }; authenticated=false ⇒ usa auth_login; ' +
|
|
74
|
+
'www2.authenticated=false ⇒ auth_login con www2=true para la Carpeta Tributaria. loginBlocked lista los RUT cuyo ' +
|
|
75
|
+
'login desatendido (CLI) quedó bloqueado tras un rechazo: lo levanta una persona en la terminal, nunca esta tool. ' +
|
|
76
|
+
'Con refresh=true: { rut, nombre, accountType, www2 }.',
|
|
81
77
|
inputSchema: { refresh: z.boolean().optional() },
|
|
82
78
|
annotations: { readOnlyHint: true },
|
|
83
79
|
}, ({ refresh }) => toolText(async () => {
|
|
84
|
-
if (refresh)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
const s = await authStatus(runtime);
|
|
80
|
+
if (refresh)
|
|
81
|
+
return json(await statusRefresh(runtime));
|
|
82
|
+
const status = await authStatus(runtime);
|
|
89
83
|
// The rejection latch (ADR-028) is reported, never lifted here: unblock is CLI-only.
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
`${b.codigo ? ` (código ${b.codigo})` : ''}; lo levanta una persona en la terminal.`)
|
|
93
|
-
.join('');
|
|
94
|
-
if (!s.authenticated || !s.rut)
|
|
95
|
-
return `No autenticado. Usa la tool auth_login.${blocked}`;
|
|
96
|
-
const ctx = await operatingStatus(runtime);
|
|
97
|
-
const op = ctx && !ctx.isSelf ? `\n${describeOperating(ctx)}` : '';
|
|
98
|
-
return `Autenticado (sesión local) como ${fmt(s.rut)}.${op}\n${www2Line(s.www2)}${blocked}`;
|
|
84
|
+
const operating = status.authenticated && status.rut ? await operatingStatus(runtime) : null;
|
|
85
|
+
return json({ ...status, operating });
|
|
99
86
|
}));
|
|
100
87
|
// logout carries NO secret (best-effort server close + local cookie wipe), so
|
|
101
88
|
// ADR-006 does not bar it from MCP — switching accounts is logout→login (ADR-005).
|
|
102
89
|
server.registerTool('auth_logout', {
|
|
103
90
|
title: 'Cerrar sesión',
|
|
104
91
|
description: 'Cierra la sesión: intenta cerrarla en el servidor (mejor esfuerzo) y borra las cookies locales. ' +
|
|
105
|
-
'No recibe argumentos. Para cambiar de cuenta: auth_logout y luego auth_login.'
|
|
92
|
+
'No recibe argumentos. Para cambiar de cuenta: auth_logout y luego auth_login. ' +
|
|
93
|
+
'Devuelve { loggedOut, serverClosed, www2Closed, www2ValidUntil? }: serverClosed=false ⇒ solo se ' +
|
|
94
|
+
'borró la sesión local; www2ValidUntil presente ⇒ el SII no revoca la sesión www2 y sigue válida ' +
|
|
95
|
+
'hasta esa hora (sus cookies ya se borraron de este equipo).',
|
|
106
96
|
// Touches SII: the best-effort server-side close is a real portal call (like auth_login).
|
|
107
97
|
annotations: { readOnlyHint: false, openWorldHint: true },
|
|
108
|
-
}, () => toolText(async () =>
|
|
109
|
-
const r = await logout(runtime);
|
|
110
|
-
if (!r.loggedOut)
|
|
111
|
-
return 'No había sesión activa.';
|
|
112
|
-
const head = r.serverClosed
|
|
113
|
-
? 'Sesión cerrada (servidor y local).'
|
|
114
|
-
: 'Sesión cerrada (local).';
|
|
115
|
-
if (r.www2Closed)
|
|
116
|
-
return `${head} Sesión www2 cerrada.`;
|
|
117
|
-
return r.www2ValidUntil !== undefined
|
|
118
|
-
? `${head} ${www2StillValid(r.www2ValidUntil)}`
|
|
119
|
-
: head;
|
|
120
|
-
}));
|
|
98
|
+
}, () => toolText(async () => json(await logout(runtime))));
|
|
121
99
|
server.registerTool('operate', {
|
|
122
100
|
title: 'Operar como',
|
|
123
101
|
description: 'Selecciona el RUT bajo el que operas: una empresa representada (rut) o tú mismo (self=true). ' +
|
|
124
102
|
'list=true LISTA los RUT que puedes operar (tú mismo + empresas representadas). ' +
|
|
125
|
-
'Validado contra el conjunto operable. Sin argumentos, reporta el contexto actual.'
|
|
103
|
+
'Validado contra el conjunto operable. Sin argumentos, reporta el contexto actual. ' +
|
|
104
|
+
'Devuelve el contexto { operatingRut, selfRut, isSelf, razonSocial }; con list=true, ' +
|
|
105
|
+
'{ operatingRut, operable: [{ rut, razonSocial, isSelf }] }. Sin sesión: { operating: null } ' +
|
|
106
|
+
'(o { operable: null } con list=true) ⇒ usa auth_login.',
|
|
126
107
|
inputSchema: {
|
|
127
108
|
rut: z.string().optional(),
|
|
128
109
|
self: z.boolean().optional(),
|
|
@@ -130,20 +111,14 @@ export function buildServer(runtime) {
|
|
|
130
111
|
},
|
|
131
112
|
annotations: { readOnlyHint: false },
|
|
132
113
|
}, ({ rut, self, list }) => toolText(async () => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return
|
|
138
|
-
}
|
|
139
|
-
if (self) {
|
|
140
|
-
const r = await operateSelf(runtime);
|
|
141
|
-
return describeOperating(r.context);
|
|
142
|
-
}
|
|
114
|
+
// The same objects `sii operate` prints, including its no-session shapes.
|
|
115
|
+
if (list)
|
|
116
|
+
return json((await listOperable(runtime)) ?? { operable: null });
|
|
117
|
+
if (self)
|
|
118
|
+
return json((await operateSelf(runtime)).context);
|
|
143
119
|
if (rut)
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
return ctx ? describeOperating(ctx) : 'No hay sesión activa. Usa la tool auth_login.';
|
|
120
|
+
return json((await operate(runtime, rut)).context);
|
|
121
|
+
return json((await operatingStatus(runtime)) ?? { operating: null });
|
|
147
122
|
}));
|
|
148
123
|
// --- domain read surfaces (one register call per module — append-only) ---
|
|
149
124
|
registerWhoamiTools(server, runtime);
|
|
@@ -154,6 +129,7 @@ export function buildServer(runtime) {
|
|
|
154
129
|
registerBteTools(server, runtime);
|
|
155
130
|
registerPeticionesTools(server, runtime);
|
|
156
131
|
registerCarpetaTools(server, runtime);
|
|
132
|
+
registerAlertasTools(server, runtime);
|
|
157
133
|
return server;
|
|
158
134
|
}
|
|
159
135
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,kGAAkG;AAClG,gFAAgF;AAChF,kFAAkF;AAClF,2FAA2F;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,KAAK,EACL,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alertas.d.ts","sourceRoot":"","sources":["../../src/tools/alertas.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGpF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B9E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { FUENTES_ALERTAS, alertas } from '@albertomarturelo/sii-core';
|
|
3
|
+
import { toolText } from '../tool-helpers.js';
|
|
4
|
+
export function registerAlertasTools(server, runtime) {
|
|
5
|
+
server.registerTool('alertas', {
|
|
6
|
+
title: 'Alertas del SII',
|
|
7
|
+
description: 'Session-keyed: las alertas del titular de la sesión (para una empresa, auth_logout y ' +
|
|
8
|
+
'auth_login como ella). Lo que el SII registra y no avisa: observaciones del F22 ' +
|
|
9
|
+
'(últimos 3 años tributarios), F29 guardados sin enviar, rechazados o sin declarar ' +
|
|
10
|
+
'(últimos 12 períodos; "sin declarar" solo si la cuenta declara F29, dentro de su inicio ' +
|
|
11
|
+
'de actividades / término de giro y según su vencimiento día 12 o 20, con fechas de ' +
|
|
12
|
+
'vencimiento estimadas) y el último estado de las peticiones administrativas. Cada ' +
|
|
13
|
+
'alerta trae un id estable: guarda los vistos y avisa solo de los nuevos. fuentes ' +
|
|
14
|
+
'elige qué leer: todas son ~20 consultas pausadas al SII (~20 s), así que una rutina ' +
|
|
15
|
+
'frecuente debería pedir solo las que necesita. desde (AAAA-MM-DD) descarta alertas ' +
|
|
16
|
+
'anteriores. Si una fuente falla, el resto se devuelve y fuentes/incompleto lo dicen. ' +
|
|
17
|
+
'Incluye el texto del SII sobre el contribuyente (datos tributarios personales).',
|
|
18
|
+
inputSchema: {
|
|
19
|
+
fuentes: z.array(z.enum(FUENTES_ALERTAS)).optional(),
|
|
20
|
+
desde: z.string().optional(),
|
|
21
|
+
},
|
|
22
|
+
annotations: { readOnlyHint: true },
|
|
23
|
+
}, ({ fuentes, desde }) => toolText(async () => JSON.stringify(await alertas(runtime, { fuentes, desde }), null, 2)));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=alertas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alertas.js","sourceRoot":"","sources":["../../src/tools/alertas.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAgB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,OAAgB;IACtE,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,uFAAuF;YACvF,kFAAkF;YAClF,oFAAoF;YACpF,0FAA0F;YAC1F,qFAAqF;YACrF,oFAAoF;YACpF,mFAAmF;YACnF,sFAAsF;YACtF,qFAAqF;YACrF,uFAAuF;YACvF,iFAAiF;QACnF,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;YACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CACrB,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAC5F,CAAC;AACJ,CAAC"}
|
package/dist/tools/f29.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f29.d.ts","sourceRoot":"","sources":["../../src/tools/f29.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,
|
|
1
|
+
{"version":3,"file":"f29.d.ts","sourceRoot":"","sources":["../../src/tools/f29.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAQL,KAAK,OAAO,EACb,MAAM,4BAA4B,CAAC;AAOpC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4I1E"}
|
package/dist/tools/f29.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { f29Formulario, f29Overview, f29Pdf, f29Status, F29_PDF_TIPO_ARGS, } from '@albertomarturelo/sii-core';
|
|
2
|
+
import { f29Formulario, f29Overview, f29Pdf, f29Status, f29Submit, f29SubmitPreview, F29_PDF_TIPO_ARGS, } from '@albertomarturelo/sii-core';
|
|
3
3
|
// The default destination lives in the `./node` subpath (the pure core cannot know $HOME —
|
|
4
4
|
// ADR-016/ADR-022); the SURFACE applies it.
|
|
5
5
|
import { documentosDir } from '@albertomarturelo/sii-core/node';
|
|
@@ -65,5 +65,38 @@ export function registerF29Tools(server, runtime) {
|
|
|
65
65
|
directorio: directorio ?? join(documentosDir(), 'f29'),
|
|
66
66
|
...(folio !== undefined ? { folio } : {}),
|
|
67
67
|
}), null, 2)));
|
|
68
|
+
// --- submit (FILES a legally-binding declaración, ADR-029) ---
|
|
69
|
+
server.registerTool('f29_submit_preview', {
|
|
70
|
+
title: 'F29 — vista previa de la presentación',
|
|
71
|
+
description: 'Vista previa de presentar el F29 de un período (YYYYMM o YYYY-MM) con la propuesta de SII ' +
|
|
72
|
+
'tal cual: la propuesta agrupada, lo que calculan las fórmulas de SII, el TOTAL A PAGAR ' +
|
|
73
|
+
'(código 91) que SII valida y cada desacuerdo entre el borrador validado y la propuesta ' +
|
|
74
|
+
'(si hay alguno, no se puede presentar). NO presenta nada, pero ESCRIBE en SII: deja un ' +
|
|
75
|
+
'borrador «Guardada» (sin efecto legal). La propuesta de SII puede estar incompleta (PPM, ' +
|
|
76
|
+
'retenciones, documentos fuera del RCV): muéstrasela al usuario antes de presentar. ' +
|
|
77
|
+
'Session-keyed: tu propio F29; para una empresa, inicia sesión como ella.',
|
|
78
|
+
inputSchema: { periodo: z.string() },
|
|
79
|
+
// It writes a borrador at SII (no readOnlyHint), but a reversible, legally inert one (no
|
|
80
|
+
// destructiveHint) — ADR-029 amendment, ADR-023's line for borradores.
|
|
81
|
+
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
|
|
82
|
+
}, ({ periodo }) => toolText(async () => JSON.stringify(await f29SubmitPreview(runtime, { periodo }), null, 2)));
|
|
83
|
+
server.registerTool('f29_submit', {
|
|
84
|
+
title: 'F29 — PRESENTAR la declaración (acto legal)',
|
|
85
|
+
description: 'PRESENTA el F29 del período ante el SII: una DECLARACIÓN CON VALOR LEGAL que crea la ' +
|
|
86
|
+
'obligación de pagar el total y solo se corrige con una rectificatoria. Presenta la ' +
|
|
87
|
+
'propuesta de SII tal cual, y esa propuesta puede estar incompleta (PPM, retenciones, ' +
|
|
88
|
+
'documentos fuera del RCV). Llama primero a f29_submit_preview, muéstrale al usuario la ' +
|
|
89
|
+
'propuesta y el total, y presenta solo con su aprobación. DEBES pasar confirmar=true y ' +
|
|
90
|
+
'total = el TOTAL A PAGAR de la vista previa; si SII calcula otro total o el borrador no ' +
|
|
91
|
+
'coincide con la propuesta, se rechaza sin presentar. Nunca reintentes: si el resultado ' +
|
|
92
|
+
'queda sin confirmar, revisa f29_status. No paga: devuelve folio, estado y total, y el ' +
|
|
93
|
+
'pago lo hace el usuario en SII. Session-keyed.',
|
|
94
|
+
inputSchema: {
|
|
95
|
+
periodo: z.string(),
|
|
96
|
+
confirmar: z.literal(true),
|
|
97
|
+
total: z.number().int().nonnegative(),
|
|
98
|
+
},
|
|
99
|
+
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
100
|
+
}, ({ periodo, total }) => toolText(async () => JSON.stringify(await f29Submit(runtime, { periodo, total }), null, 2)));
|
|
68
101
|
}
|
|
69
102
|
//# sourceMappingURL=f29.js.map
|
package/dist/tools/f29.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f29.js","sourceRoot":"","sources":["../../src/tools/f29.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"f29.js","sourceRoot":"","sources":["../../src/tools/f29.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@albertomarturelo/sii-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "MCP (stdio) server for Chile's SII (tax authority): exposes authenticated reads — RCV, F29, F22, boletas de honorarios, DTE-authorized, peticiones administrativas — plus factura borradores on the Portal MIPYME (never emission) and document downloads, as tools/resources for Claude Desktop and Claude Code. Each tool is a thin call into @albertomarturelo/sii-core tasks (ADR-003).",
|
|
6
6
|
"keywords": [
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
46
46
|
"playwright": "^1.49.0",
|
|
47
47
|
"zod": "^4.4.3",
|
|
48
|
-
"@albertomarturelo/sii-core": "^0.
|
|
48
|
+
"@albertomarturelo/sii-core": "^0.15.0"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "tsc -b"
|