mcp-openapi 0.1.0 → 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 (36) hide show
  1. package/README.md +2 -12
  2. package/dist/src/config/cli-args.d.ts.map +1 -1
  3. package/dist/src/config/cli-args.js +15 -5
  4. package/dist/src/config/cli-args.js.map +1 -1
  5. package/dist/src/config/types.d.ts +10 -0
  6. package/dist/src/config/types.d.ts.map +1 -1
  7. package/dist/src/config/types.js.map +1 -1
  8. package/dist/src/executor/response-mapper.d.ts +8 -1
  9. package/dist/src/executor/response-mapper.d.ts.map +1 -1
  10. package/dist/src/executor/response-mapper.js +26 -8
  11. package/dist/src/executor/response-mapper.js.map +1 -1
  12. package/dist/src/executor/response-transform.d.ts +36 -0
  13. package/dist/src/executor/response-transform.d.ts.map +1 -0
  14. package/dist/src/executor/response-transform.js +107 -0
  15. package/dist/src/executor/response-transform.js.map +1 -0
  16. package/dist/src/licensing/gate.d.ts +3 -0
  17. package/dist/src/licensing/gate.d.ts.map +1 -0
  18. package/dist/src/licensing/gate.js +8 -0
  19. package/dist/src/licensing/gate.js.map +1 -0
  20. package/dist/src/licensing/index.d.ts +5 -0
  21. package/dist/src/licensing/index.d.ts.map +1 -0
  22. package/dist/src/licensing/index.js +4 -0
  23. package/dist/src/licensing/index.js.map +1 -0
  24. package/dist/src/licensing/types.d.ts +16 -0
  25. package/dist/src/licensing/types.d.ts.map +1 -0
  26. package/dist/src/licensing/types.js +14 -0
  27. package/dist/src/licensing/types.js.map +1 -0
  28. package/dist/src/licensing/validator.d.ts +4 -0
  29. package/dist/src/licensing/validator.d.ts.map +1 -0
  30. package/dist/src/licensing/validator.js +33 -0
  31. package/dist/src/licensing/validator.js.map +1 -0
  32. package/dist/src/server.d.ts +37 -3
  33. package/dist/src/server.d.ts.map +1 -1
  34. package/dist/src/server.js +76 -23
  35. package/dist/src/server.js.map +1 -1
  36. package/package.json +9 -8
package/README.md CHANGED
@@ -316,20 +316,10 @@ console.log(`Loaded ${tools.length} tools from ${spec.info.title}`);
316
316
  Contributions are welcome. Here is how to get started:
317
317
 
318
318
  ```bash
319
- # Clone the repo
320
- git clone https://github.com/Docat0209/auto-revenue.git
321
- cd auto-revenue
322
-
323
- # Install dependencies
319
+ git clone https://github.com/Docat0209/mcp-openapi.git
320
+ cd mcp-openapi
324
321
  pnpm install
325
-
326
- # Navigate to the package
327
- cd packages/mcp-servers/openapi
328
-
329
- # Run tests
330
322
  pnpm test
331
-
332
- # Build
333
323
  pnpm build
334
324
  ```
335
325
 
@@ -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) {
@@ -117,7 +124,7 @@ function printHelp() {
117
124
  mcp-openapi - Convert any OpenAPI/Swagger spec into MCP tools
118
125
 
119
126
  USAGE:
120
- npx @autorev/mcp-openapi --spec <url-or-path> [options]
127
+ npx mcp-openapi --spec <url-or-path> [options]
121
128
 
122
129
  OPTIONS:
123
130
  -s, --spec <url|path> OpenAPI spec URL or local file path (required)
@@ -145,10 +152,13 @@ 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
- npx @autorev/mcp-openapi --spec https://petstore3.swagger.io/api/v3/openapi.json
150
- npx @autorev/mcp-openapi --spec ./api.yaml --auth-type bearer --auth-token '$API_KEY'
151
- npx @autorev/mcp-openapi --spec ./api.json --prefix github --include 'listRepos,getRepo'
159
+ npx mcp-openapi --spec https://petstore3.swagger.io/api/v3/openapi.json
160
+ npx mcp-openapi --spec ./api.yaml --auth-type bearer --auth-token '$API_KEY'
161
+ npx mcp-openapi --spec ./api.json --prefix github --include 'listRepos,getRepo'
152
162
  `);
153
163
  }
154
164
  //# sourceMappingURL=cli-args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../../../src/config/cli-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,UAAU,YAAY,CAAC,IAAc;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC5B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnB,OAAO,EAAE;YACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YACpC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YACtC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,eAAe;YACf,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,iBAAiB;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;YACtD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACxC;QACD,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAqB;QAChC,IAAI,EAAG,MAAM,CAAC,IAAe,IAAI,EAAE;KACnC,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU,CAAC;QAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAW,CAAC;IACtE,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;IAC3D,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAI,MAAM,CAAC,OAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAI,MAAM,CAAC,OAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAA4B,CAAC;IAC7E,IAAI,MAAM,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnD,aAAa;IACb,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAuB,CAAC;IAC3D,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAkB,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5E,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA8B,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,UAAqC,EACrC,SAA2B;IAE3B,wCAAwC;IACxC,OAAO;QACN,GAAG,UAAU;QACb,GAAG,MAAM,CAAC,WAAW,CACpB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CACxE;KACmB,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CACrB,QAAgB,EAChB,MAA+B;IAE/B,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAG,MAAM,CAAC,YAAY,CAAY,IAAI,EAAE;aAC7C,CAAC;QACH,KAAK,SAAS;YACb,OAAO;gBACN,IAAI,EAAE,SAAS;gBACf,IAAI,EAAG,MAAM,CAAC,WAAW,CAAY,IAAI,eAAe;gBACxD,KAAK,EAAG,MAAM,CAAC,YAAY,CAAY,IAAI,EAAE;gBAC7C,EAAE,EAAE,CAAE,MAAM,CAAC,SAAS,CAAY,IAAI,QAAQ,CAAuB;aACrE,CAAC;QACH,KAAK,QAAQ;YACZ,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAG,MAAM,CAAC,gBAAgB,CAAY,IAAI,EAAE;gBACpD,YAAY,EAAG,MAAM,CAAC,oBAAoB,CAAY,IAAI,EAAE;gBAC5D,QAAQ,EAAG,MAAM,CAAC,gBAAgB,CAAY,IAAI,EAAE;gBACpD,MAAM,EAAG,MAAM,CAAC,aAAa,CAAY,EAAE,KAAK,CAAC,GAAG,CAAC;aACrD,CAAC;QACH;YACC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IACjB,OAAO,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCd,CAAC,CAAC;AACH,CAAC"}
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,8 +1,42 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import type { McpOpenApiConfig } from "./config/types.js";
3
+ import type { GeneratedTool } from "./generator/tool-generator.js";
3
4
  export declare function createServer(config: McpOpenApiConfig): Promise<{
4
- server: McpServer;
5
- tools: import("./index.js").GeneratedTool[];
5
+ server: Server<{
6
+ method: string;
7
+ params?: {
8
+ [x: string]: unknown;
9
+ _meta?: {
10
+ [x: string]: unknown;
11
+ progressToken?: string | number | undefined;
12
+ "io.modelcontextprotocol/related-task"?: {
13
+ taskId: string;
14
+ } | undefined;
15
+ } | undefined;
16
+ } | undefined;
17
+ }, {
18
+ method: string;
19
+ params?: {
20
+ [x: string]: unknown;
21
+ _meta?: {
22
+ [x: string]: unknown;
23
+ progressToken?: string | number | undefined;
24
+ "io.modelcontextprotocol/related-task"?: {
25
+ taskId: string;
26
+ } | undefined;
27
+ } | undefined;
28
+ } | undefined;
29
+ }, {
30
+ [x: string]: unknown;
31
+ _meta?: {
32
+ [x: string]: unknown;
33
+ progressToken?: string | number | undefined;
34
+ "io.modelcontextprotocol/related-task"?: {
35
+ taskId: string;
36
+ } | undefined;
37
+ } | undefined;
38
+ }>;
39
+ tools: GeneratedTool[];
6
40
  spec: import("./index.js").NormalizedSpec;
7
41
  }>;
8
42
  export declare function startServer(config: McpOpenApiConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS1D,wBAAsB,YAAY,CAAC,MAAM,EAAE,gBAAgB;;;;GAiE1D;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"}
@@ -1,15 +1,29 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
3
4
  import { createAuthProvider } from "./auth/index.js";
4
5
  import { DEFAULT_CONFIG } from "./config/types.js";
5
6
  import { buildRequest } from "./executor/request-builder.js";
6
7
  import { executeRequest } from "./executor/http-client.js";
7
- import { mapResponse } from "./executor/response-mapper.js";
8
+ import { mapResponse, } from "./executor/response-mapper.js";
9
+ import { findTransform } from "./executor/response-transform.js";
8
10
  import { generateTools } from "./generator/tool-generator.js";
11
+ import { validateLicense, hasFeature, ProFeature, } from "./licensing/index.js";
9
12
  import { parseSpec } from "./parser/openapi-parser.js";
10
13
  import { logger } from "./utils/logger.js";
11
14
  export async function createServer(config) {
12
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
+ }
13
27
  // Parse the OpenAPI spec
14
28
  const spec = await parseSpec(config.spec);
15
29
  // Generate MCP tools
@@ -24,31 +38,70 @@ export async function createServer(config) {
24
38
  }
25
39
  // Create auth provider
26
40
  const authProvider = createAuthProvider(mergedConfig.auth);
27
- // Create MCP server
28
- const server = new McpServer({
41
+ // Build tool lookup
42
+ const toolMap = new Map();
43
+ for (const tool of tools) {
44
+ toolMap.set(tool.name, tool);
45
+ }
46
+ // Create MCP server using low-level API
47
+ const server = new Server({
29
48
  name: `mcp-openapi: ${spec.info.title}`,
30
49
  version: spec.info.version,
50
+ }, {
51
+ capabilities: {
52
+ tools: {},
53
+ },
31
54
  });
32
- // Register each tool
33
- for (const tool of tools) {
34
- server.tool(tool.name, tool.description, tool.inputSchema.properties
35
- ? tool.inputSchema
36
- : { properties: {} }, async (args) => {
37
- // Build HTTP request from tool call args
38
- let request = buildRequest(args, tool.endpointRef, mergedConfig.headers);
39
- // Apply auth
40
- if (authProvider) {
41
- request = await authProvider.apply(request);
42
- }
43
- // Execute HTTP request
44
- const response = await executeRequest(request, {
45
- timeout: mergedConfig.timeout,
46
- maxRetries: mergedConfig.maxRetries,
47
- });
48
- // Map to MCP result
49
- return mapResponse(response);
55
+ // Handle list tools
56
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
57
+ tools: tools.map((t) => ({
58
+ name: t.name,
59
+ description: t.description,
60
+ inputSchema: {
61
+ type: "object",
62
+ properties: t.inputSchema.properties ?? {},
63
+ ...(t.inputSchema.required ? { required: t.inputSchema.required } : {}),
64
+ },
65
+ })),
66
+ }));
67
+ // Handle call tool
68
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
69
+ const tool = toolMap.get(request.params.name);
70
+ if (!tool) {
71
+ return {
72
+ content: [{ type: "text", text: `Unknown tool: ${request.params.name}` }],
73
+ isError: true,
74
+ };
75
+ }
76
+ const args = (request.params.arguments ?? {});
77
+ // Build HTTP request from tool call args
78
+ let httpRequest = buildRequest(args, tool.endpointRef, mergedConfig.headers);
79
+ // Apply auth
80
+ if (authProvider) {
81
+ httpRequest = await authProvider.apply(httpRequest);
82
+ }
83
+ // Execute HTTP request
84
+ const response = await executeRequest(httpRequest, {
85
+ timeout: mergedConfig.timeout,
86
+ maxRetries: mergedConfig.maxRetries,
50
87
  });
51
- }
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
+ }
101
+ // Map to MCP result
102
+ const result = await mapResponse(response, mapOptions);
103
+ return { ...result };
104
+ });
52
105
  logger.info(`Registered ${tools.length} tools from ${spec.info.title} v${spec.info.version}`);
53
106
  return { server, tools, spec };
54
107
  }
@@ -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.0",
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"
@@ -46,9 +47,9 @@
46
47
  "tools"
47
48
  ],
48
49
  "license": "MIT",
50
+ "homepage": "https://github.com/Docat0209/mcp-openapi#readme",
49
51
  "repository": {
50
52
  "type": "git",
51
- "url": "https://github.com/Docat0209/auto-revenue",
52
- "directory": "packages/mcp-servers/openapi"
53
+ "url": "https://github.com/Docat0209/mcp-openapi"
53
54
  }
54
55
  }