@nubiia/mcp-freematica 0.6.4 → 0.8.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/README.md +44 -12
- package/dist/clients/freematica-client.d.ts +264 -1
- package/dist/clients/freematica-client.js +387 -1
- package/dist/clients/freematica-client.js.map +1 -1
- package/dist/config.d.ts +22 -1
- package/dist/config.js +29 -1
- package/dist/config.js.map +1 -1
- package/dist/schemas/clientes.d.ts +164 -0
- package/dist/schemas/clientes.js +205 -0
- package/dist/schemas/clientes.js.map +1 -0
- package/dist/schemas/contratos.d.ts +268 -5
- package/dist/schemas/contratos.js +402 -1
- package/dist/schemas/contratos.js.map +1 -1
- package/dist/schemas/localizaciones.d.ts +90 -0
- package/dist/schemas/localizaciones.js +145 -0
- package/dist/schemas/localizaciones.js.map +1 -0
- package/dist/server-instructions.js +68 -1
- package/dist/server-instructions.js.map +1 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.js +5 -5
- package/dist/server.js.map +1 -1
- package/dist/tools/clientes.d.ts +2 -1
- package/dist/tools/clientes.js +63 -2
- package/dist/tools/clientes.js.map +1 -1
- package/dist/tools/contactos-clientes.d.ts +2 -1
- package/dist/tools/contactos-clientes.js +58 -4
- package/dist/tools/contactos-clientes.js.map +1 -1
- package/dist/tools/contratos/cabecera.d.ts +6 -0
- package/dist/tools/contratos/cabecera.js +128 -0
- package/dist/tools/contratos/cabecera.js.map +1 -0
- package/dist/tools/contratos/index.d.ts +21 -0
- package/dist/tools/contratos/index.js +31 -0
- package/dist/tools/contratos/index.js.map +1 -0
- package/dist/tools/contratos/materiales.d.ts +4 -0
- package/dist/tools/{contratos.js → contratos/materiales.js} +5 -11
- package/dist/tools/contratos/materiales.js.map +1 -0
- package/dist/tools/contratos/opcionales.d.ts +5 -0
- package/dist/tools/contratos/opcionales.js +106 -0
- package/dist/tools/contratos/opcionales.js.map +1 -0
- package/dist/tools/contratos/servicios.d.ts +5 -0
- package/dist/tools/contratos/servicios.js +215 -0
- package/dist/tools/contratos/servicios.js.map +1 -0
- package/dist/tools/helpers.d.ts +4 -0
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/localizaciones.d.ts +2 -1
- package/dist/tools/localizaciones.js +149 -2
- package/dist/tools/localizaciones.js.map +1 -1
- package/dist/transports/http.d.ts +2 -0
- package/dist/transports/http.js +3 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/stdio.d.ts +2 -0
- package/dist/transports/stdio.js +3 -1
- package/dist/transports/stdio.js.map +1 -1
- package/dist/types/contratos.d.ts +29 -0
- package/dist/utils/idreg.d.ts +37 -0
- package/dist/utils/idreg.js +52 -0
- package/dist/utils/idreg.js.map +1 -0
- package/package.json +1 -1
- package/dist/tools/contratos.d.ts +0 -10
- package/dist/tools/contratos.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contratos.js","sourceRoot":"","sources":["../../src/schemas/contratos.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"contratos.js","sourceRoot":"","sources":["../../src/schemas/contratos.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type LocalizacionTipo = 'cobro' | 'envio' | 'factura' | 'servicio';
|
|
3
|
+
export declare const LOC_TIPOS: LocalizacionTipo[];
|
|
4
|
+
interface LocFieldMap {
|
|
5
|
+
/** Columna del código de localización (requerida por el API). */
|
|
6
|
+
codField: string;
|
|
7
|
+
/** Columna del nombre/denominación. */
|
|
8
|
+
nombreField: string;
|
|
9
|
+
/** Columna del domicilio. */
|
|
10
|
+
domicilioField: string;
|
|
11
|
+
/** Columna de la persona de contacto. */
|
|
12
|
+
contactoField: string;
|
|
13
|
+
/** ¿El API exige el nombre en el alta? */
|
|
14
|
+
nombreRequerido: boolean;
|
|
15
|
+
/** Path del recurso v2 (list/create; update añade /{idReg}). */
|
|
16
|
+
path: string;
|
|
17
|
+
/** Path del GET singular usado en el fetch+merge del update. */
|
|
18
|
+
getPath: string;
|
|
19
|
+
/** Sufijo del nombre de tool: freematica_*_localizacion_<sufijo>_cliente. */
|
|
20
|
+
toolSuffix: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const LOC_FIELD_MAP: Record<LocalizacionTipo, LocFieldMap>;
|
|
23
|
+
/**
|
|
24
|
+
* Shape del alta de localización. `formaPago` solo lo exige el API en el tipo
|
|
25
|
+
* `cobro`; para el resto es ignorable (se valida en el handler).
|
|
26
|
+
*/
|
|
27
|
+
export declare const CreateLocalizacionClienteShape: {
|
|
28
|
+
codPais: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
codProvincia: z.ZodOptional<z.ZodString>;
|
|
30
|
+
codPoblacion: z.ZodOptional<z.ZodString>;
|
|
31
|
+
codPostal: z.ZodOptional<z.ZodString>;
|
|
32
|
+
domicilio: z.ZodOptional<z.ZodString>;
|
|
33
|
+
email: z.ZodOptional<z.ZodString>;
|
|
34
|
+
telefono1: z.ZodOptional<z.ZodString>;
|
|
35
|
+
telefono2: z.ZodOptional<z.ZodString>;
|
|
36
|
+
contacto: z.ZodOptional<z.ZodString>;
|
|
37
|
+
camposAdicionales: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
38
|
+
tipo: z.ZodEnum<{
|
|
39
|
+
cobro: "cobro";
|
|
40
|
+
envio: "envio";
|
|
41
|
+
factura: "factura";
|
|
42
|
+
servicio: "servicio";
|
|
43
|
+
}>;
|
|
44
|
+
grupoCliente: z.ZodNumber;
|
|
45
|
+
codCliente: z.ZodString;
|
|
46
|
+
codLocalizacion: z.ZodNumber;
|
|
47
|
+
nombre: z.ZodOptional<z.ZodString>;
|
|
48
|
+
formaPago: z.ZodOptional<z.ZodString>;
|
|
49
|
+
};
|
|
50
|
+
export declare const UpdateLocalizacionClienteShape: {
|
|
51
|
+
codPais: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
codProvincia: z.ZodOptional<z.ZodString>;
|
|
53
|
+
codPoblacion: z.ZodOptional<z.ZodString>;
|
|
54
|
+
codPostal: z.ZodOptional<z.ZodString>;
|
|
55
|
+
domicilio: z.ZodOptional<z.ZodString>;
|
|
56
|
+
email: z.ZodOptional<z.ZodString>;
|
|
57
|
+
telefono1: z.ZodOptional<z.ZodString>;
|
|
58
|
+
telefono2: z.ZodOptional<z.ZodString>;
|
|
59
|
+
contacto: z.ZodOptional<z.ZodString>;
|
|
60
|
+
camposAdicionales: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
61
|
+
tipo: z.ZodEnum<{
|
|
62
|
+
cobro: "cobro";
|
|
63
|
+
envio: "envio";
|
|
64
|
+
factura: "factura";
|
|
65
|
+
servicio: "servicio";
|
|
66
|
+
}>;
|
|
67
|
+
idReg: z.ZodString;
|
|
68
|
+
nombre: z.ZodOptional<z.ZodString>;
|
|
69
|
+
formaPago: z.ZodOptional<z.ZodString>;
|
|
70
|
+
};
|
|
71
|
+
export type LocalizacionClienteFields = {
|
|
72
|
+
grupoCliente?: number;
|
|
73
|
+
codCliente?: string;
|
|
74
|
+
codLocalizacion?: number;
|
|
75
|
+
nombre?: string;
|
|
76
|
+
formaPago?: string;
|
|
77
|
+
codPais?: number;
|
|
78
|
+
codProvincia?: string;
|
|
79
|
+
codPoblacion?: string;
|
|
80
|
+
codPostal?: string;
|
|
81
|
+
domicilio?: string;
|
|
82
|
+
email?: string;
|
|
83
|
+
telefono1?: string;
|
|
84
|
+
telefono2?: string;
|
|
85
|
+
contacto?: string;
|
|
86
|
+
camposAdicionales?: Record<string, string | number>;
|
|
87
|
+
};
|
|
88
|
+
/** Construye el body del Vo de localización correspondiente al tipo. */
|
|
89
|
+
export declare function buildLocalizacionClienteBody(tipo: LocalizacionTipo, args: LocalizacionClienteFields): Record<string, unknown>;
|
|
90
|
+
export {};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Zod schemas (raw shapes) y builders de body para las tools de escritura de
|
|
4
|
+
* Localizaciones de Clientes (módulo pgrl, v2): cobro, envío, factura y
|
|
5
|
+
* servicio.
|
|
6
|
+
*
|
|
7
|
+
* Los cuatro tipos comparten la mayoría de campos (dirección, teléfonos,
|
|
8
|
+
* email, contacto) pero cada uno usa nombres de columna distintos para el
|
|
9
|
+
* código, el nombre, el domicilio y el contacto. `LOC_FIELD_MAP` centraliza
|
|
10
|
+
* ese mapeo.
|
|
11
|
+
*/
|
|
12
|
+
/** Añade `target[key] = value` solo si value !== undefined. */
|
|
13
|
+
function setIf(target, key, value) {
|
|
14
|
+
if (value !== undefined)
|
|
15
|
+
target[key] = value;
|
|
16
|
+
}
|
|
17
|
+
export const LOC_TIPOS = ['cobro', 'envio', 'factura', 'servicio'];
|
|
18
|
+
export const LOC_FIELD_MAP = {
|
|
19
|
+
cobro: {
|
|
20
|
+
codField: 'LOC_CLI_COB',
|
|
21
|
+
nombreField: 'NOM_LOC_COB',
|
|
22
|
+
domicilioField: 'DOMICILIO',
|
|
23
|
+
contactoField: 'COB_CONTACTO',
|
|
24
|
+
nombreRequerido: true,
|
|
25
|
+
path: '/pgrl/v2/localizaciones-cobro-clientes',
|
|
26
|
+
getPath: '/pgrl/v2/localizaciones-cobro-clientes',
|
|
27
|
+
toolSuffix: 'cobro',
|
|
28
|
+
},
|
|
29
|
+
envio: {
|
|
30
|
+
codField: 'LOC_CLI_ENV',
|
|
31
|
+
nombreField: 'NOM_LOC_ENV',
|
|
32
|
+
domicilioField: 'DOMICILIO_ENVIO',
|
|
33
|
+
contactoField: 'ENV_CONTACTO',
|
|
34
|
+
nombreRequerido: false,
|
|
35
|
+
path: '/pgrl/v2/localizaciones-envio-clientes',
|
|
36
|
+
getPath: '/pgrl/v2/localizaciones-envio-clientes',
|
|
37
|
+
toolSuffix: 'envio',
|
|
38
|
+
},
|
|
39
|
+
factura: {
|
|
40
|
+
codField: 'LOC_CLI_FAC',
|
|
41
|
+
nombreField: 'NOM_LOC_FAC',
|
|
42
|
+
domicilioField: 'DOMICILIO',
|
|
43
|
+
contactoField: 'FAC_CONTACTO',
|
|
44
|
+
nombreRequerido: true,
|
|
45
|
+
path: '/pgrl/v2/localizaciones-factura-clientes',
|
|
46
|
+
// El GET singular v2 no existe para factura; se usa el v1 (mismas columnas).
|
|
47
|
+
getPath: '/pgrl/v1/localizaciones-factura-clientes',
|
|
48
|
+
toolSuffix: 'factura',
|
|
49
|
+
},
|
|
50
|
+
servicio: {
|
|
51
|
+
codField: 'LOC_CLI_SERV',
|
|
52
|
+
nombreField: 'DESCRIPCION',
|
|
53
|
+
domicilioField: 'DOMICILIO',
|
|
54
|
+
contactoField: 'CONTACTO',
|
|
55
|
+
nombreRequerido: true,
|
|
56
|
+
path: '/pgrl/v2/localizaciones-servicio-clientes',
|
|
57
|
+
getPath: '/pgrl/v2/localizaciones-servicio-clientes',
|
|
58
|
+
toolSuffix: 'servicio',
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
const localizacionOptionalFieldsShape = {
|
|
62
|
+
codPais: z.number().int().optional().describe('Código de país (COD_PAIS).'),
|
|
63
|
+
codProvincia: z.string().max(5).optional().describe('Código de provincia (COD_PROVINCIA, 5c).'),
|
|
64
|
+
codPoblacion: z.string().max(40).optional().describe('Código de población (COD_POBLACION, 40c).'),
|
|
65
|
+
codPostal: z.string().max(10).optional().describe('Código postal (COD_POSTAL, 10c).'),
|
|
66
|
+
domicilio: z
|
|
67
|
+
.string()
|
|
68
|
+
.max(100)
|
|
69
|
+
.optional()
|
|
70
|
+
.describe('Domicilio (DOMICILIO / DOMICILIO_ENVIO según el tipo).'),
|
|
71
|
+
email: z.string().max(100).optional().describe('Correo electrónico (E_MAIL, 100c).'),
|
|
72
|
+
telefono1: z.string().max(15).optional().describe('Teléfono 1 (TELEFONO1, 15c).'),
|
|
73
|
+
telefono2: z.string().max(15).optional().describe('Teléfono 2 (TELEFONO2, 15c).'),
|
|
74
|
+
contacto: z
|
|
75
|
+
.string()
|
|
76
|
+
.max(40)
|
|
77
|
+
.optional()
|
|
78
|
+
.describe('Persona de contacto (COB_CONTACTO / ENV_CONTACTO / FAC_CONTACTO / CONTACTO según el tipo).'),
|
|
79
|
+
camposAdicionales: z
|
|
80
|
+
.record(z.string().regex(/^[A-Z][A-Z0-9_]*$/, 'Las claves deben ser columnas Freemática (MAYUSCULAS_CON_GUION_BAJO)'), z.union([z.string(), z.number()]))
|
|
81
|
+
.optional()
|
|
82
|
+
.describe('Campos nativos adicionales del Vo del tipo (ej: cobro → CMCC_IBAN, COD_BANCO; servicio → COD_ZONA, LATITUD_LONGITUD, CMCS_COD_DLG). Ver spec OpenAPI.'),
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Shape del alta de localización. `formaPago` solo lo exige el API en el tipo
|
|
86
|
+
* `cobro`; para el resto es ignorable (se valida en el handler).
|
|
87
|
+
*/
|
|
88
|
+
export const CreateLocalizacionClienteShape = {
|
|
89
|
+
tipo: z
|
|
90
|
+
.enum(['cobro', 'envio', 'factura', 'servicio'])
|
|
91
|
+
.describe('Tipo de localización: cobro, envio, factura o servicio (instalación).'),
|
|
92
|
+
grupoCliente: z.number().int().describe('Código de grupo de cliente (COD_GRUPO_CLI). Requerido.'),
|
|
93
|
+
codCliente: z.string().max(10).describe('Código de cliente (COD_CLI, 10c). Requerido.'),
|
|
94
|
+
codLocalizacion: z
|
|
95
|
+
.number()
|
|
96
|
+
.int()
|
|
97
|
+
.describe('Código de la localización (LOC_CLI_COB/ENV/FAC/SERV según el tipo). Requerido.'),
|
|
98
|
+
nombre: z
|
|
99
|
+
.string()
|
|
100
|
+
.max(80)
|
|
101
|
+
.optional()
|
|
102
|
+
.describe('Denominación (NOM_LOC_COB / NOM_LOC_ENV / NOM_LOC_FAC / DESCRIPCION). Requerido por el API en cobro, factura y servicio.'),
|
|
103
|
+
formaPago: z
|
|
104
|
+
.string()
|
|
105
|
+
.max(3)
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Código de forma de pago (COD_FORMA_PAGO). Requerido por el API SOLO en tipo cobro.'),
|
|
108
|
+
...localizacionOptionalFieldsShape,
|
|
109
|
+
};
|
|
110
|
+
export const UpdateLocalizacionClienteShape = {
|
|
111
|
+
tipo: z
|
|
112
|
+
.enum(['cobro', 'envio', 'factura', 'servicio'])
|
|
113
|
+
.describe('Tipo de localización: cobro, envio, factura o servicio.'),
|
|
114
|
+
idReg: z
|
|
115
|
+
.string()
|
|
116
|
+
.min(1)
|
|
117
|
+
.describe('idReg opaco de la localización (campo "idReg" en la list tool del tipo).'),
|
|
118
|
+
nombre: z.string().max(80).optional().describe('Nueva denominación.'),
|
|
119
|
+
formaPago: z.string().max(3).optional().describe('Código de forma de pago (solo tipo cobro).'),
|
|
120
|
+
...localizacionOptionalFieldsShape,
|
|
121
|
+
};
|
|
122
|
+
/** Construye el body del Vo de localización correspondiente al tipo. */
|
|
123
|
+
export function buildLocalizacionClienteBody(tipo, args) {
|
|
124
|
+
const map = LOC_FIELD_MAP[tipo];
|
|
125
|
+
const body = {};
|
|
126
|
+
setIf(body, 'COD_GRUPO_CLI', args.grupoCliente);
|
|
127
|
+
setIf(body, 'COD_CLI', args.codCliente);
|
|
128
|
+
setIf(body, map.codField, args.codLocalizacion);
|
|
129
|
+
setIf(body, map.nombreField, args.nombre);
|
|
130
|
+
if (tipo === 'cobro')
|
|
131
|
+
setIf(body, 'COD_FORMA_PAGO', args.formaPago);
|
|
132
|
+
setIf(body, 'COD_PAIS', args.codPais);
|
|
133
|
+
setIf(body, 'COD_PROVINCIA', args.codProvincia);
|
|
134
|
+
setIf(body, 'COD_POBLACION', args.codPoblacion);
|
|
135
|
+
setIf(body, 'COD_POSTAL', args.codPostal);
|
|
136
|
+
setIf(body, map.domicilioField, args.domicilio);
|
|
137
|
+
setIf(body, 'E_MAIL', args.email);
|
|
138
|
+
setIf(body, 'TELEFONO1', args.telefono1);
|
|
139
|
+
setIf(body, 'TELEFONO2', args.telefono2);
|
|
140
|
+
setIf(body, map.contactoField, args.contacto);
|
|
141
|
+
if (args.camposAdicionales)
|
|
142
|
+
Object.assign(body, args.camposAdicionales);
|
|
143
|
+
return body;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=localizaciones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizaciones.js","sourceRoot":"","sources":["../../src/schemas/localizaciones.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export const FREEMATICA_MCP_INSTRUCTIONS = `
|
|
|
3
3
|
|
|
4
4
|
Este servidor expone operaciones del API REST de Freemática como tools MCP.
|
|
5
5
|
|
|
6
|
-
## Tools
|
|
6
|
+
## Tools destacadas (lista parcial; el resto se descubren vía tools/list)
|
|
7
7
|
|
|
8
8
|
### Materiales (1)
|
|
9
9
|
|
|
@@ -48,6 +48,73 @@ para que puedas paginar (\`page = total / items + 1\`).
|
|
|
48
48
|
AVISO: NO uses \`page=0\` (este parámetro lo bloquea al mínimo 1). El API real
|
|
49
49
|
trata \`page=0\` como "devuelve TODO el dataset" — puede ser muchos MB.
|
|
50
50
|
|
|
51
|
+
## Contratos y Servicios
|
|
52
|
+
|
|
53
|
+
Lectura (siempre disponibles):
|
|
54
|
+
|
|
55
|
+
- **freematica_list_contratos(page, items, empresa?, delegacion?, order?)** —
|
|
56
|
+
Cabeceras de contratos (campos CTRT_*). AVISO: el API ignora los filtros
|
|
57
|
+
FIQL en este endpoint; solo funcionan empresa/delegacion (params nativos).
|
|
58
|
+
- **freematica_get_contrato(empresa, codContrato, delegacion?)** — Busca un
|
|
59
|
+
contrato por códigos naturales paginando internamente (puede tardar en
|
|
60
|
+
datasets grandes). Devuelve la cabecera con su \`idReg\`.
|
|
61
|
+
- **freematica_list_servicios_contrato(idContrato, page, items)** — Servicios
|
|
62
|
+
de un contrato (campos CTRTS_*). \`idContrato\` = idReg del contrato.
|
|
63
|
+
- **freematica_get_servicio_contrato(idReg)** — Detalle de un servicio.
|
|
64
|
+
- **freematica_list_contratos_opcionales(page, items)** /
|
|
65
|
+
**freematica_get_contrato_opcionales(idReg)** — Opcionales de contratos
|
|
66
|
+
(campos CON2_*, módulo ppre).
|
|
67
|
+
|
|
68
|
+
Escritura (solo si el servidor arranca con FREEMATICA_ENABLE_WRITES=true;
|
|
69
|
+
no existe borrado):
|
|
70
|
+
|
|
71
|
+
- **freematica_create_contrato** / **freematica_update_contrato** — Alta y
|
|
72
|
+
actualización de cabeceras. Requeridos en alta: delegacion, descripcion,
|
|
73
|
+
fecha, codCliente.
|
|
74
|
+
- **freematica_create_servicio_contrato(idContrato, …)** — Alta de servicio;
|
|
75
|
+
los campos de identificación se derivan del idReg del contrato.
|
|
76
|
+
- **freematica_update_servicio_fechas(idContrato, idServicio, fechaAlta?,
|
|
77
|
+
fechaFin?)** — Único mecanismo de "baja" de un servicio: informar fechaFin.
|
|
78
|
+
- **freematica_create_servicio_historico_precios** /
|
|
79
|
+
**freematica_update_servicio_historico_precios** — Los precios de un
|
|
80
|
+
servicio se gestionan como histórico versionado, separado del servicio.
|
|
81
|
+
- **freematica_create_servicio_facturacion_txt** — Líneas de texto de factura.
|
|
82
|
+
- **freematica_update_servicio_facturacion** — Datos de facturación (precios
|
|
83
|
+
hora, importes, forma de pago); campos avanzados vía camposAdicionales
|
|
84
|
+
(CTRTF_*).
|
|
85
|
+
- **freematica_create_contrato_opcionales** /
|
|
86
|
+
**freematica_update_contrato_opcionales** — Opcionales (campos CON2_*).
|
|
87
|
+
|
|
88
|
+
Flujo típico para crear un contrato completo:
|
|
89
|
+
1. freematica_create_contrato → devuelve idReg.
|
|
90
|
+
2. freematica_create_servicio_contrato por cada servicio.
|
|
91
|
+
3. freematica_create_servicio_historico_precios con los precios.
|
|
92
|
+
4. (opcional) freematica_create_servicio_facturacion_txt.
|
|
93
|
+
|
|
94
|
+
## Clientes, Contactos y Localizaciones — escritura
|
|
95
|
+
|
|
96
|
+
Con FREEMATICA_ENABLE_WRITES=true (no existe borrado):
|
|
97
|
+
|
|
98
|
+
- **freematica_create_cliente** — requeridos: grupoCliente, codCliente,
|
|
99
|
+
nombre, nif, tipoImpuesto, divisa, tipoFacturacion (D/M/Q). El idReg se
|
|
100
|
+
calcula automáticamente.
|
|
101
|
+
- **freematica_update_cliente(idReg, …)** — actualización parcial: la tool
|
|
102
|
+
recupera el cliente y fusiona los cambios antes del PUT.
|
|
103
|
+
- **freematica_create_contacto_cliente** — requeridos: grupoCliente y
|
|
104
|
+
codCliente. Opcionales: nombreApellidos, cargo, telefono, movil, email…
|
|
105
|
+
- **freematica_update_contacto_cliente(idReg, …)** — parcial (fetch+merge).
|
|
106
|
+
- **freematica_create_localizacion_cliente(tipo, …)** — tipo: cobro | envio |
|
|
107
|
+
factura | servicio. formaPago solo se exige en cobro; nombre en todos salvo
|
|
108
|
+
envío. Campos específicos del tipo vía camposAdicionales.
|
|
109
|
+
- **freematica_update_localizacion_cliente(tipo, idReg, …)** — parcial
|
|
110
|
+
(fetch+merge). El idReg sale de la list tool del tipo.
|
|
111
|
+
|
|
112
|
+
Flujo típico cliente nuevo completo:
|
|
113
|
+
1. freematica_create_cliente
|
|
114
|
+
2. freematica_create_contacto_cliente
|
|
115
|
+
3. freematica_create_localizacion_cliente (tipo=servicio, y cobro/factura si aplica)
|
|
116
|
+
4. freematica_create_contrato + servicios (ver sección Contratos)
|
|
117
|
+
|
|
51
118
|
## IDs opacos en endpoints de detalle
|
|
52
119
|
|
|
53
120
|
Las tools \`freematica_get_*\` requieren un \`id\` que es el campo \`idReg\` de los
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoJ1C,CAAC,IAAI,EAAE,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,5 +2,11 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
2
2
|
import type { FreematicaClient } from './clients/freematica-client.js';
|
|
3
3
|
export interface CreateFreematicaServerOptions {
|
|
4
4
|
client: FreematicaClient;
|
|
5
|
+
/**
|
|
6
|
+
* Registra también las tools de escritura (freematica_create_* /
|
|
7
|
+
* freematica_update_*). Default: false (servidor de solo lectura).
|
|
8
|
+
* Los transports lo alimentan desde FREEMATICA_ENABLE_WRITES.
|
|
9
|
+
*/
|
|
10
|
+
enableWrites?: boolean;
|
|
5
11
|
}
|
|
6
12
|
export declare function createFreematicaServer(opts: CreateFreematicaServerOptions): McpServer;
|
package/dist/server.js
CHANGED
|
@@ -7,7 +7,7 @@ import { registerCarteraTools } from './tools/cartera.js';
|
|
|
7
7
|
import { registerClientesTools } from './tools/clientes.js';
|
|
8
8
|
import { registerContactosClientesTools } from './tools/contactos-clientes.js';
|
|
9
9
|
import { registerContabilidadTools } from './tools/contabilidad.js';
|
|
10
|
-
import { registerContratosTools } from './tools/contratos.js';
|
|
10
|
+
import { registerContratosTools } from './tools/contratos/index.js';
|
|
11
11
|
import { registerFacturasComprasTools } from './tools/facturas-compras.js';
|
|
12
12
|
import { registerFacturasElectronicasTools } from './tools/facturas-electronicas.js';
|
|
13
13
|
import { registerFacturasVentasTools } from './tools/facturas-ventas.js';
|
|
@@ -20,17 +20,17 @@ import { registerPrlTools } from './tools/prl.js';
|
|
|
20
20
|
import { registerProveedoresTools } from './tools/proveedores.js';
|
|
21
21
|
export function createFreematicaServer(opts) {
|
|
22
22
|
const server = new McpServer({ name: 'freematica-mcp', version: VERSION }, { instructions: FREEMATICA_MCP_INSTRUCTIONS });
|
|
23
|
-
registerContratosTools(server, opts.client);
|
|
23
|
+
registerContratosTools(server, opts.client, { enableWrites: opts.enableWrites ?? false });
|
|
24
24
|
registerMasterDataTools(server, opts.client);
|
|
25
|
-
registerClientesTools(server, opts.client);
|
|
26
|
-
registerContactosClientesTools(server, opts.client);
|
|
25
|
+
registerClientesTools(server, opts.client, { enableWrites: opts.enableWrites ?? false });
|
|
26
|
+
registerContactosClientesTools(server, opts.client, { enableWrites: opts.enableWrites ?? false });
|
|
27
27
|
registerOportunidadesNegocioTools(server, opts.client);
|
|
28
28
|
registerCarteraTools(server, opts.client);
|
|
29
29
|
registerFacturasVentasTools(server, opts.client);
|
|
30
30
|
registerFacturasComprasTools(server, opts.client);
|
|
31
31
|
registerPedidosComprasTools(server, opts.client);
|
|
32
32
|
registerProveedoresTools(server, opts.client);
|
|
33
|
-
registerLocalizacionesTools(server, opts.client);
|
|
33
|
+
registerLocalizacionesTools(server, opts.client, { enableWrites: opts.enableWrites ?? false });
|
|
34
34
|
registerContabilidadTools(server, opts.client);
|
|
35
35
|
registerPrlTools(server, opts.client);
|
|
36
36
|
registerPersonalTools(server, opts.client);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/clientes.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { FreematicaClient } from '../clients/freematica-client.js';
|
|
3
|
-
|
|
3
|
+
import { type RegisterOptions } from './helpers.js';
|
|
4
|
+
export declare function registerClientesTools(server: McpServer, client: FreematicaClient, opts?: RegisterOptions): void;
|
package/dist/tools/clientes.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FreematicaError } from '../clients/base-client.js';
|
|
3
3
|
import { PaginationSchema } from '../schemas/pagination.js';
|
|
4
|
+
import { CreateClienteShape, UpdateClienteShape, buildClienteBody, buildClienteIdReg, mergeForUpdate, } from '../schemas/clientes.js';
|
|
4
5
|
import { error, ok, okList } from './helpers.js';
|
|
5
6
|
const LIST_TOOL_NAME = 'freematica_list_clientes';
|
|
6
7
|
const GET_TOOL_NAME = 'freematica_get_cliente';
|
|
8
|
+
const CREATE_TOOL_NAME = 'freematica_create_cliente';
|
|
9
|
+
const UPDATE_TOOL_NAME = 'freematica_update_cliente';
|
|
7
10
|
const LIST_DESCRIPTION = [
|
|
8
11
|
'Devuelve la lista paginada de clientes de Freemática.',
|
|
9
12
|
'',
|
|
@@ -16,11 +19,35 @@ const GET_DESCRIPTION = [
|
|
|
16
19
|
'',
|
|
17
20
|
'El parámetro `id` DEBE ser el campo `idReg` (string opaco base64) que aparece en los items de freematica_list_clientes. NO usar COD_CLI ni otro código natural — el API devuelve not_found.',
|
|
18
21
|
].join('\n');
|
|
19
|
-
|
|
22
|
+
const CREATE_DESCRIPTION = [
|
|
23
|
+
'Da de alta un cliente en Freemática.',
|
|
24
|
+
'',
|
|
25
|
+
'Endpoint: POST /pgrl/v2/clientes — body VoClientes (109 campos).',
|
|
26
|
+
'Requeridos: grupoCliente, codCliente, nombre (40c), nif, tipoImpuesto,',
|
|
27
|
+
'divisa (ej. EUR) y tipoFacturacion (D=Diario, M=Mensual, Q=Quincenal).',
|
|
28
|
+
'El idReg del cliente se calcula automáticamente (Base64 "GRUPO__COD").',
|
|
29
|
+
'',
|
|
30
|
+
'Los campos no expuestos con nombre amigable se pasan en camposAdicionales',
|
|
31
|
+
'con su nombre nativo (ej. COD_TARIFA, CREDITO). Devuelve el cliente creado.',
|
|
32
|
+
].join('\n');
|
|
33
|
+
const UPDATE_DESCRIPTION = [
|
|
34
|
+
'Actualiza un cliente existente (actualización parcial).',
|
|
35
|
+
'',
|
|
36
|
+
'Endpoint: PUT /pgrl/v2/clientes/{idReg}. La tool primero recupera el',
|
|
37
|
+
'cliente actual, aplica encima los campos informados y envía el objeto',
|
|
38
|
+
'completo (el API exige los campos obligatorios en cada PUT). El estado',
|
|
39
|
+
'previo queda en el log de auditoría.',
|
|
40
|
+
].join('\n');
|
|
41
|
+
export function registerClientesTools(server, client, opts = { enableWrites: false }) {
|
|
20
42
|
server.tool(LIST_TOOL_NAME, LIST_DESCRIPTION, PaginationSchema, { readOnlyHint: true, destructiveHint: false, openWorldHint: true }, async ({ page, items }) => {
|
|
21
43
|
try {
|
|
22
44
|
const result = await client.listClientes({ page, items });
|
|
23
|
-
return okList({
|
|
45
|
+
return okList({
|
|
46
|
+
items: result.items,
|
|
47
|
+
total: result.total,
|
|
48
|
+
page,
|
|
49
|
+
itemsPerPage: items,
|
|
50
|
+
});
|
|
24
51
|
}
|
|
25
52
|
catch (err) {
|
|
26
53
|
if (err instanceof FreematicaError)
|
|
@@ -44,5 +71,39 @@ export function registerClientesTools(server, client) {
|
|
|
44
71
|
return error(err instanceof Error ? err : new Error(String(err)));
|
|
45
72
|
}
|
|
46
73
|
});
|
|
74
|
+
if (!opts.enableWrites)
|
|
75
|
+
return;
|
|
76
|
+
server.tool(CREATE_TOOL_NAME, CREATE_DESCRIPTION, CreateClienteShape, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async (args) => {
|
|
77
|
+
try {
|
|
78
|
+
const fields = args;
|
|
79
|
+
const body = buildClienteBody(fields);
|
|
80
|
+
// El API exige idReg también en el alta; se deriva de los códigos naturales.
|
|
81
|
+
body['idReg'] = buildClienteIdReg(fields.grupoCliente, fields.codCliente);
|
|
82
|
+
const created = await client.createCliente(body);
|
|
83
|
+
return ok(created);
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
if (err instanceof FreematicaError)
|
|
87
|
+
return error(err);
|
|
88
|
+
return error(err instanceof Error ? err : new Error(String(err)));
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
server.tool(UPDATE_TOOL_NAME, UPDATE_DESCRIPTION, UpdateClienteShape, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ idReg, ...fields }) => {
|
|
92
|
+
try {
|
|
93
|
+
const changes = buildClienteBody(fields);
|
|
94
|
+
if (Object.keys(changes).length === 0) {
|
|
95
|
+
return error(new Error('Debes informar al menos un campo a actualizar además de idReg.'));
|
|
96
|
+
}
|
|
97
|
+
const current = await client.getCliente(idReg);
|
|
98
|
+
const body = mergeForUpdate(current, changes);
|
|
99
|
+
const updated = await client.updateCliente(idReg, body);
|
|
100
|
+
return ok(updated);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
if (err instanceof FreematicaError)
|
|
104
|
+
return error(err);
|
|
105
|
+
return error(err instanceof Error ? err : new Error(String(err)));
|
|
106
|
+
}
|
|
107
|
+
});
|
|
47
108
|
}
|
|
48
109
|
//# sourceMappingURL=clientes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientes.js","sourceRoot":"","sources":["../../src/tools/clientes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"clientes.js","sourceRoot":"","sources":["../../src/tools/clientes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { FreematicaClient } from '../clients/freematica-client.js';
|
|
3
|
-
|
|
3
|
+
import { type RegisterOptions } from './helpers.js';
|
|
4
|
+
export declare function registerContactosClientesTools(server: McpServer, client: FreematicaClient, opts?: RegisterOptions): void;
|
|
@@ -1,19 +1,73 @@
|
|
|
1
1
|
import { FreematicaError } from '../clients/base-client.js';
|
|
2
2
|
import { PaginationSchema } from '../schemas/pagination.js';
|
|
3
|
-
import {
|
|
3
|
+
import { CreateContactoClienteShape, UpdateContactoClienteShape, buildContactoClienteBody, mergeForUpdate, } from '../schemas/clientes.js';
|
|
4
|
+
import { error, ok, okList } from './helpers.js';
|
|
4
5
|
const LIST_TOOL_NAME = 'freematica_list_contactos_clientes';
|
|
6
|
+
const CREATE_TOOL_NAME = 'freematica_create_contacto_cliente';
|
|
7
|
+
const UPDATE_TOOL_NAME = 'freematica_update_contacto_cliente';
|
|
5
8
|
const LIST_DESCRIPTION = [
|
|
6
9
|
'Devuelve la lista paginada de contactos de clientes (personas asociadas a clientes corporativos).',
|
|
7
10
|
'',
|
|
8
|
-
'Cada item incluye un campo `idReg` opaco (base64)
|
|
11
|
+
'Cada item incluye un campo `idReg` opaco (base64) que se usa en freematica_update_contacto_cliente.',
|
|
9
12
|
'',
|
|
10
13
|
'Paginación 1-indexed.',
|
|
11
14
|
].join('\n');
|
|
12
|
-
|
|
15
|
+
const CREATE_DESCRIPTION = [
|
|
16
|
+
'Da de alta un contacto de cliente.',
|
|
17
|
+
'',
|
|
18
|
+
'Endpoint: POST /pgrl/v2/contactos-clientes — body VoContactosClientes.',
|
|
19
|
+
'Requeridos: grupoCliente y codCliente (el cliente al que pertenece).',
|
|
20
|
+
'Opcionales frecuentes: nombreApellidos, cargo, telefono, movil, email,',
|
|
21
|
+
'contactoPrincipal, decisor. El resto vía camposAdicionales (CC_*).',
|
|
22
|
+
].join('\n');
|
|
23
|
+
const UPDATE_DESCRIPTION = [
|
|
24
|
+
'Actualiza un contacto de cliente existente (actualización parcial).',
|
|
25
|
+
'',
|
|
26
|
+
'Endpoint: PUT /pgrl/v2/contactos-clientes/{idReg}. La tool recupera el',
|
|
27
|
+
'contacto actual, aplica encima los campos informados y envía el objeto',
|
|
28
|
+
'completo. `idReg` sale de freematica_list_contactos_clientes.',
|
|
29
|
+
].join('\n');
|
|
30
|
+
export function registerContactosClientesTools(server, client, opts = { enableWrites: false }) {
|
|
13
31
|
server.tool(LIST_TOOL_NAME, LIST_DESCRIPTION, PaginationSchema, { readOnlyHint: true, destructiveHint: false, openWorldHint: true }, async ({ page, items }) => {
|
|
14
32
|
try {
|
|
15
33
|
const result = await client.listContactosClientes({ page, items });
|
|
16
|
-
return okList({
|
|
34
|
+
return okList({
|
|
35
|
+
items: result.items,
|
|
36
|
+
total: result.total,
|
|
37
|
+
page,
|
|
38
|
+
itemsPerPage: items,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
if (err instanceof FreematicaError)
|
|
43
|
+
return error(err);
|
|
44
|
+
return error(err instanceof Error ? err : new Error(String(err)));
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
if (!opts.enableWrites)
|
|
48
|
+
return;
|
|
49
|
+
server.tool(CREATE_TOOL_NAME, CREATE_DESCRIPTION, CreateContactoClienteShape, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async (args) => {
|
|
50
|
+
try {
|
|
51
|
+
const body = buildContactoClienteBody(args);
|
|
52
|
+
const created = await client.createContactoCliente(body);
|
|
53
|
+
return ok(created);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
if (err instanceof FreematicaError)
|
|
57
|
+
return error(err);
|
|
58
|
+
return error(err instanceof Error ? err : new Error(String(err)));
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
server.tool(UPDATE_TOOL_NAME, UPDATE_DESCRIPTION, UpdateContactoClienteShape, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ idReg, ...fields }) => {
|
|
62
|
+
try {
|
|
63
|
+
const changes = buildContactoClienteBody(fields);
|
|
64
|
+
if (Object.keys(changes).length === 0) {
|
|
65
|
+
return error(new Error('Debes informar al menos un campo a actualizar además de idReg.'));
|
|
66
|
+
}
|
|
67
|
+
const current = await client.getContactoCliente(idReg);
|
|
68
|
+
const body = mergeForUpdate(current, changes);
|
|
69
|
+
const updated = await client.updateContactoCliente(idReg, body);
|
|
70
|
+
return ok(updated);
|
|
17
71
|
}
|
|
18
72
|
catch (err) {
|
|
19
73
|
if (err instanceof FreematicaError)
|