mcp-openapi 0.1.1 → 0.2.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 (34) hide show
  1. package/dist/src/config/cli-args.d.ts.map +1 -1
  2. package/dist/src/config/cli-args.js +11 -1
  3. package/dist/src/config/cli-args.js.map +1 -1
  4. package/dist/src/config/types.d.ts +10 -0
  5. package/dist/src/config/types.d.ts.map +1 -1
  6. package/dist/src/config/types.js.map +1 -1
  7. package/dist/src/executor/response-mapper.d.ts +8 -1
  8. package/dist/src/executor/response-mapper.d.ts.map +1 -1
  9. package/dist/src/executor/response-mapper.js +26 -8
  10. package/dist/src/executor/response-mapper.js.map +1 -1
  11. package/dist/src/executor/response-transform.d.ts +36 -0
  12. package/dist/src/executor/response-transform.d.ts.map +1 -0
  13. package/dist/src/executor/response-transform.js +107 -0
  14. package/dist/src/executor/response-transform.js.map +1 -0
  15. package/dist/src/licensing/gate.d.ts +3 -0
  16. package/dist/src/licensing/gate.d.ts.map +1 -0
  17. package/dist/src/licensing/gate.js +8 -0
  18. package/dist/src/licensing/gate.js.map +1 -0
  19. package/dist/src/licensing/index.d.ts +5 -0
  20. package/dist/src/licensing/index.d.ts.map +1 -0
  21. package/dist/src/licensing/index.js +4 -0
  22. package/dist/src/licensing/index.js.map +1 -0
  23. package/dist/src/licensing/types.d.ts +16 -0
  24. package/dist/src/licensing/types.d.ts.map +1 -0
  25. package/dist/src/licensing/types.js +14 -0
  26. package/dist/src/licensing/types.js.map +1 -0
  27. package/dist/src/licensing/validator.d.ts +4 -0
  28. package/dist/src/licensing/validator.d.ts.map +1 -0
  29. package/dist/src/licensing/validator.js +33 -0
  30. package/dist/src/licensing/validator.js.map +1 -0
  31. package/dist/src/server.d.ts.map +1 -1
  32. package/dist/src/server.js +28 -2
  33. package/dist/src/server.js.map +1 -1
  34. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../../src/config/cli-args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAyE7D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAGrF;AAED,wBAAgB,YAAY,CAC3B,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACrC,SAAS,EAAE,gBAAgB,GACzB,gBAAgB,CAQlB"}
1
+ {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../../src/config/cli-args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAiF7D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAGrF;AAED,wBAAgB,YAAY,CAC3B,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACrC,SAAS,EAAE,gBAAgB,GACzB,gBAAgB,CAQlB"}
@@ -26,6 +26,8 @@ export function parseCliArgs(argv) {
26
26
  "auth-scopes": { type: "string" },
27
27
  // Header options
28
28
  header: { type: "string", multiple: true, short: "H" },
29
+ // Pro options
30
+ "license-key": { type: "string" },
29
31
  help: { type: "boolean", short: "h" },
30
32
  version: { type: "boolean", short: "v" },
31
33
  },
@@ -36,7 +38,7 @@ export function parseCliArgs(argv) {
36
38
  process.exit(0);
37
39
  }
38
40
  if (values.version) {
39
- console.error("mcp-openapi v0.1.0");
41
+ console.error("mcp-openapi v0.2.0");
40
42
  process.exit(0);
41
43
  }
42
44
  const config = {
@@ -58,6 +60,11 @@ export function parseCliArgs(argv) {
58
60
  config.transport = values.transport;
59
61
  if (values.port)
60
62
  config.port = Number(values.port);
63
+ // License key (CLI or env var)
64
+ const licenseKey = values["license-key"] ||
65
+ process.env.MCP_OPENAPI_LICENSE_KEY;
66
+ if (licenseKey)
67
+ config.licenseKey = licenseKey;
61
68
  // Parse auth
62
69
  const authType = values["auth-type"];
63
70
  if (authType) {
@@ -145,6 +152,9 @@ AUTH OPTIONS:
145
152
  --auth-token-url <url>
146
153
  --auth-scopes <scopes>
147
154
 
155
+ PRO OPTIONS:
156
+ --license-key <key> Pro license key (or set MCP_OPENAPI_LICENSE_KEY env)
157
+
148
158
  EXAMPLES:
149
159
  npx mcp-openapi --spec https://petstore3.swagger.io/api/v3/openapi.json
150
160
  npx mcp-openapi --spec ./api.yaml --auth-type bearer --auth-token '$API_KEY'
@@ -1 +1 @@
1
- {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../../../src/config/cli-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../../../src/config/cli-args.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,16 @@ export interface McpOpenApiConfig {
21
21
  transport?: "stdio" | "sse";
22
22
  /** SSE port (default: 3000) */
23
23
  port?: number;
24
+ /** Pro: License key for paid features */
25
+ licenseKey?: string;
26
+ /** Pro: JMESPath transforms per tool name (supports glob patterns) */
27
+ transforms?: Record<string, string>;
28
+ /** Pro: Smart response handling options */
29
+ response?: {
30
+ maxLength?: number;
31
+ arraySliceSize?: number;
32
+ maxDepth?: number;
33
+ };
24
34
  }
25
35
  export type AuthConfig = {
26
36
  type: "api-key";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEL,eAAO,MAAM,cAAc;;;;;CAKU,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACF;AAED,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEL,eAAO,MAAM,cAAc;;;;;CAKU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,OAAgB;IAC3B,IAAI,EAAE,IAAI;CAC0B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,OAAgB;IAC3B,IAAI,EAAE,IAAI;CAC0B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { HttpResponse } from "./http-client.js";
2
+ import { type TransformOptions } from "./response-transform.js";
2
3
  export interface McpToolResult {
3
4
  content: Array<{
4
5
  type: "text";
@@ -6,5 +7,11 @@ export interface McpToolResult {
6
7
  }>;
7
8
  isError?: boolean;
8
9
  }
9
- export declare function mapResponse(response: HttpResponse): McpToolResult;
10
+ export interface MapResponseOptions {
11
+ /** JMESPath expression to filter response data */
12
+ jmesPath?: string;
13
+ /** Smart truncation options (Pro feature) */
14
+ smartTruncation?: TransformOptions;
15
+ }
16
+ export declare function mapResponse(response: HttpResponse, options?: MapResponseOptions): Promise<McpToolResult>;
10
17
  //# sourceMappingURL=response-mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-mapper.d.ts","sourceRoot":"","sources":["../../../src/executor/response-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAkDjE"}
1
+ {"version":3,"file":"response-mapper.d.ts","sourceRoot":"","sources":["../../../src/executor/response-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAGN,KAAK,gBAAgB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAID,wBAAsB,WAAW,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAsExB"}
@@ -1,5 +1,6 @@
1
- const MAX_RESPONSE_LENGTH = 50_000; // ~50KB text limit for LLM context friendliness
2
- export function mapResponse(response) {
1
+ import { applyJmesPath, smartTruncate, } from "./response-transform.js";
2
+ const MAX_RESPONSE_LENGTH = 50_000;
3
+ export async function mapResponse(response, options) {
3
4
  // HTTP error
4
5
  if (response.status >= 400) {
5
6
  const body = truncate(response.body, 2000);
@@ -13,19 +14,34 @@ export function mapResponse(response) {
13
14
  isError: true,
14
15
  };
15
16
  }
16
- // JSON response — pretty print
17
+ // JSON response — apply transforms then truncate
17
18
  if (response.contentType.includes("application/json")) {
18
19
  try {
19
- const parsed = JSON.parse(response.body);
20
+ let parsed = JSON.parse(response.body);
21
+ // Apply JMESPath transform if configured (Pro)
22
+ if (options?.jmesPath) {
23
+ parsed = await applyJmesPath(parsed, options.jmesPath);
24
+ }
25
+ // Use smart truncation if configured (Pro), else hard truncate
26
+ if (options?.smartTruncation) {
27
+ const text = smartTruncate(parsed, options.smartTruncation);
28
+ return { content: [{ type: "text", text }] };
29
+ }
20
30
  const formatted = JSON.stringify(parsed, null, 2);
21
31
  return {
22
- content: [{ type: "text", text: truncate(formatted, MAX_RESPONSE_LENGTH) }],
32
+ content: [
33
+ { type: "text", text: truncate(formatted, MAX_RESPONSE_LENGTH) },
34
+ ],
23
35
  };
24
36
  }
25
37
  catch {
26
- // Not valid JSON despite content type — return raw
27
38
  return {
28
- content: [{ type: "text", text: truncate(response.body, MAX_RESPONSE_LENGTH) }],
39
+ content: [
40
+ {
41
+ type: "text",
42
+ text: truncate(response.body, MAX_RESPONSE_LENGTH),
43
+ },
44
+ ],
29
45
  };
30
46
  }
31
47
  }
@@ -33,7 +49,9 @@ export function mapResponse(response) {
33
49
  if (response.contentType.includes("text/") ||
34
50
  response.contentType.includes("xml")) {
35
51
  return {
36
- content: [{ type: "text", text: truncate(response.body, MAX_RESPONSE_LENGTH) }],
52
+ content: [
53
+ { type: "text", text: truncate(response.body, MAX_RESPONSE_LENGTH) },
54
+ ],
37
55
  };
38
56
  }
39
57
  // Binary response
@@ -1 +1 @@
1
- {"version":3,"file":"response-mapper.js","sourceRoot":"","sources":["../../../src/executor/response-mapper.ts"],"names":[],"mappings":"AAOA,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,gDAAgD;AAEpF,MAAM,UAAU,WAAW,CAAC,QAAsB;IACjD,aAAa;IACb,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,OAAO,IAAI,EAAE;iBACvE;aACD;YACD,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;aAC3E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,mDAAmD;YACnD,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC;aAC/E,CAAC;QACH,CAAC;IACF,CAAC;IAED,gBAAgB;IAChB,IACC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,CAAC;QACF,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC;SAC/E,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO;QACN,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,qBAAqB,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,gBAAgB,QAAQ,CAAC,MAAM,GAAG;aAC1G;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAChD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,uBAAuB,IAAI,CAAC,MAAM,GAAG,SAAS,sBAAsB,CAAC;AACxG,CAAC"}
1
+ {"version":3,"file":"response-mapper.js","sourceRoot":"","sources":["../../../src/executor/response-mapper.ts"],"names":[],"mappings":"AACA,OAAO,EACN,aAAa,EACb,aAAa,GAEb,MAAM,yBAAyB,CAAC;AAcjC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,QAAsB,EACtB,OAA4B;IAE5B,aAAa;IACb,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,OAAO,IAAI,EAAE;iBACvE;aACD;YACD,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACJ,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEvC,+CAA+C;YAC/C,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACvB,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxD,CAAC;YAED,+DAA+D;YAC/D,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO;gBACN,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE;iBAChE;aACD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;qBAClD;iBACD;aACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,gBAAgB;IAChB,IACC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,CAAC;QACF,OAAO;YACN,OAAO,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;aACpE;SACD,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO;QACN,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,qBAAqB,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,gBAAgB,QAAQ,CAAC,MAAM,GAAG;aAC1G;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB;IAChD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,uBAAuB,IAAI,CAAC,MAAM,GAAG,SAAS,sBAAsB,CAAC;AACxG,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Smart response transformation for Pro tier.
3
+ * - JMESPath transforms: filter API responses to relevant fields
4
+ * - Smart truncation: array slicing with metadata instead of hard cut
5
+ */
6
+ export interface TransformOptions {
7
+ /** JMESPath expression to apply before truncation */
8
+ jmesPath?: string;
9
+ /** Max response text length (default: 50000) */
10
+ maxLength?: number;
11
+ /** Max items to keep when slicing arrays (default: 10) */
12
+ arraySliceSize?: number;
13
+ /** Max nesting depth before pruning (default: 4) */
14
+ maxDepth?: number;
15
+ }
16
+ /**
17
+ * Apply JMESPath transform to parsed JSON data.
18
+ * Dynamically imports jmespath to keep it optional.
19
+ */
20
+ export declare function applyJmesPath(data: unknown, expression: string): Promise<unknown>;
21
+ /**
22
+ * Smart truncation that preserves structure instead of hard-cutting text.
23
+ * - Arrays: keep first N items + metadata
24
+ * - Deep objects: prune beyond max depth
25
+ * - Large strings: truncate with indicator
26
+ */
27
+ export declare function smartTruncate(data: unknown, options?: TransformOptions): string;
28
+ /**
29
+ * Match a tool name against a pattern (supports * glob).
30
+ */
31
+ export declare function matchTransformPattern(toolName: string, pattern: string): boolean;
32
+ /**
33
+ * Find the matching transform expression for a tool name.
34
+ */
35
+ export declare function findTransform(toolName: string, transforms: Record<string, string>): string | undefined;
36
+ //# sourceMappingURL=response-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-transform.d.ts","sourceRoot":"","sources":["../../../src/executor/response-transform.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;GAGG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,gBAAqB,GAC5B,MAAM,CAcR;AA0DD;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACb,OAAO,CAQT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,GAAG,SAAS,CAYpB"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Smart response transformation for Pro tier.
3
+ * - JMESPath transforms: filter API responses to relevant fields
4
+ * - Smart truncation: array slicing with metadata instead of hard cut
5
+ */
6
+ const DEFAULT_MAX_LENGTH = 50_000;
7
+ const DEFAULT_ARRAY_SLICE = 10;
8
+ const DEFAULT_MAX_DEPTH = 4;
9
+ /**
10
+ * Apply JMESPath transform to parsed JSON data.
11
+ * Dynamically imports jmespath to keep it optional.
12
+ */
13
+ export async function applyJmesPath(data, expression) {
14
+ const jmespath = await import("@metrichor/jmespath");
15
+ return jmespath.search(data, expression);
16
+ }
17
+ /**
18
+ * Smart truncation that preserves structure instead of hard-cutting text.
19
+ * - Arrays: keep first N items + metadata
20
+ * - Deep objects: prune beyond max depth
21
+ * - Large strings: truncate with indicator
22
+ */
23
+ export function smartTruncate(data, options = {}) {
24
+ const maxLength = options.maxLength ?? DEFAULT_MAX_LENGTH;
25
+ const arraySlice = options.arraySliceSize ?? DEFAULT_ARRAY_SLICE;
26
+ const maxDepth = options.maxDepth ?? DEFAULT_MAX_DEPTH;
27
+ const pruned = pruneData(data, arraySlice, maxDepth, 0);
28
+ const result = JSON.stringify(pruned, null, 2);
29
+ // Final safety net: if still too long after pruning, hard truncate
30
+ if (result.length > maxLength) {
31
+ return `${result.slice(0, maxLength)}\n\n... [truncated, ${result.length - maxLength} characters omitted]`;
32
+ }
33
+ return result;
34
+ }
35
+ function pruneData(data, arraySlice, maxDepth, currentDepth) {
36
+ if (data === null || data === undefined)
37
+ return data;
38
+ if (typeof data !== "object")
39
+ return data;
40
+ // Array: slice + metadata
41
+ if (Array.isArray(data)) {
42
+ if (data.length > arraySlice) {
43
+ const sliced = data
44
+ .slice(0, arraySlice)
45
+ .map((item) => pruneData(item, arraySlice, maxDepth, currentDepth + 1));
46
+ return [
47
+ ...sliced,
48
+ {
49
+ _meta: `showing ${arraySlice} of ${data.length} items. Use pagination or offset parameters to retrieve more.`,
50
+ },
51
+ ];
52
+ }
53
+ return data.map((item) => pruneData(item, arraySlice, maxDepth, currentDepth + 1));
54
+ }
55
+ // Object at max depth: summarize keys
56
+ if (currentDepth >= maxDepth) {
57
+ const keys = Object.keys(data);
58
+ const record = data;
59
+ const summary = {};
60
+ for (const key of keys) {
61
+ const val = record[key];
62
+ if (Array.isArray(val)) {
63
+ summary[key] = `[array(${val.length})]`;
64
+ }
65
+ else if (typeof val === "object" && val !== null) {
66
+ summary[key] = `[object(${Object.keys(val).length} keys)]`;
67
+ }
68
+ else {
69
+ summary[key] = String(val);
70
+ }
71
+ }
72
+ return summary;
73
+ }
74
+ // Object: recurse
75
+ const record = data;
76
+ const result = {};
77
+ for (const [key, value] of Object.entries(record)) {
78
+ result[key] = pruneData(value, arraySlice, maxDepth, currentDepth + 1);
79
+ }
80
+ return result;
81
+ }
82
+ /**
83
+ * Match a tool name against a pattern (supports * glob).
84
+ */
85
+ export function matchTransformPattern(toolName, pattern) {
86
+ if (pattern.includes("*")) {
87
+ const regex = new RegExp(`^${pattern.replace(/\*/g, ".*")}$`);
88
+ return regex.test(toolName);
89
+ }
90
+ return toolName === pattern;
91
+ }
92
+ /**
93
+ * Find the matching transform expression for a tool name.
94
+ */
95
+ export function findTransform(toolName, transforms) {
96
+ // Exact match first
97
+ if (transforms[toolName])
98
+ return transforms[toolName];
99
+ // Glob pattern match
100
+ for (const [pattern, expression] of Object.entries(transforms)) {
101
+ if (matchTransformPattern(toolName, pattern)) {
102
+ return expression;
103
+ }
104
+ }
105
+ return undefined;
106
+ }
107
+ //# sourceMappingURL=response-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-transform.js","sourceRoot":"","sources":["../../../src/executor/response-transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LicenseInfo, ProFeature } from "./types.js";
2
+ export declare function requirePro(license: LicenseInfo | null, feature: ProFeature): void;
3
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/licensing/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI1D,wBAAgB,UAAU,CACzB,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,OAAO,EAAE,UAAU,GACjB,IAAI,CAIN"}
@@ -0,0 +1,8 @@
1
+ import { ProFeatureError } from "./types.js";
2
+ import { hasFeature } from "./validator.js";
3
+ export function requirePro(license, feature) {
4
+ if (!hasFeature(license, feature)) {
5
+ throw new ProFeatureError(feature);
6
+ }
7
+ }
8
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/licensing/gate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,UAAU,CACzB,OAA2B,EAC3B,OAAmB;IAEnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { ProFeature, ProFeatureError } from "./types.js";
2
+ export type { LicenseInfo } from "./types.js";
3
+ export { validateLicense, hasFeature } from "./validator.js";
4
+ export { requirePro } from "./gate.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/licensing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ProFeature, ProFeatureError } from "./types.js";
2
+ export { validateLicense, hasFeature } from "./validator.js";
3
+ export { requirePro } from "./gate.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/licensing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare enum ProFeature {
2
+ MULTI_API = "multi-api",
3
+ SMART_RESPONSE = "smart-response",
4
+ CUSTOM_TRANSFORMS = "custom-transforms",
5
+ ANALYTICS = "analytics"
6
+ }
7
+ export interface LicenseInfo {
8
+ email: string;
9
+ features: ProFeature[];
10
+ expiresAt: string;
11
+ sig: string;
12
+ }
13
+ export declare class ProFeatureError extends Error {
14
+ constructor(feature: ProFeature);
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/licensing/types.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACrB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;CACvB;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,UAAU;CAM/B"}
@@ -0,0 +1,14 @@
1
+ export var ProFeature;
2
+ (function (ProFeature) {
3
+ ProFeature["MULTI_API"] = "multi-api";
4
+ ProFeature["SMART_RESPONSE"] = "smart-response";
5
+ ProFeature["CUSTOM_TRANSFORMS"] = "custom-transforms";
6
+ ProFeature["ANALYTICS"] = "analytics";
7
+ })(ProFeature || (ProFeature = {}));
8
+ export class ProFeatureError extends Error {
9
+ constructor(feature) {
10
+ super(`Pro feature "${feature}" requires a license key. Get one at https://github.com/Docat0209/mcp-openapi#pro`);
11
+ this.name = "ProFeatureError";
12
+ }
13
+ }
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/licensing/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACrB,qCAAuB,CAAA;IACvB,+CAAiC,CAAA;IACjC,qDAAuC,CAAA;IACvC,qCAAuB,CAAA;AACxB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AASD,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACzC,YAAY,OAAmB;QAC9B,KAAK,CACJ,gBAAgB,OAAO,mFAAmF,CAC1G,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ import type { LicenseInfo, ProFeature } from "./types.js";
2
+ export declare function validateLicense(licenseKey: string): LicenseInfo | null;
3
+ export declare function hasFeature(license: LicenseInfo | null, feature: ProFeature): boolean;
4
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/licensing/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO1D,wBAAgB,eAAe,CAC9B,UAAU,EAAE,MAAM,GAChB,WAAW,GAAG,IAAI,CA6BpB;AAED,wBAAgB,UAAU,CACzB,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,OAAO,EAAE,UAAU,GACjB,OAAO,CAGT"}
@@ -0,0 +1,33 @@
1
+ import { createVerify } from "node:crypto";
2
+ // Ed25519 public key for license verification
3
+ // Private key is kept in Lemon Squeezy webhook handler only
4
+ const PUBLIC_KEY = "MCowBQYDK2VwAyEAPlaceholderKeyWillBeReplacedBeforeFirstProRelease=";
5
+ export function validateLicense(licenseKey) {
6
+ try {
7
+ const decoded = Buffer.from(licenseKey, "base64").toString("utf-8");
8
+ const payload = JSON.parse(decoded);
9
+ // Check expiry
10
+ if (new Date(payload.expiresAt) < new Date()) {
11
+ return null;
12
+ }
13
+ // Verify signature
14
+ const dataToVerify = JSON.stringify({
15
+ email: payload.email,
16
+ features: payload.features,
17
+ expiresAt: payload.expiresAt,
18
+ });
19
+ const verify = createVerify("Ed25519");
20
+ verify.update(dataToVerify);
21
+ const isValid = verify.verify(`-----BEGIN PUBLIC KEY-----\n${PUBLIC_KEY}\n-----END PUBLIC KEY-----`, payload.sig, "hex");
22
+ return isValid ? payload : null;
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ export function hasFeature(license, feature) {
29
+ if (!license)
30
+ return false;
31
+ return license.features.includes(feature);
32
+ }
33
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/licensing/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,8CAA8C;AAC9C,4DAA4D;AAC5D,MAAM,UAAU,GACf,oEAAoE,CAAC;AAEtE,MAAM,UAAU,eAAe,CAC9B,UAAkB;IAElB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAEnD,eAAe;QACf,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC5B,+BAA+B,UAAU,4BAA4B,EACrE,OAAO,CAAC,GAAG,EACX,KAAK,CACL,CAAC;QAEF,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,UAAU,CACzB,OAA2B,EAC3B,OAAmB;IAEnB,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyF1D;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,gBAAgB,iBAOzD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAU1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAUnE,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoH1D;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,gBAAgB,iBAOzD"}
@@ -5,12 +5,25 @@ import { createAuthProvider } from "./auth/index.js";
5
5
  import { DEFAULT_CONFIG } from "./config/types.js";
6
6
  import { buildRequest } from "./executor/request-builder.js";
7
7
  import { executeRequest } from "./executor/http-client.js";
8
- import { mapResponse } from "./executor/response-mapper.js";
8
+ import { mapResponse, } from "./executor/response-mapper.js";
9
+ import { findTransform } from "./executor/response-transform.js";
9
10
  import { generateTools } from "./generator/tool-generator.js";
11
+ import { validateLicense, hasFeature, ProFeature, } from "./licensing/index.js";
10
12
  import { parseSpec } from "./parser/openapi-parser.js";
11
13
  import { logger } from "./utils/logger.js";
12
14
  export async function createServer(config) {
13
15
  const mergedConfig = { ...DEFAULT_CONFIG, ...config };
16
+ // Validate license key if provided
17
+ let license = null;
18
+ if (mergedConfig.licenseKey) {
19
+ license = validateLicense(mergedConfig.licenseKey);
20
+ if (license) {
21
+ logger.info(`Pro license active for ${license.email}`);
22
+ }
23
+ else {
24
+ logger.warn("Invalid or expired license key — Pro features disabled");
25
+ }
26
+ }
14
27
  // Parse the OpenAPI spec
15
28
  const spec = await parseSpec(config.spec);
16
29
  // Generate MCP tools
@@ -72,8 +85,21 @@ export async function createServer(config) {
72
85
  timeout: mergedConfig.timeout,
73
86
  maxRetries: mergedConfig.maxRetries,
74
87
  });
88
+ // Build response mapping options
89
+ const mapOptions = {};
90
+ // Pro: Custom JMESPath transforms
91
+ if (mergedConfig.transforms && hasFeature(license, ProFeature.CUSTOM_TRANSFORMS)) {
92
+ const expr = findTransform(request.params.name, mergedConfig.transforms);
93
+ if (expr) {
94
+ mapOptions.jmesPath = expr;
95
+ }
96
+ }
97
+ // Pro: Smart response handling
98
+ if (hasFeature(license, ProFeature.SMART_RESPONSE) && mergedConfig.response) {
99
+ mapOptions.smartTruncation = mergedConfig.response;
100
+ }
75
101
  // Map to MCP result
76
- const result = mapResponse(response);
102
+ const result = await mapResponse(response, mapOptions);
77
103
  return { ...result };
78
104
  });
79
105
  logger.info(`Registered ${tools.length} tools from ${spec.info.title} v${spec.info.version}`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-openapi",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "LLM-aware OpenAPI/Swagger to MCP tools converter. Point at any API spec, get instant MCP tools.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,15 +22,16 @@
22
22
  "prepublishOnly": "pnpm build"
23
23
  },
24
24
  "dependencies": {
25
- "@modelcontextprotocol/sdk": "^1.12.0",
26
25
  "@apidevtools/swagger-parser": "^10.1.0",
27
- "yaml": "^2.6.0",
28
- "openapi-types": "^12.1.3"
26
+ "@metrichor/jmespath": "^0.3.1",
27
+ "@modelcontextprotocol/sdk": "^1.12.0",
28
+ "openapi-types": "^12.1.3",
29
+ "yaml": "^2.6.0"
29
30
  },
30
31
  "devDependencies": {
32
+ "@types/node": "^22.0.0",
31
33
  "typescript": "^5.7.0",
32
- "vitest": "^3.0.0",
33
- "@types/node": "^22.0.0"
34
+ "vitest": "^3.0.0"
34
35
  },
35
36
  "engines": {
36
37
  "node": ">=18.0.0"