@ampeco/public-api-mcp 0.2.2 → 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.
Files changed (76) hide show
  1. package/README.md +296 -4
  2. package/dist/build/index.js +52 -7
  3. package/dist/build/index.js.map +1 -1
  4. package/dist/build/optimizer.d.ts.map +1 -1
  5. package/dist/build/optimizer.js +82 -21
  6. package/dist/build/optimizer.js.map +1 -1
  7. package/dist/build/parser.d.ts.map +1 -1
  8. package/dist/build/parser.js +74 -1
  9. package/dist/build/parser.js.map +1 -1
  10. package/dist/build/types.d.ts +24 -2
  11. package/dist/build/types.d.ts.map +1 -1
  12. package/dist/cli/index.js +25 -11
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/generated/build-stats.json +11 -5
  15. package/dist/generated/endpoints.json +29219 -20895
  16. package/dist/generated/response-schemas.json +84437 -0
  17. package/dist/generated/schemas.d.ts +7157 -2416
  18. package/dist/generated/schemas.d.ts.map +1 -1
  19. package/dist/generated/schemas.js +1443 -590
  20. package/dist/generated/schemas.js.map +1 -1
  21. package/dist/generated/schemas.ts +1447 -596
  22. package/dist/server/factory.d.ts +3 -2
  23. package/dist/server/factory.d.ts.map +1 -1
  24. package/dist/server/factory.js +144 -231
  25. package/dist/server/factory.js.map +1 -1
  26. package/dist/server/factory.test.js +62 -4
  27. package/dist/server/factory.test.js.map +1 -1
  28. package/dist/server/http.d.ts +2 -1
  29. package/dist/server/http.d.ts.map +1 -1
  30. package/dist/server/http.js +11 -3
  31. package/dist/server/http.js.map +1 -1
  32. package/dist/server/index.d.ts +2 -0
  33. package/dist/server/index.d.ts.map +1 -1
  34. package/dist/server/index.js +12 -1388
  35. package/dist/server/index.js.map +1 -1
  36. package/dist/server/instructions.d.ts +13 -0
  37. package/dist/server/instructions.d.ts.map +1 -0
  38. package/dist/server/instructions.js +146 -0
  39. package/dist/server/instructions.js.map +1 -0
  40. package/dist/server/loader.d.ts +6 -1
  41. package/dist/server/loader.d.ts.map +1 -1
  42. package/dist/server/loader.js +9 -0
  43. package/dist/server/loader.js.map +1 -1
  44. package/dist/server/resources/handlers.d.ts +31 -0
  45. package/dist/server/resources/handlers.d.ts.map +1 -0
  46. package/dist/server/resources/handlers.js +113 -0
  47. package/dist/server/resources/handlers.js.map +1 -0
  48. package/dist/server/resources/handlers.test.d.ts +6 -0
  49. package/dist/server/resources/handlers.test.d.ts.map +1 -0
  50. package/dist/server/resources/handlers.test.js +203 -0
  51. package/dist/server/resources/handlers.test.js.map +1 -0
  52. package/dist/server/resources/native.d.ts +11 -0
  53. package/dist/server/resources/native.d.ts.map +1 -0
  54. package/dist/server/resources/native.js +31 -0
  55. package/dist/server/resources/native.js.map +1 -0
  56. package/dist/server/resources/tools.d.ts +11 -0
  57. package/dist/server/resources/tools.d.ts.map +1 -0
  58. package/dist/server/resources/tools.js +41 -0
  59. package/dist/server/resources/tools.js.map +1 -0
  60. package/dist/server/stdio.d.ts +2 -1
  61. package/dist/server/stdio.d.ts.map +1 -1
  62. package/dist/server/stdio.js +11 -3
  63. package/dist/server/stdio.js.map +1 -1
  64. package/dist/server/types.d.ts +36 -0
  65. package/dist/server/types.d.ts.map +1 -0
  66. package/dist/server/types.js +6 -0
  67. package/dist/server/types.js.map +1 -0
  68. package/dist/server/utils/response-transformer.d.ts +78 -0
  69. package/dist/server/utils/response-transformer.d.ts.map +1 -0
  70. package/dist/server/utils/response-transformer.js +423 -0
  71. package/dist/server/utils/response-transformer.js.map +1 -0
  72. package/dist/server/utils/response-transformer.test.d.ts +2 -0
  73. package/dist/server/utils/response-transformer.test.d.ts.map +1 -0
  74. package/dist/server/utils/response-transformer.test.js +103 -0
  75. package/dist/server/utils/response-transformer.test.js.map +1 -0
  76. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.test.js","sourceRoot":"","sources":["../../../src/server/resources/handlers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Native MCP resources registration
3
+ * Uses the shared ResourceHandler to avoid code duplication
4
+ */
5
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import type { BuildOutput } from '../../build/types.js';
7
+ /**
8
+ * Register native MCP resources using the shared ResourceHandler
9
+ */
10
+ export declare function registerNativeResources(server: McpServer, endpoints: BuildOutput): void;
11
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/server/resources/native.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAuBvF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Native MCP resources registration
3
+ * Uses the shared ResourceHandler to avoid code duplication
4
+ */
5
+ import { ListResourcesRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
6
+ import { ResourceHandler } from './handlers.js';
7
+ /**
8
+ * Register native MCP resources using the shared ResourceHandler
9
+ */
10
+ export function registerNativeResources(server, endpoints) {
11
+ const handler = new ResourceHandler(endpoints);
12
+ // Register resources/list handler - delegates to shared handler
13
+ server.server.setRequestHandler(ListResourcesRequestSchema, async () => {
14
+ const resources = handler.listTags();
15
+ return { resources };
16
+ });
17
+ // Register resources/read handler - delegates to shared handler
18
+ server.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
19
+ const data = handler.readResource(request.params.uri);
20
+ return {
21
+ contents: [
22
+ {
23
+ uri: request.params.uri,
24
+ mimeType: 'application/json',
25
+ text: JSON.stringify(data, null, 2),
26
+ },
27
+ ],
28
+ };
29
+ });
30
+ }
31
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/server/resources/native.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,SAAsB;IAC/E,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAE/C,gEAAgE;IAChE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;oBACvB,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tool emulation for MCP resources
3
+ * Uses the shared ResourceHandler to avoid code duplication
4
+ */
5
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
+ import type { BuildOutput } from '../../build/types.js';
7
+ /**
8
+ * Register tool emulation using the shared ResourceHandler
9
+ */
10
+ export declare function registerEmulationTools(server: McpServer, endpoints: BuildOutput): void;
11
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/server/resources/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CA4CtF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Tool emulation for MCP resources
3
+ * Uses the shared ResourceHandler to avoid code duplication
4
+ */
5
+ import { z } from 'zod';
6
+ import { ResourceHandler } from './handlers.js';
7
+ /**
8
+ * Register tool emulation using the shared ResourceHandler
9
+ */
10
+ export function registerEmulationTools(server, endpoints) {
11
+ const handler = new ResourceHandler(endpoints);
12
+ // Tool 1: list_resources - delegates to shared handler
13
+ server.tool('list_resources', 'List all available API tags. This emulates the native MCP resources/list functionality. Returns a list of tags that group related endpoints together (e.g., Users, ChargingSessions, Connectors). Each tag can then be read using the read_resource tool with tag:// URIs.', {
14
+ // No parameters - always returns all tags
15
+ }, async () => {
16
+ const resources = handler.listTags();
17
+ return {
18
+ content: [
19
+ {
20
+ type: 'text',
21
+ text: JSON.stringify({ resources }, null, 2),
22
+ },
23
+ ],
24
+ };
25
+ });
26
+ // Tool 2: read_resource - delegates to shared handler
27
+ server.tool('read_resource', 'Read a specific resource by URI. This emulates the native MCP resources/read functionality. Supports two URI formats: tag://{TagName} to read all endpoints within a tag, and api://{METHOD}{path} to read detailed endpoint specifications. You MUST use this tool to read endpoint definitions before calling api_request.', {
28
+ uri: z.string().describe('The resource URI to read. Format: tag://{TagName} or api://{METHOD}{path}. Examples: "tag://Users", "api://GET/users/{id}", "api://POST/charging-sessions"'),
29
+ }, async (args) => {
30
+ const data = handler.readResource(args.uri);
31
+ return {
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: JSON.stringify(data, null, 2),
36
+ },
37
+ ],
38
+ };
39
+ });
40
+ }
41
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/server/resources/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,SAAsB;IAC9E,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAE/C,uDAAuD;IACvD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,4QAA4Q,EAC5Q;IACE,0CAA0C;KAC3C,EACD,KAAK,IAAI,EAAE;QACT,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAErC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,IAAI,CACT,eAAe,EACf,8TAA8T,EAC9T;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;KACvL,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -2,9 +2,10 @@
2
2
  * Stdio MCP Server
3
3
  * Runs MCP server with stdio transport for local integrations (Claude Desktop, NPX, etc.)
4
4
  */
5
+ import type { StdioServerOptions } from './types.js';
5
6
  /**
6
7
  * Start MCP server in stdio mode
7
8
  * Uses stdin/stdout for communication with MCP clients
8
9
  */
9
- export declare function startStdioServer(bearerToken: string, hostname: string): Promise<void>;
10
+ export declare function startStdioServer(options: StdioServerOptions): Promise<void>;
10
11
  //# sourceMappingURL=stdio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -4,20 +4,28 @@
4
4
  */
5
5
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
6
6
  import { createServer } from './factory.js';
7
- import { loadEndpoints } from './loader.js';
7
+ import { loadEndpoints, loadResponseSchemas } from './loader.js';
8
8
  /**
9
9
  * Start MCP server in stdio mode
10
10
  * Uses stdin/stdout for communication with MCP clients
11
11
  */
12
- export async function startStdioServer(bearerToken, hostname) {
12
+ export async function startStdioServer(options) {
13
+ const { bearerToken, hostname, emulateResourcesViaTools = false, } = options;
13
14
  console.error('[Stdio Mode] Starting MCP server...');
14
15
  const endpoints = loadEndpoints();
15
16
  console.error(`[Stdio Mode] Loaded ${endpoints.endpoints.length} endpoints from ${endpoints.info.title} v${endpoints.info.version}`);
16
- const server = createServer(endpoints, bearerToken, hostname);
17
+ const responseSchemas = loadResponseSchemas();
18
+ console.error(`[Stdio Mode] Loaded ${Object.keys(responseSchemas).length} response schemas`);
19
+ const server = createServer(endpoints, responseSchemas, {
20
+ hostname,
21
+ bearerToken,
22
+ emulateResourcesViaTools,
23
+ });
17
24
  const transport = new StdioServerTransport();
18
25
  await server.connect(transport);
19
26
  console.error('[Stdio Mode] Server connected and ready');
20
27
  console.error(`[Stdio Mode] Target API: ${hostname}`);
28
+ console.error(`[Stdio Mode] Resource mode: ${emulateResourcesViaTools ? 'Tool Emulation' : 'Native Resources'}`);
21
29
  console.error(`[Stdio Mode] Bearer token: ${bearerToken ? 'provided' : 'not provided'}`);
22
30
  // Keep process alive
23
31
  process.stdin.resume();
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,QAAgB;IAEhB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,CAAC,SAAS,CAAC,MAAM,mBAAmB,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAErI,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,8BAA8B,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA2B;IAE3B,MAAM,EACJ,WAAW,EACX,QAAQ,EACR,wBAAwB,GAAG,KAAK,GACjC,GAAG,OAAO,CAAC;IAEZ,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,CAAC,SAAS,CAAC,MAAM,mBAAmB,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAErI,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE;QACtD,QAAQ;QACR,WAAW;QACX,wBAAwB;KACzB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,+BAA+B,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,KAAK,CAAC,8BAA8B,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Server Configuration Types
3
+ * Defines options interfaces for server creation and startup functions
4
+ */
5
+ /**
6
+ * Options for creating an MCP server instance
7
+ */
8
+ export interface ServerOptions {
9
+ /** API hostname to proxy requests to */
10
+ hostname: string;
11
+ /** Bearer token for authentication */
12
+ bearerToken: string;
13
+ /** Emulate resources via tools instead of native MCP resources */
14
+ emulateResourcesViaTools?: boolean;
15
+ }
16
+ /**
17
+ * Options for starting the MCP server in stdio mode
18
+ */
19
+ export interface StdioServerOptions {
20
+ /** Bearer token for API authentication */
21
+ bearerToken: string;
22
+ /** Target API hostname */
23
+ hostname: string;
24
+ /** Emulate resources via tools instead of native MCP resources */
25
+ emulateResourcesViaTools?: boolean;
26
+ }
27
+ /**
28
+ * Options for starting the MCP server in HTTP mode
29
+ */
30
+ export interface HttpServerOptions {
31
+ /** Port to listen on */
32
+ port: number;
33
+ /** Emulate resources via tools instead of native MCP resources (for all requests) */
34
+ emulateResourcesViaTools?: boolean;
35
+ }
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAMpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAKpC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAMpC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Server Configuration Types
3
+ * Defines options interfaces for server creation and startup functions
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Response transformation utilities for handling large API responses
3
+ *
4
+ * This module implements schema-driven smart response transformation to:
5
+ * - Preserve critical pagination metadata
6
+ * - Provide statistical summaries (min/max/sum/avg/median/percentiles)
7
+ * - Include categorical distributions
8
+ * - Sample representative items
9
+ * - Dramatically reduce token usage (80-95% for large responses)
10
+ */
11
+ export interface TransformOptions {
12
+ /** Maximum response size before transformation (default: 20000) */
13
+ maxResponseSize?: number;
14
+ /** Number of sample items to include (default: 5) */
15
+ sampleSize?: number;
16
+ /** Whether to compute statistics (default: true) */
17
+ computeStats?: boolean;
18
+ /** Whether to include distribution analysis (default: true) */
19
+ includeDistribution?: boolean;
20
+ /** Enable transformation (can be disabled for backward compatibility) */
21
+ enabled?: boolean;
22
+ }
23
+ export interface TransformedResponse {
24
+ /** Original HTTP status */
25
+ status: number;
26
+ /** Preserved metadata (pagination, totals, etc.) */
27
+ metadata: Record<string, any>;
28
+ /** Transformed data with statistics and samples */
29
+ data: {
30
+ /** Summary of transformation */
31
+ _transformation: {
32
+ applied: boolean;
33
+ reason: string;
34
+ originalSize: number;
35
+ transformedSize: number;
36
+ timestamp: string;
37
+ };
38
+ /** Sample items from arrays */
39
+ sample?: any[];
40
+ /** Statistical aggregations */
41
+ statistics?: {
42
+ count: number;
43
+ numericFields?: Record<string, {
44
+ min: number;
45
+ max: number;
46
+ avg: number;
47
+ sum: number;
48
+ median: number;
49
+ p25?: number;
50
+ p75?: number;
51
+ p95?: number;
52
+ }>;
53
+ categoricalFields?: Record<string, Record<string, number>>;
54
+ };
55
+ /** Original array name (for context) */
56
+ arrayName?: string;
57
+ /** Full data for small responses */
58
+ full?: any;
59
+ };
60
+ /** Original response shape for reference */
61
+ _originalShape?: {
62
+ topLevelKeys: string[];
63
+ arrayFields: Array<{
64
+ name: string;
65
+ length: number;
66
+ }>;
67
+ scalarFields: string[];
68
+ };
69
+ }
70
+ /**
71
+ * Detect if response needs transformation
72
+ */
73
+ export declare function shouldTransform(response: any, options: TransformOptions): boolean;
74
+ /**
75
+ * Main transformation function
76
+ */
77
+ export declare function transformResponse(response: any, options?: TransformOptions, responseSchema?: any): TransformedResponse;
78
+ //# sourceMappingURL=response-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-transformer.d.ts","sourceRoot":"","sources":["../../../src/server/utils/response-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mDAAmD;IACnD,IAAI,EAAE;QACJ,gCAAgC;QAChC,eAAe,EAAE;YACf,OAAO,EAAE,OAAO,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,MAAM,CAAC;YACrB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,+BAA+B;QAC/B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,+BAA+B;QAC/B,UAAU,CAAC,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;YACd,aAAa,CAAC,EAAE,MAAM,CACpB,MAAM,EACN;gBACE,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM,CAAC;gBACf,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,GAAG,CAAC,EAAE,MAAM,CAAC;aACd,CACF,CAAC;YACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAC5D,CAAC;QACF,wCAAwC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,4CAA4C;IAC5C,cAAc,CAAC,EAAE;QACf,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAUT;AAwWD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,gBAAqB,EAC9B,cAAc,CAAC,EAAE,GAAG,GACnB,mBAAmB,CAwIrB"}