@ampeco/public-api-mcp 0.3.0 → 0.4.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 +61 -0
- package/dist/build/index.js +52 -7
- package/dist/build/index.js.map +1 -1
- package/dist/build/types.d.ts +24 -2
- package/dist/build/types.d.ts.map +1 -1
- package/dist/generated/build-stats.json +7 -1
- package/dist/generated/endpoints.json +9 -3
- package/dist/generated/response-schemas.json +84437 -0
- package/dist/generated/schemas.d.ts +46 -46
- package/dist/server/factory.d.ts +2 -2
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +129 -27
- package/dist/server/factory.js.map +1 -1
- package/dist/server/factory.test.js +5 -5
- package/dist/server/factory.test.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +4 -2
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.js +5 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/loader.d.ts +6 -1
- package/dist/server/loader.d.ts.map +1 -1
- package/dist/server/loader.js +9 -0
- package/dist/server/loader.js.map +1 -1
- package/dist/server/resources/handlers.js +2 -2
- package/dist/server/resources/handlers.js.map +1 -1
- package/dist/server/stdio.d.ts.map +1 -1
- package/dist/server/stdio.js +4 -2
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/utils/response-transformer.d.ts +78 -0
- package/dist/server/utils/response-transformer.d.ts.map +1 -0
- package/dist/server/utils/response-transformer.js +423 -0
- package/dist/server/utils/response-transformer.js.map +1 -0
- package/dist/server/utils/response-transformer.test.d.ts +2 -0
- package/dist/server/utils/response-transformer.test.d.ts.map +1 -0
- package/dist/server/utils/response-transformer.test.js +103 -0
- package/dist/server/utils/response-transformer.test.js.map +1 -0
- package/package.json +2 -1
|
@@ -118,20 +118,20 @@ export declare const chargePointSetChargingProfileBody: z.ZodObject<{
|
|
|
118
118
|
limit: z.ZodNumber;
|
|
119
119
|
numberPhases: z.ZodOptional<z.ZodNumber>;
|
|
120
120
|
}, "strip", z.ZodTypeAny, {
|
|
121
|
-
startPeriod: number;
|
|
122
121
|
limit: number;
|
|
122
|
+
startPeriod: number;
|
|
123
123
|
numberPhases?: number | undefined;
|
|
124
124
|
}, {
|
|
125
|
-
startPeriod: number;
|
|
126
125
|
limit: number;
|
|
126
|
+
startPeriod: number;
|
|
127
127
|
numberPhases?: number | undefined;
|
|
128
128
|
}>, "many">;
|
|
129
129
|
minChargingRate: z.ZodOptional<z.ZodNumber>;
|
|
130
130
|
}, "strip", z.ZodTypeAny, {
|
|
131
131
|
chargingRateUnit: "A" | "W";
|
|
132
132
|
chargingSchedulePeriod: {
|
|
133
|
-
startPeriod: number;
|
|
134
133
|
limit: number;
|
|
134
|
+
startPeriod: number;
|
|
135
135
|
numberPhases?: number | undefined;
|
|
136
136
|
}[];
|
|
137
137
|
id?: number | undefined;
|
|
@@ -141,8 +141,8 @@ export declare const chargePointSetChargingProfileBody: z.ZodObject<{
|
|
|
141
141
|
}, {
|
|
142
142
|
chargingRateUnit: "A" | "W";
|
|
143
143
|
chargingSchedulePeriod: {
|
|
144
|
-
startPeriod: number;
|
|
145
144
|
limit: number;
|
|
145
|
+
startPeriod: number;
|
|
146
146
|
numberPhases?: number | undefined;
|
|
147
147
|
}[];
|
|
148
148
|
id?: number | undefined;
|
|
@@ -157,8 +157,8 @@ export declare const chargePointSetChargingProfileBody: z.ZodObject<{
|
|
|
157
157
|
chargingSchedule: {
|
|
158
158
|
chargingRateUnit: "A" | "W";
|
|
159
159
|
chargingSchedulePeriod: {
|
|
160
|
-
startPeriod: number;
|
|
161
160
|
limit: number;
|
|
161
|
+
startPeriod: number;
|
|
162
162
|
numberPhases?: number | undefined;
|
|
163
163
|
}[];
|
|
164
164
|
id?: number | undefined;
|
|
@@ -177,8 +177,8 @@ export declare const chargePointSetChargingProfileBody: z.ZodObject<{
|
|
|
177
177
|
chargingSchedule: {
|
|
178
178
|
chargingRateUnit: "A" | "W";
|
|
179
179
|
chargingSchedulePeriod: {
|
|
180
|
-
startPeriod: number;
|
|
181
180
|
limit: number;
|
|
181
|
+
startPeriod: number;
|
|
182
182
|
numberPhases?: number | undefined;
|
|
183
183
|
}[];
|
|
184
184
|
id?: number | undefined;
|
|
@@ -234,20 +234,20 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
234
234
|
limit: z.ZodNumber;
|
|
235
235
|
numberPhases: z.ZodOptional<z.ZodNumber>;
|
|
236
236
|
}, "strip", z.ZodTypeAny, {
|
|
237
|
-
startPeriod: number;
|
|
238
237
|
limit: number;
|
|
238
|
+
startPeriod: number;
|
|
239
239
|
numberPhases?: number | undefined;
|
|
240
240
|
}, {
|
|
241
|
-
startPeriod: number;
|
|
242
241
|
limit: number;
|
|
242
|
+
startPeriod: number;
|
|
243
243
|
numberPhases?: number | undefined;
|
|
244
244
|
}>, "many">;
|
|
245
245
|
minChargingRate: z.ZodOptional<z.ZodNumber>;
|
|
246
246
|
}, "strip", z.ZodTypeAny, {
|
|
247
247
|
chargingRateUnit: "A" | "W";
|
|
248
248
|
chargingSchedulePeriod: {
|
|
249
|
-
startPeriod: number;
|
|
250
249
|
limit: number;
|
|
250
|
+
startPeriod: number;
|
|
251
251
|
numberPhases?: number | undefined;
|
|
252
252
|
}[];
|
|
253
253
|
id?: number | undefined;
|
|
@@ -257,8 +257,8 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
257
257
|
}, {
|
|
258
258
|
chargingRateUnit: "A" | "W";
|
|
259
259
|
chargingSchedulePeriod: {
|
|
260
|
-
startPeriod: number;
|
|
261
260
|
limit: number;
|
|
261
|
+
startPeriod: number;
|
|
262
262
|
numberPhases?: number | undefined;
|
|
263
263
|
}[];
|
|
264
264
|
id?: number | undefined;
|
|
@@ -273,8 +273,8 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
273
273
|
chargingSchedule: {
|
|
274
274
|
chargingRateUnit: "A" | "W";
|
|
275
275
|
chargingSchedulePeriod: {
|
|
276
|
-
startPeriod: number;
|
|
277
276
|
limit: number;
|
|
277
|
+
startPeriod: number;
|
|
278
278
|
numberPhases?: number | undefined;
|
|
279
279
|
}[];
|
|
280
280
|
id?: number | undefined;
|
|
@@ -293,8 +293,8 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
293
293
|
chargingSchedule: {
|
|
294
294
|
chargingRateUnit: "A" | "W";
|
|
295
295
|
chargingSchedulePeriod: {
|
|
296
|
-
startPeriod: number;
|
|
297
296
|
limit: number;
|
|
297
|
+
startPeriod: number;
|
|
298
298
|
numberPhases?: number | undefined;
|
|
299
299
|
}[];
|
|
300
300
|
id?: number | undefined;
|
|
@@ -320,8 +320,8 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
320
320
|
chargingSchedule: {
|
|
321
321
|
chargingRateUnit: "A" | "W";
|
|
322
322
|
chargingSchedulePeriod: {
|
|
323
|
-
startPeriod: number;
|
|
324
323
|
limit: number;
|
|
324
|
+
startPeriod: number;
|
|
325
325
|
numberPhases?: number | undefined;
|
|
326
326
|
}[];
|
|
327
327
|
id?: number | undefined;
|
|
@@ -347,8 +347,8 @@ export declare const chargePointStartChargingSessionBody: z.ZodObject<{
|
|
|
347
347
|
chargingSchedule: {
|
|
348
348
|
chargingRateUnit: "A" | "W";
|
|
349
349
|
chargingSchedulePeriod: {
|
|
350
|
-
startPeriod: number;
|
|
351
350
|
limit: number;
|
|
351
|
+
startPeriod: number;
|
|
352
352
|
numberPhases?: number | undefined;
|
|
353
353
|
}[];
|
|
354
354
|
id?: number | undefined;
|
|
@@ -607,20 +607,20 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
607
607
|
limit: z.ZodNumber;
|
|
608
608
|
numberPhases: z.ZodOptional<z.ZodNumber>;
|
|
609
609
|
}, "strip", z.ZodTypeAny, {
|
|
610
|
-
startPeriod: number;
|
|
611
610
|
limit: number;
|
|
611
|
+
startPeriod: number;
|
|
612
612
|
numberPhases?: number | undefined;
|
|
613
613
|
}, {
|
|
614
|
-
startPeriod: number;
|
|
615
614
|
limit: number;
|
|
615
|
+
startPeriod: number;
|
|
616
616
|
numberPhases?: number | undefined;
|
|
617
617
|
}>, "many">;
|
|
618
618
|
minChargingRate: z.ZodOptional<z.ZodNumber>;
|
|
619
619
|
}, "strip", z.ZodTypeAny, {
|
|
620
620
|
chargingRateUnit: "A" | "W";
|
|
621
621
|
chargingSchedulePeriod: {
|
|
622
|
-
startPeriod: number;
|
|
623
622
|
limit: number;
|
|
623
|
+
startPeriod: number;
|
|
624
624
|
numberPhases?: number | undefined;
|
|
625
625
|
}[];
|
|
626
626
|
id?: number | undefined;
|
|
@@ -630,8 +630,8 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
630
630
|
}, {
|
|
631
631
|
chargingRateUnit: "A" | "W";
|
|
632
632
|
chargingSchedulePeriod: {
|
|
633
|
-
startPeriod: number;
|
|
634
633
|
limit: number;
|
|
634
|
+
startPeriod: number;
|
|
635
635
|
numberPhases?: number | undefined;
|
|
636
636
|
}[];
|
|
637
637
|
id?: number | undefined;
|
|
@@ -646,8 +646,8 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
646
646
|
chargingSchedule: {
|
|
647
647
|
chargingRateUnit: "A" | "W";
|
|
648
648
|
chargingSchedulePeriod: {
|
|
649
|
-
startPeriod: number;
|
|
650
649
|
limit: number;
|
|
650
|
+
startPeriod: number;
|
|
651
651
|
numberPhases?: number | undefined;
|
|
652
652
|
}[];
|
|
653
653
|
id?: number | undefined;
|
|
@@ -666,8 +666,8 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
666
666
|
chargingSchedule: {
|
|
667
667
|
chargingRateUnit: "A" | "W";
|
|
668
668
|
chargingSchedulePeriod: {
|
|
669
|
-
startPeriod: number;
|
|
670
669
|
limit: number;
|
|
670
|
+
startPeriod: number;
|
|
671
671
|
numberPhases?: number | undefined;
|
|
672
672
|
}[];
|
|
673
673
|
id?: number | undefined;
|
|
@@ -693,8 +693,8 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
693
693
|
chargingSchedule: {
|
|
694
694
|
chargingRateUnit: "A" | "W";
|
|
695
695
|
chargingSchedulePeriod: {
|
|
696
|
-
startPeriod: number;
|
|
697
696
|
limit: number;
|
|
697
|
+
startPeriod: number;
|
|
698
698
|
numberPhases?: number | undefined;
|
|
699
699
|
}[];
|
|
700
700
|
id?: number | undefined;
|
|
@@ -720,8 +720,8 @@ export declare const evseStartChargingWithEvseIdBody: z.ZodObject<{
|
|
|
720
720
|
chargingSchedule: {
|
|
721
721
|
chargingRateUnit: "A" | "W";
|
|
722
722
|
chargingSchedulePeriod: {
|
|
723
|
-
startPeriod: number;
|
|
724
723
|
limit: number;
|
|
724
|
+
startPeriod: number;
|
|
725
725
|
numberPhases?: number | undefined;
|
|
726
726
|
}[];
|
|
727
727
|
id?: number | undefined;
|
|
@@ -2013,12 +2013,12 @@ export declare const chargePointCreateBody: z.ZodObject<{
|
|
|
2013
2013
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
2014
2014
|
numberPhases: z.ZodOptional<z.ZodNumber>;
|
|
2015
2015
|
}, "strip", z.ZodTypeAny, {
|
|
2016
|
-
startPeriod?: number | undefined;
|
|
2017
2016
|
limit?: number | undefined;
|
|
2017
|
+
startPeriod?: number | undefined;
|
|
2018
2018
|
numberPhases?: number | undefined;
|
|
2019
2019
|
}, {
|
|
2020
|
-
startPeriod?: number | undefined;
|
|
2021
2020
|
limit?: number | undefined;
|
|
2021
|
+
startPeriod?: number | undefined;
|
|
2022
2022
|
numberPhases?: number | undefined;
|
|
2023
2023
|
}>, "many">>;
|
|
2024
2024
|
scheduleStart: z.ZodOptional<z.ZodString>;
|
|
@@ -2042,8 +2042,8 @@ export declare const chargePointCreateBody: z.ZodObject<{
|
|
|
2042
2042
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
2043
2043
|
minChargingRate?: number | undefined;
|
|
2044
2044
|
schedulePeriods?: {
|
|
2045
|
-
startPeriod?: number | undefined;
|
|
2046
2045
|
limit?: number | undefined;
|
|
2046
|
+
startPeriod?: number | undefined;
|
|
2047
2047
|
numberPhases?: number | undefined;
|
|
2048
2048
|
}[] | undefined;
|
|
2049
2049
|
scheduleStart?: string | undefined;
|
|
@@ -2060,8 +2060,8 @@ export declare const chargePointCreateBody: z.ZodObject<{
|
|
|
2060
2060
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
2061
2061
|
minChargingRate?: number | undefined;
|
|
2062
2062
|
schedulePeriods?: {
|
|
2063
|
-
startPeriod?: number | undefined;
|
|
2064
2063
|
limit?: number | undefined;
|
|
2064
|
+
startPeriod?: number | undefined;
|
|
2065
2065
|
numberPhases?: number | undefined;
|
|
2066
2066
|
}[] | undefined;
|
|
2067
2067
|
scheduleStart?: string | undefined;
|
|
@@ -2141,8 +2141,8 @@ export declare const chargePointCreateBody: z.ZodObject<{
|
|
|
2141
2141
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
2142
2142
|
minChargingRate?: number | undefined;
|
|
2143
2143
|
schedulePeriods?: {
|
|
2144
|
-
startPeriod?: number | undefined;
|
|
2145
2144
|
limit?: number | undefined;
|
|
2145
|
+
startPeriod?: number | undefined;
|
|
2146
2146
|
numberPhases?: number | undefined;
|
|
2147
2147
|
}[] | undefined;
|
|
2148
2148
|
scheduleStart?: string | undefined;
|
|
@@ -2238,8 +2238,8 @@ export declare const chargePointCreateBody: z.ZodObject<{
|
|
|
2238
2238
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
2239
2239
|
minChargingRate?: number | undefined;
|
|
2240
2240
|
schedulePeriods?: {
|
|
2241
|
-
startPeriod?: number | undefined;
|
|
2242
2241
|
limit?: number | undefined;
|
|
2242
|
+
startPeriod?: number | undefined;
|
|
2243
2243
|
numberPhases?: number | undefined;
|
|
2244
2244
|
}[] | undefined;
|
|
2245
2245
|
scheduleStart?: string | undefined;
|
|
@@ -4446,12 +4446,12 @@ export declare const evseUpdateDeprecatedBody: z.ZodObject<{
|
|
|
4446
4446
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
4447
4447
|
numberPhases: z.ZodOptional<z.ZodNumber>;
|
|
4448
4448
|
}, "strip", z.ZodTypeAny, {
|
|
4449
|
-
startPeriod?: number | undefined;
|
|
4450
4449
|
limit?: number | undefined;
|
|
4450
|
+
startPeriod?: number | undefined;
|
|
4451
4451
|
numberPhases?: number | undefined;
|
|
4452
4452
|
}, {
|
|
4453
|
-
startPeriod?: number | undefined;
|
|
4454
4453
|
limit?: number | undefined;
|
|
4454
|
+
startPeriod?: number | undefined;
|
|
4455
4455
|
numberPhases?: number | undefined;
|
|
4456
4456
|
}>, "many">>;
|
|
4457
4457
|
scheduleStart: z.ZodOptional<z.ZodString>;
|
|
@@ -4475,8 +4475,8 @@ export declare const evseUpdateDeprecatedBody: z.ZodObject<{
|
|
|
4475
4475
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
4476
4476
|
minChargingRate?: number | undefined;
|
|
4477
4477
|
schedulePeriods?: {
|
|
4478
|
-
startPeriod?: number | undefined;
|
|
4479
4478
|
limit?: number | undefined;
|
|
4479
|
+
startPeriod?: number | undefined;
|
|
4480
4480
|
numberPhases?: number | undefined;
|
|
4481
4481
|
}[] | undefined;
|
|
4482
4482
|
scheduleStart?: string | undefined;
|
|
@@ -4493,8 +4493,8 @@ export declare const evseUpdateDeprecatedBody: z.ZodObject<{
|
|
|
4493
4493
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
4494
4494
|
minChargingRate?: number | undefined;
|
|
4495
4495
|
schedulePeriods?: {
|
|
4496
|
-
startPeriod?: number | undefined;
|
|
4497
4496
|
limit?: number | undefined;
|
|
4497
|
+
startPeriod?: number | undefined;
|
|
4498
4498
|
numberPhases?: number | undefined;
|
|
4499
4499
|
}[] | undefined;
|
|
4500
4500
|
scheduleStart?: string | undefined;
|
|
@@ -4565,8 +4565,8 @@ export declare const evseUpdateDeprecatedBody: z.ZodObject<{
|
|
|
4565
4565
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
4566
4566
|
minChargingRate?: number | undefined;
|
|
4567
4567
|
schedulePeriods?: {
|
|
4568
|
-
startPeriod?: number | undefined;
|
|
4569
4568
|
limit?: number | undefined;
|
|
4569
|
+
startPeriod?: number | undefined;
|
|
4570
4570
|
numberPhases?: number | undefined;
|
|
4571
4571
|
}[] | undefined;
|
|
4572
4572
|
scheduleStart?: string | undefined;
|
|
@@ -4612,8 +4612,8 @@ export declare const evseUpdateDeprecatedBody: z.ZodObject<{
|
|
|
4612
4612
|
chargingRateUnit?: "A" | "W" | undefined;
|
|
4613
4613
|
minChargingRate?: number | undefined;
|
|
4614
4614
|
schedulePeriods?: {
|
|
4615
|
-
startPeriod?: number | undefined;
|
|
4616
4615
|
limit?: number | undefined;
|
|
4616
|
+
startPeriod?: number | undefined;
|
|
4617
4617
|
numberPhases?: number | undefined;
|
|
4618
4618
|
}[] | undefined;
|
|
4619
4619
|
scheduleStart?: string | undefined;
|
|
@@ -7725,12 +7725,12 @@ export declare const partnerSettlementReportPartnerSettlementRecordCreateBody: z
|
|
|
7725
7725
|
note: z.ZodString;
|
|
7726
7726
|
}, "strip", z.ZodTypeAny, {
|
|
7727
7727
|
date: string;
|
|
7728
|
-
paidAmount: number;
|
|
7729
7728
|
note: string;
|
|
7729
|
+
paidAmount: number;
|
|
7730
7730
|
}, {
|
|
7731
7731
|
date: string;
|
|
7732
|
-
paidAmount: number;
|
|
7733
7732
|
note: string;
|
|
7733
|
+
paidAmount: number;
|
|
7734
7734
|
}>;
|
|
7735
7735
|
export declare const partnerSettlementReportPartnerSettlementRecordUpdateBody: z.ZodObject<{
|
|
7736
7736
|
date: z.ZodString;
|
|
@@ -7738,12 +7738,12 @@ export declare const partnerSettlementReportPartnerSettlementRecordUpdateBody: z
|
|
|
7738
7738
|
note: z.ZodString;
|
|
7739
7739
|
}, "strip", z.ZodTypeAny, {
|
|
7740
7740
|
date: string;
|
|
7741
|
-
paidAmount: number;
|
|
7742
7741
|
note: string;
|
|
7742
|
+
paidAmount: number;
|
|
7743
7743
|
}, {
|
|
7744
7744
|
date: string;
|
|
7745
|
-
paidAmount: number;
|
|
7746
7745
|
note: string;
|
|
7746
|
+
paidAmount: number;
|
|
7747
7747
|
}>;
|
|
7748
7748
|
export declare const partnerCreateDeprecatedBody: z.ZodObject<{
|
|
7749
7749
|
id: z.ZodOptional<z.ZodNumber>;
|
|
@@ -10583,7 +10583,7 @@ export declare const tariffCreateBody: z.ZodObject<{
|
|
|
10583
10583
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
10584
10584
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
10585
10585
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
10586
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
10586
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
10587
10587
|
averagePowerIdleThreshold?: number | undefined;
|
|
10588
10588
|
}, {
|
|
10589
10589
|
pricePerSession?: number | undefined;
|
|
@@ -10702,7 +10702,7 @@ export declare const tariffCreateBody: z.ZodObject<{
|
|
|
10702
10702
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
10703
10703
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
10704
10704
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
10705
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
10705
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
10706
10706
|
averagePowerIdleThreshold?: number | undefined;
|
|
10707
10707
|
}>>;
|
|
10708
10708
|
currency: z.ZodOptional<z.ZodString>;
|
|
@@ -10927,7 +10927,7 @@ export declare const tariffCreateBody: z.ZodObject<{
|
|
|
10927
10927
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
10928
10928
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
10929
10929
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
10930
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
10930
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
10931
10931
|
averagePowerIdleThreshold?: number | undefined;
|
|
10932
10932
|
} | undefined;
|
|
10933
10933
|
stopSession?: {
|
|
@@ -11086,7 +11086,7 @@ export declare const tariffCreateBody: z.ZodObject<{
|
|
|
11086
11086
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
11087
11087
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
11088
11088
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
11089
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
11089
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
11090
11090
|
averagePowerIdleThreshold?: number | undefined;
|
|
11091
11091
|
} | undefined;
|
|
11092
11092
|
stopSession?: {
|
|
@@ -11547,7 +11547,7 @@ export declare const tariffUpdateBody: z.ZodObject<{
|
|
|
11547
11547
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
11548
11548
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
11549
11549
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
11550
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
11550
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
11551
11551
|
averagePowerIdleThreshold?: number | undefined;
|
|
11552
11552
|
}, {
|
|
11553
11553
|
pricePerSession?: number | undefined;
|
|
@@ -11666,7 +11666,7 @@ export declare const tariffUpdateBody: z.ZodObject<{
|
|
|
11666
11666
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
11667
11667
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
11668
11668
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
11669
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
11669
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
11670
11670
|
averagePowerIdleThreshold?: number | undefined;
|
|
11671
11671
|
}>>;
|
|
11672
11672
|
currency: z.ZodOptional<z.ZodString>;
|
|
@@ -11891,7 +11891,7 @@ export declare const tariffUpdateBody: z.ZodObject<{
|
|
|
11891
11891
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
11892
11892
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
11893
11893
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
11894
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
11894
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
11895
11895
|
averagePowerIdleThreshold?: number | undefined;
|
|
11896
11896
|
} | undefined;
|
|
11897
11897
|
stopSession?: {
|
|
@@ -12050,7 +12050,7 @@ export declare const tariffUpdateBody: z.ZodObject<{
|
|
|
12050
12050
|
lockEnergyPriceOnSessionStart?: boolean | undefined;
|
|
12051
12051
|
lockDurationPriceOnSessionStart?: boolean | undefined;
|
|
12052
12052
|
lockIdlePriceOnSessionStart?: boolean | undefined;
|
|
12053
|
-
stateOfChargeIdleThreshold?: 100 |
|
|
12053
|
+
stateOfChargeIdleThreshold?: 100 | 75 | 95 | 90 | 80 | 85 | undefined;
|
|
12054
12054
|
averagePowerIdleThreshold?: number | undefined;
|
|
12055
12055
|
} | undefined;
|
|
12056
12056
|
stopSession?: {
|
package/dist/server/factory.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Creates and configures MCP server instances with shared logic for resources, tools, and prompts
|
|
4
4
|
*/
|
|
5
5
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
6
|
-
import type { BuildOutput } from '../build/types.js';
|
|
6
|
+
import type { BuildOutput, ResponseSchemaMap } from '../build/types.js';
|
|
7
7
|
import type { ServerOptions } from './types.js';
|
|
8
8
|
/**
|
|
9
9
|
* Create and configure the MCP server
|
|
10
10
|
*/
|
|
11
|
-
export declare function createServer(endpoints: BuildOutput, options: ServerOptions): McpServer;
|
|
11
|
+
export declare function createServer(endpoints: BuildOutput, responseSchemas: ResponseSchemaMap, options: ServerOptions): McpServer;
|
|
12
12
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBhD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,WAAW,EACtB,eAAe,EAAE,iBAAiB,EAClC,OAAO,EAAE,aAAa,GACrB,SAAS,CA2aX"}
|
package/dist/server/factory.js
CHANGED
|
@@ -10,11 +10,32 @@ import { getPromptContent } from './prompts.js';
|
|
|
10
10
|
import { getNativeResourceInstructions, getToolEmulationInstructions } from './instructions.js';
|
|
11
11
|
import { registerNativeResources } from './resources/native.js';
|
|
12
12
|
import { registerEmulationTools } from './resources/tools.js';
|
|
13
|
+
import { transformResponse } from './utils/response-transformer.js';
|
|
14
|
+
/**
|
|
15
|
+
* Helper to get response schema for an endpoint
|
|
16
|
+
*/
|
|
17
|
+
function getResponseSchema(responseSchemas, operationId, statusCode) {
|
|
18
|
+
if (!operationId || !responseSchemas[operationId]) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return responseSchemas[operationId][statusCode]?.schema || null;
|
|
22
|
+
}
|
|
13
23
|
/**
|
|
14
24
|
* Create and configure the MCP server
|
|
15
25
|
*/
|
|
16
|
-
export function createServer(endpoints, options) {
|
|
26
|
+
export function createServer(endpoints, responseSchemas, options) {
|
|
17
27
|
const { hostname, bearerToken, emulateResourcesViaTools = false, } = options;
|
|
28
|
+
// Validate hostname
|
|
29
|
+
if (!hostname) {
|
|
30
|
+
throw new Error('Hostname is required but was not provided');
|
|
31
|
+
}
|
|
32
|
+
// Validate hostname is a valid URL
|
|
33
|
+
try {
|
|
34
|
+
new URL(hostname);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(`Invalid hostname URL: ${hostname}`);
|
|
38
|
+
}
|
|
18
39
|
const server = new McpServer({
|
|
19
40
|
name: 'public-api-mcp',
|
|
20
41
|
version: '0.1.0',
|
|
@@ -39,15 +60,60 @@ export function createServer(endpoints, options) {
|
|
|
39
60
|
// Register the API request tool
|
|
40
61
|
server.tool('api_request', `Make an authenticated HTTP request to any active API endpoint from the OpenAPI specification. Deprecated endpoints cannot be called and will return an error. Authentication is handled automatically using the Bearer token from the MCP request. The target API hostname is: ${hostname}
|
|
41
62
|
|
|
42
|
-
|
|
63
|
+
**Smart Response Transformation** (Enabled by Default):
|
|
64
|
+
When responses are large (>20KB), automatic transformation is applied to:
|
|
65
|
+
- Preserve ALL pagination metadata (cursor, total, hasMore, nextPage)
|
|
66
|
+
- Provide statistical summaries (min, max, avg, median, percentiles)
|
|
67
|
+
- Include categorical distributions (status counts, type breakdowns)
|
|
68
|
+
- Sample representative items for context
|
|
69
|
+
|
|
70
|
+
This ensures you can:
|
|
71
|
+
✓ Navigate paginated results reliably
|
|
72
|
+
✓ Understand data distributions without loading all items
|
|
73
|
+
✓ Make data-driven decisions with statistical insights
|
|
74
|
+
✓ Reduce token consumption by 80-95% for large responses
|
|
75
|
+
|
|
76
|
+
Field types are automatically detected from OpenAPI schemas (zero configuration required).
|
|
77
|
+
|
|
78
|
+
To disable transformation: Set transform_response=false
|
|
79
|
+
|
|
80
|
+
**Pagination Best Practice**:
|
|
81
|
+
Always prefer cursor-based pagination when available. For list endpoints that support both offset and cursor pagination, include an empty "cursor" query parameter (cursor="") in your initial request to engage cursor-based pagination.`, {
|
|
43
82
|
endpoint: z.string().describe('The API endpoint path (e.g., "/users/{id}")'),
|
|
44
83
|
method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS']).describe('HTTP method'),
|
|
45
84
|
path_params: z.preprocess((val) => (val === null || val === undefined || val === '' ? {} : val), z.record(z.any()).default({})).optional().describe('Path parameter values as key-value pairs (optional)'),
|
|
46
85
|
query_params: z.preprocess((val) => (val === null || val === undefined || val === '' ? {} : val), z.record(z.any()).default({})).optional().describe('Query string parameters as key-value pairs (optional)'),
|
|
47
86
|
body: z.preprocess((val) => (val === null || val === undefined || val === '' ? undefined : val), z.any()).optional().describe('Request body for POST/PUT/PATCH requests (optional)'),
|
|
48
87
|
headers: z.preprocess((val) => (val === null || val === undefined || val === '' ? {} : val), z.record(z.string()).default({})).optional().describe('Additional HTTP headers (optional)'),
|
|
88
|
+
// NEW: Smart transformation parameters
|
|
89
|
+
transform_response: z.boolean()
|
|
90
|
+
.default(true)
|
|
91
|
+
.optional()
|
|
92
|
+
.describe('Enable smart response transformation for large responses. When enabled, large array-based responses ' +
|
|
93
|
+
'are automatically transformed to include: (1) pagination metadata, (2) statistical summaries ' +
|
|
94
|
+
'(min/max/avg/distribution), and (3) sample items. This dramatically reduces token usage while ' +
|
|
95
|
+
'preserving critical navigation and analytical information. Default: true'),
|
|
96
|
+
transform_options: z.object({
|
|
97
|
+
maxResponseSize: z.number()
|
|
98
|
+
.min(1000)
|
|
99
|
+
.max(1000000)
|
|
100
|
+
.optional()
|
|
101
|
+
.describe('Maximum response size in bytes before transformation is applied (default: 20000, range: 1000-1000000)'),
|
|
102
|
+
sampleSize: z.number()
|
|
103
|
+
.int()
|
|
104
|
+
.min(1)
|
|
105
|
+
.max(20)
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Number of sample items to include in transformed response (default: 5, range: 1-20)'),
|
|
108
|
+
computeStats: z.boolean()
|
|
109
|
+
.optional()
|
|
110
|
+
.describe('Whether to compute numeric statistics and categorical distributions (default: true)'),
|
|
111
|
+
includeDistribution: z.boolean()
|
|
112
|
+
.optional()
|
|
113
|
+
.describe('Whether to include categorical field distributions (default: true)'),
|
|
114
|
+
}).optional().describe('Advanced transformation options (optional). Field selection is automatic via OpenAPI schema detection.'),
|
|
49
115
|
}, async (args) => {
|
|
50
|
-
const { endpoint, method, path_params = {}, query_params = {}, body, headers = {}, } = args;
|
|
116
|
+
const { endpoint, method, path_params = {}, query_params = {}, body, headers = {}, transform_response = true, transform_options = {}, } = args;
|
|
51
117
|
// Check if endpoint is deprecated
|
|
52
118
|
const endpointDef = endpoints.endpoints.find((e) => e.path === endpoint && e.method.toUpperCase() === method.toUpperCase());
|
|
53
119
|
if (endpointDef?.deprecated) {
|
|
@@ -111,38 +177,74 @@ IMPORTANT - Pagination: Always prefer cursor-based pagination when available. Fo
|
|
|
111
177
|
}
|
|
112
178
|
// Log the response
|
|
113
179
|
console.error(`[API Response] ${response.status} ${response.statusText}`);
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
180
|
+
// NEW: Apply smart transformation if enabled
|
|
181
|
+
let finalResponse;
|
|
182
|
+
if (transform_response && responseBody && typeof responseBody === "object") {
|
|
183
|
+
// Smart 2XX response schema selection
|
|
184
|
+
let responseSchema = null;
|
|
185
|
+
const statusCode = response.status.toString();
|
|
186
|
+
// Try exact status code first
|
|
187
|
+
responseSchema = getResponseSchema(responseSchemas, endpointDef?.operationId, statusCode);
|
|
188
|
+
// Fallback: try common success codes in priority order
|
|
189
|
+
if (!responseSchema) {
|
|
190
|
+
const successCodes = ["200", "201", "202", "204", "2XX", "default"];
|
|
191
|
+
for (const code of successCodes) {
|
|
192
|
+
responseSchema = getResponseSchema(responseSchemas, endpointDef?.operationId, code);
|
|
193
|
+
if (responseSchema) {
|
|
194
|
+
console.error(`[Transformer] Using schema for status ${code} (fallback from ${statusCode})`);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.error(`[Transformer] Using schema for status ${statusCode}`);
|
|
201
|
+
}
|
|
202
|
+
if (!responseSchema) {
|
|
203
|
+
console.error(`[Transformer] No schema found for ${method} ${endpoint} ` +
|
|
204
|
+
`(operationId: ${endpointDef?.operationId}, status: ${statusCode})`);
|
|
131
205
|
}
|
|
132
|
-
//
|
|
133
|
-
|
|
206
|
+
// Apply transformation
|
|
207
|
+
const transformResult = transformResponse(responseBody, {
|
|
208
|
+
...transform_options,
|
|
209
|
+
enabled: true,
|
|
210
|
+
}, responseSchema // Pass the selected schema
|
|
211
|
+
);
|
|
212
|
+
finalResponse = {
|
|
213
|
+
...transformResult,
|
|
214
|
+
};
|
|
215
|
+
// Log transformation results
|
|
216
|
+
if (transformResult.data._transformation.applied) {
|
|
217
|
+
const reduction = (((transformResult.data._transformation.originalSize -
|
|
218
|
+
transformResult.data._transformation.transformedSize) /
|
|
219
|
+
transformResult.data._transformation.originalSize) *
|
|
220
|
+
100).toFixed(1);
|
|
221
|
+
console.error(`[Transformer] Applied transformation: ${transformResult.data._transformation.originalSize} → ` +
|
|
222
|
+
`${transformResult.data._transformation.transformedSize} bytes (${reduction}% reduction)`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
finalResponse = {
|
|
227
|
+
status: response.status,
|
|
228
|
+
body: responseBody,
|
|
229
|
+
};
|
|
134
230
|
}
|
|
135
|
-
|
|
231
|
+
let responseText = JSON.stringify(finalResponse, null, 2);
|
|
232
|
+
// Fallback truncation (should rarely trigger now)
|
|
233
|
+
const MAX_RESPONSE_LENGTH = 50000; // Increased since transformation reduces size
|
|
234
|
+
if (responseText.length > MAX_RESPONSE_LENGTH) {
|
|
235
|
+
console.error(`[Warning] Response still exceeds limit after transformation ` +
|
|
236
|
+
`(${responseText.length} chars, status ${response.status})`);
|
|
237
|
+
responseText = responseText.substring(0, MAX_RESPONSE_LENGTH) + "\n\n... [Response truncated]";
|
|
238
|
+
}
|
|
239
|
+
// Return structured response
|
|
240
|
+
return {
|
|
136
241
|
content: [
|
|
137
242
|
{
|
|
138
|
-
type:
|
|
243
|
+
type: "text",
|
|
139
244
|
text: responseText,
|
|
140
245
|
},
|
|
141
246
|
],
|
|
142
247
|
};
|
|
143
|
-
console.error(`[Tool Response] Returning response with ${responseText.length} characters${wasTruncated ? ' (truncated)' : ''}`);
|
|
144
|
-
// Return structured response
|
|
145
|
-
return toolResponse;
|
|
146
248
|
}
|
|
147
249
|
catch (error) {
|
|
148
250
|
const errorMessage = error instanceof Error ? error.message : String(error);
|