@emcy/openapi-to-mcp 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +180 -127
  2. package/dist/__tests__/cli-config.test.d.ts +2 -0
  3. package/dist/__tests__/cli-config.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli-config.test.js +95 -0
  5. package/dist/__tests__/cli-config.test.js.map +1 -0
  6. package/dist/__tests__/generator.test.d.ts +1 -1
  7. package/dist/__tests__/generator.test.js +178 -200
  8. package/dist/__tests__/generator.test.js.map +1 -1
  9. package/dist/__tests__/integration.test.js +11 -11
  10. package/dist/__tests__/integration.test.js.map +1 -1
  11. package/dist/__tests__/mapper.test.js +30 -6
  12. package/dist/__tests__/mapper.test.js.map +1 -1
  13. package/dist/__tests__/parser.test.js +2 -0
  14. package/dist/__tests__/parser.test.js.map +1 -1
  15. package/dist/__tests__/tool-identity.test.d.ts +2 -0
  16. package/dist/__tests__/tool-identity.test.d.ts.map +1 -0
  17. package/dist/__tests__/tool-identity.test.js +15 -0
  18. package/dist/__tests__/tool-identity.test.js.map +1 -0
  19. package/dist/cli-config.d.ts +31 -0
  20. package/dist/cli-config.d.ts.map +1 -0
  21. package/dist/cli-config.js +148 -0
  22. package/dist/cli-config.js.map +1 -0
  23. package/dist/cli.js +66 -4
  24. package/dist/cli.js.map +1 -1
  25. package/dist/generator.d.ts +8 -3
  26. package/dist/generator.d.ts.map +1 -1
  27. package/dist/generator.js +711 -327
  28. package/dist/generator.js.map +1 -1
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/mapper.d.ts.map +1 -1
  34. package/dist/mapper.js +6 -2
  35. package/dist/mapper.js.map +1 -1
  36. package/dist/parser.d.ts.map +1 -1
  37. package/dist/parser.js +18 -5
  38. package/dist/parser.js.map +1 -1
  39. package/dist/tool-identity.d.ts +6 -0
  40. package/dist/tool-identity.d.ts.map +1 -0
  41. package/dist/tool-identity.js +67 -0
  42. package/dist/tool-identity.js.map +1 -0
  43. package/dist/types.d.ts +119 -0
  44. package/dist/types.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -13,13 +13,14 @@ describe('mapToMcpTools', () => {
13
13
  summary: 'Get all users',
14
14
  parameters: [],
15
15
  securitySchemes: [],
16
+ requiredScopes: [],
16
17
  tags: [],
17
18
  },
18
19
  ];
19
20
  const tools = mapToMcpTools(endpoints);
20
21
  expect(tools).toHaveLength(1);
21
22
  expect(tools[0]).toEqual({
22
- name: 'getUsers',
23
+ name: 'get_users',
23
24
  description: 'Get all users',
24
25
  inputSchema: { type: 'object', properties: {} },
25
26
  httpMethod: 'get',
@@ -27,6 +28,7 @@ describe('mapToMcpTools', () => {
27
28
  parameters: [],
28
29
  requestBodyContentType: undefined,
29
30
  securitySchemes: [],
31
+ requiredScopes: [],
30
32
  });
31
33
  });
32
34
  it('should map path parameters to input schema', () => {
@@ -45,6 +47,7 @@ describe('mapToMcpTools', () => {
45
47
  },
46
48
  ],
47
49
  securitySchemes: [],
50
+ requiredScopes: [],
48
51
  tags: [],
49
52
  },
50
53
  ];
@@ -83,6 +86,7 @@ describe('mapToMcpTools', () => {
83
86
  },
84
87
  ],
85
88
  securitySchemes: [],
89
+ requiredScopes: [],
86
90
  tags: [],
87
91
  },
88
92
  ];
@@ -105,6 +109,7 @@ describe('mapToMcpTools', () => {
105
109
  requestBody: {
106
110
  required: true,
107
111
  contentType: 'application/json',
112
+ description: 'Desired fields for the new user.',
108
113
  schema: {
109
114
  type: 'object',
110
115
  properties: {
@@ -115,6 +120,7 @@ describe('mapToMcpTools', () => {
115
120
  },
116
121
  },
117
122
  securitySchemes: [],
123
+ requiredScopes: [],
118
124
  tags: [],
119
125
  },
120
126
  ];
@@ -122,6 +128,15 @@ describe('mapToMcpTools', () => {
122
128
  expect(tools[0].inputSchema.properties?.requestBody).toBeDefined();
123
129
  expect(tools[0].inputSchema.required).toContain('requestBody');
124
130
  expect(tools[0].requestBodyContentType).toBe('application/json');
131
+ expect(tools[0].inputSchema.properties?.requestBody).toEqual({
132
+ type: 'object',
133
+ properties: {
134
+ name: { type: 'string' },
135
+ email: { type: 'string' },
136
+ },
137
+ required: ['name', 'email'],
138
+ description: 'Desired fields for the new user.',
139
+ });
125
140
  });
126
141
  it('should include description from endpoint', () => {
127
142
  const endpoints = [
@@ -133,6 +148,7 @@ describe('mapToMcpTools', () => {
133
148
  description: 'Retrieves a single user by their unique identifier.',
134
149
  parameters: [],
135
150
  securitySchemes: [],
151
+ requiredScopes: [],
136
152
  tags: [],
137
153
  },
138
154
  ];
@@ -147,6 +163,7 @@ describe('mapToMcpTools', () => {
147
163
  path: '/users/{id}',
148
164
  parameters: [],
149
165
  securitySchemes: [],
166
+ requiredScopes: [],
150
167
  tags: [],
151
168
  },
152
169
  ];
@@ -161,6 +178,7 @@ describe('mapToMcpTools', () => {
161
178
  path: '/users',
162
179
  parameters: [],
163
180
  securitySchemes: [],
181
+ requiredScopes: [],
164
182
  tags: [],
165
183
  },
166
184
  {
@@ -169,6 +187,7 @@ describe('mapToMcpTools', () => {
169
187
  path: '/users',
170
188
  parameters: [],
171
189
  securitySchemes: [],
190
+ requiredScopes: [],
172
191
  tags: [],
173
192
  },
174
193
  {
@@ -177,12 +196,13 @@ describe('mapToMcpTools', () => {
177
196
  path: '/users/{id}',
178
197
  parameters: [],
179
198
  securitySchemes: [],
199
+ requiredScopes: [],
180
200
  tags: [],
181
201
  },
182
202
  ];
183
203
  const tools = mapToMcpTools(endpoints);
184
204
  expect(tools).toHaveLength(3);
185
- expect(tools.map(t => t.name)).toEqual(['getUsers', 'createUser', 'getUser']);
205
+ expect(tools.map(t => t.name)).toEqual(['get_users', 'post_users', 'get_users_by_id']);
186
206
  });
187
207
  it('should filter by enabled paths when provided', () => {
188
208
  const endpoints = [
@@ -192,6 +212,7 @@ describe('mapToMcpTools', () => {
192
212
  path: '/users',
193
213
  parameters: [],
194
214
  securitySchemes: [],
215
+ requiredScopes: [],
195
216
  tags: [],
196
217
  },
197
218
  {
@@ -200,13 +221,14 @@ describe('mapToMcpTools', () => {
200
221
  path: '/users',
201
222
  parameters: [],
202
223
  securitySchemes: [],
224
+ requiredScopes: [],
203
225
  tags: [],
204
226
  },
205
227
  ];
206
228
  const enabledPaths = new Set(['GET:/users']);
207
229
  const tools = mapToMcpTools(endpoints, enabledPaths);
208
230
  expect(tools).toHaveLength(1);
209
- expect(tools[0].name).toBe('getUsers');
231
+ expect(tools[0].name).toBe('get_users');
210
232
  });
211
233
  it('should preserve security schemes', () => {
212
234
  const endpoints = [
@@ -216,6 +238,7 @@ describe('mapToMcpTools', () => {
216
238
  path: '/secure',
217
239
  parameters: [],
218
240
  securitySchemes: ['bearerAuth', 'apiKey'],
241
+ requiredScopes: [],
219
242
  tags: [],
220
243
  },
221
244
  ];
@@ -231,6 +254,7 @@ describe('getEndpointKey', () => {
231
254
  path: '/users',
232
255
  parameters: [],
233
256
  securitySchemes: [],
257
+ requiredScopes: [],
234
258
  tags: [],
235
259
  };
236
260
  expect(getEndpointKey(endpoint)).toBe('GET:/users');
@@ -239,9 +263,9 @@ describe('getEndpointKey', () => {
239
263
  describe('getAllEndpointKeys', () => {
240
264
  it('should return all endpoint keys', () => {
241
265
  const endpoints = [
242
- { operationId: 'a', method: 'GET', path: '/users', parameters: [], securitySchemes: [], tags: [] },
243
- { operationId: 'b', method: 'POST', path: '/users', parameters: [], securitySchemes: [], tags: [] },
244
- { operationId: 'c', method: 'DELETE', path: '/users/{id}', parameters: [], securitySchemes: [], tags: [] },
266
+ { operationId: 'a', method: 'GET', path: '/users', parameters: [], securitySchemes: [], requiredScopes: [], tags: [] },
267
+ { operationId: 'b', method: 'POST', path: '/users', parameters: [], securitySchemes: [], requiredScopes: [], tags: [] },
268
+ { operationId: 'c', method: 'DELETE', path: '/users/{id}', parameters: [], securitySchemes: [], requiredScopes: [], tags: [] },
245
269
  ];
246
270
  const keys = getAllEndpointKeys(endpoints);
247
271
  expect(keys).toEqual(['GET:/users', 'POST:/users', 'DELETE:/users/{id}']);
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/mapper.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/mapper.test.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,7 @@ describe('parseOpenAPI', () => {
161
161
  '/users': {
162
162
  post: {
163
163
  requestBody: {
164
+ description: 'Fields used to create a user.',
164
165
  required: true,
165
166
  content: {
166
167
  'application/json': {
@@ -183,6 +184,7 @@ describe('parseOpenAPI', () => {
183
184
  expect(result.endpoints[0].requestBody).toBeDefined();
184
185
  expect(result.endpoints[0].requestBody?.required).toBe(true);
185
186
  expect(result.endpoints[0].requestBody?.contentType).toBe('application/json');
187
+ expect(result.endpoints[0].requestBody?.description).toBe('Fields used to create a user.');
186
188
  expect(result.endpoints[0].requestBody?.schema.type).toBe('object');
187
189
  });
188
190
  it('should parse security schemes', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/__tests__/parser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/__tests__/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-identity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-identity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tool-identity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { describe, expect, it } from "vitest";
3
+ import { buildDisplayName, buildToolKey, buildWorkspaceToolName, } from "../tool-identity.js";
4
+ const fixtures = JSON.parse(readFileSync(new URL("../../fixtures/tool-naming-fixtures.json", import.meta.url), "utf8"));
5
+ describe("tool identity", () => {
6
+ it("matches the shared fixtures", () => {
7
+ expect(fixtures.length).toBeGreaterThan(0);
8
+ for (const fixture of fixtures) {
9
+ expect(buildToolKey(fixture.method, fixture.path)).toBe(fixture.toolKey);
10
+ expect(buildDisplayName(fixture.operationId ?? undefined, fixture.method, fixture.path)).toBe(fixture.displayName);
11
+ expect(buildWorkspaceToolName(fixture.serverSlug, fixture.toolKey)).toBe(fixture.workspaceToolName);
12
+ }
13
+ });
14
+ });
15
+ //# sourceMappingURL=tool-identity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-identity.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-identity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,YAAY,CAAC,IAAI,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CACpE,CAAC;AAEzB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC3F,OAAO,CAAC,WAAW,CACpB,CAAC;YACF,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACtE,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { EmcyGatewayIntegrationConfig, GatewayOauthConfig, GeneratorOptions, PromptDefinition, RuntimeMode, ToolInstructionConfig, UpstreamHeaderConfig } from "./types.js";
2
+ export interface GenerateCliValues {
3
+ mode?: string;
4
+ "use-emcy-gateway"?: boolean;
5
+ header?: string[];
6
+ "prompts-json"?: string;
7
+ "tool-instructions-json"?: string;
8
+ "gateway-provider"?: string;
9
+ "gateway-auth-server-url"?: string;
10
+ "gateway-client-id"?: string;
11
+ "gateway-resource"?: string;
12
+ "gateway-scopes"?: string;
13
+ }
14
+ export interface ParsedGeneratorCliConfig {
15
+ runtimeMode: RuntimeMode;
16
+ upstreamHeaders: UpstreamHeaderConfig[];
17
+ prompts?: PromptDefinition[];
18
+ toolInstructions?: Record<string, ToolInstructionConfig>;
19
+ gatewayIntegration?: EmcyGatewayIntegrationConfig;
20
+ gatewayOauthConfig?: GatewayOauthConfig;
21
+ }
22
+ export declare function parseGeneratorCliConfig(values: GenerateCliValues): ParsedGeneratorCliConfig;
23
+ export declare function pickGeneratorOptions(baseOptions: GeneratorOptions, parsed: ParsedGeneratorCliConfig): GeneratorOptions;
24
+ export declare function parsePrompts(value: string | undefined): PromptDefinition[] | undefined;
25
+ export declare function parseToolInstructions(value: string | undefined): Record<string, ToolInstructionConfig> | undefined;
26
+ export declare function parseGatewayOauthConfig(values: GenerateCliValues): GatewayOauthConfig | undefined;
27
+ export declare function parseEmcyGatewayIntegration(values: GenerateCliValues): EmcyGatewayIntegrationConfig | undefined;
28
+ export declare function resolveRuntimeMode(mode: string | undefined, headerArgs: string[] | undefined, useEmcyGateway?: boolean): RuntimeMode;
29
+ export declare function normalizeRuntimeMode(mode: string | undefined): RuntimeMode | undefined;
30
+ export declare function parseUpstreamHeaders(headerArgs: string[] | undefined): UpstreamHeaderConfig[];
31
+ //# sourceMappingURL=cli-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-config.d.ts","sourceRoot":"","sources":["../src/cli-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACzD,kBAAkB,CAAC,EAAE,4BAA4B,CAAC;IAClD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,GACxB,wBAAwB,CAa1B;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,wBAAwB,GAC/B,gBAAgB,CAiBlB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,gBAAgB,EAAE,GAAG,SAAS,CAWhC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAanD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,GACxB,kBAAkB,GAAG,SAAS,CAwBhC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,GACxB,4BAA4B,GAAG,SAAS,CAc1C;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,cAAc,UAAQ,GACrB,WAAW,CAeb;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,WAAW,GAAG,SAAS,CA8BzB;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAC/B,oBAAoB,EAAE,CAmBxB"}
@@ -0,0 +1,148 @@
1
+ function isGatewayWorkerMode(mode) {
2
+ return mode === "emcy_gateway_worker";
3
+ }
4
+ export function parseGeneratorCliConfig(values) {
5
+ return {
6
+ runtimeMode: resolveRuntimeMode(values.mode, values.header, values["use-emcy-gateway"] === true),
7
+ upstreamHeaders: parseUpstreamHeaders(values.header),
8
+ prompts: parsePrompts(values["prompts-json"]),
9
+ toolInstructions: parseToolInstructions(values["tool-instructions-json"]),
10
+ gatewayIntegration: parseEmcyGatewayIntegration(values),
11
+ gatewayOauthConfig: parseGatewayOauthConfig(values),
12
+ };
13
+ }
14
+ export function pickGeneratorOptions(baseOptions, parsed) {
15
+ return {
16
+ ...baseOptions,
17
+ runtimeMode: parsed.runtimeMode,
18
+ upstreamHeaders: parsed.upstreamHeaders,
19
+ gatewayIntegration: parsed.gatewayIntegration,
20
+ prompts: parsed.prompts,
21
+ toolInstructions: parsed.toolInstructions,
22
+ hostedOauthConfig: parsed.gatewayIntegration?.oauth ?? parsed.gatewayOauthConfig,
23
+ hostedWorkerConfig: isGatewayWorkerMode(parsed.runtimeMode)
24
+ ? parsed.gatewayIntegration?.worker ??
25
+ baseOptions.gatewayIntegration?.worker ??
26
+ baseOptions.hostedWorkerConfig ??
27
+ {}
28
+ : undefined,
29
+ };
30
+ }
31
+ export function parsePrompts(value) {
32
+ if (!value) {
33
+ return undefined;
34
+ }
35
+ const parsed = JSON.parse(value);
36
+ if (!Array.isArray(parsed)) {
37
+ throw new Error("prompts-json must be a JSON array");
38
+ }
39
+ return parsed;
40
+ }
41
+ export function parseToolInstructions(value) {
42
+ if (!value) {
43
+ return undefined;
44
+ }
45
+ const parsed = JSON.parse(value);
46
+ if (!parsed || Array.isArray(parsed) || typeof parsed !== "object") {
47
+ throw new Error("tool-instructions-json must be a JSON object keyed by tool key");
48
+ }
49
+ return parsed;
50
+ }
51
+ export function parseGatewayOauthConfig(values) {
52
+ const provider = clean(values["gateway-provider"]);
53
+ const authorizationServerUrl = clean(values["gateway-auth-server-url"]);
54
+ const clientId = clean(values["gateway-client-id"]);
55
+ const resource = clean(values["gateway-resource"]);
56
+ const scopes = parseScopes(values["gateway-scopes"]);
57
+ if (!provider &&
58
+ !authorizationServerUrl &&
59
+ !clientId &&
60
+ !resource &&
61
+ (!scopes || scopes.length === 0)) {
62
+ return undefined;
63
+ }
64
+ return {
65
+ provider,
66
+ authorizationServerUrl,
67
+ clientId,
68
+ resource,
69
+ scopes,
70
+ };
71
+ }
72
+ export function parseEmcyGatewayIntegration(values) {
73
+ const usesGateway = values["use-emcy-gateway"] === true;
74
+ const oauth = parseGatewayOauthConfig(values);
75
+ const explicitMode = normalizeRuntimeMode(values.mode);
76
+ const modeUsesGateway = explicitMode ? isGatewayWorkerMode(explicitMode) : false;
77
+ if (!usesGateway && !modeUsesGateway && !oauth) {
78
+ return undefined;
79
+ }
80
+ return {
81
+ provider: "emcy",
82
+ ...(oauth ? { oauth } : {}),
83
+ };
84
+ }
85
+ export function resolveRuntimeMode(mode, headerArgs, useEmcyGateway = false) {
86
+ if (useEmcyGateway) {
87
+ return "emcy_gateway_worker";
88
+ }
89
+ const normalizedMode = normalizeRuntimeMode(mode);
90
+ if (normalizedMode) {
91
+ return normalizedMode;
92
+ }
93
+ if ((headerArgs?.length ?? 0) > 0) {
94
+ return "standalone_headers";
95
+ }
96
+ return "standalone_no_auth";
97
+ }
98
+ export function normalizeRuntimeMode(mode) {
99
+ if (!mode) {
100
+ return undefined;
101
+ }
102
+ const normalized = mode.trim().toLowerCase();
103
+ if (normalized === "standalone-no-auth" ||
104
+ normalized === "standalone_no_auth") {
105
+ return "standalone_no_auth";
106
+ }
107
+ if (normalized === "standalone-headers" ||
108
+ normalized === "standalone_headers") {
109
+ return "standalone_headers";
110
+ }
111
+ if (normalized === "emcy-gateway-worker" ||
112
+ normalized === "emcy_gateway_worker") {
113
+ return "emcy_gateway_worker";
114
+ }
115
+ throw new Error(`Unsupported --mode "${mode}". Supported modes: standalone-no-auth, standalone-headers. For Emcy Gateway-backed runtimes, use --use-emcy-gateway.`);
116
+ }
117
+ export function parseUpstreamHeaders(headerArgs) {
118
+ if (!headerArgs || headerArgs.length === 0) {
119
+ return [];
120
+ }
121
+ return headerArgs.map((value) => {
122
+ const separatorIndex = value.indexOf("=");
123
+ if (separatorIndex <= 0 || separatorIndex === value.length - 1) {
124
+ throw new Error(`Invalid --header "${value}". Use Header-Name=ENV_VAR.`);
125
+ }
126
+ const name = value.slice(0, separatorIndex).trim();
127
+ const envVar = value.slice(separatorIndex + 1).trim();
128
+ if (!name || !envVar) {
129
+ throw new Error(`Invalid --header "${value}". Use Header-Name=ENV_VAR.`);
130
+ }
131
+ return { name, envVar };
132
+ });
133
+ }
134
+ function parseScopes(value) {
135
+ const cleaned = clean(value);
136
+ if (!cleaned) {
137
+ return undefined;
138
+ }
139
+ return cleaned
140
+ .split(/[,\s]+/)
141
+ .map((scope) => scope.trim())
142
+ .filter(Boolean);
143
+ }
144
+ function clean(value) {
145
+ const trimmed = value?.trim();
146
+ return trimmed ? trimmed : undefined;
147
+ }
148
+ //# sourceMappingURL=cli-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-config.js","sourceRoot":"","sources":["../src/cli-config.ts"],"names":[],"mappings":"AAUA,SAAS,mBAAmB,CAAC,IAAiB;IAC5C,OAAO,IAAI,KAAK,qBAAqB,CAAC;AACxC,CAAC;AAwBD,MAAM,UAAU,uBAAuB,CACrC,MAAyB;IAEzB,OAAO;QACL,WAAW,EAAE,kBAAkB,CAC7B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,kBAAkB,CAAC,KAAK,IAAI,CACpC;QACD,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC;QACpD,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACzE,kBAAkB,EAAE,2BAA2B,CAAC,MAAM,CAAC;QACvD,kBAAkB,EAAE,uBAAuB,CAAC,MAAM,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAA6B,EAC7B,MAAgC;IAEhC,OAAO;QACL,GAAG,WAAW;QACd,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EACf,MAAM,CAAC,kBAAkB,EAAE,KAAK,IAAI,MAAM,CAAC,kBAAkB;QAC/D,kBAAkB,EAAE,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM;gBACjC,WAAW,CAAC,kBAAkB,EAAE,MAAM;gBACtC,WAAW,CAAC,kBAAkB;gBAC9B,EAAE;YACJ,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAyB;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,MAA4B,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAyB;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,OAAO,MAA+C,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAyB;IAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnD,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAErD,IACE,CAAC,QAAQ;QACT,CAAC,sBAAsB;QACvB,CAAC,QAAQ;QACT,CAAC,QAAQ;QACT,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ;QACR,sBAAsB;QACtB,QAAQ;QACR,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IACxD,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjF,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAwB,EACxB,UAAgC,EAChC,cAAc,GAAG,KAAK;IAEtB,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAwB;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,IACE,UAAU,KAAK,oBAAoB;QACnC,UAAU,KAAK,oBAAoB,EACnC,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IACE,UAAU,KAAK,oBAAoB;QACnC,UAAU,KAAK,oBAAoB,EACnC,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IACE,UAAU,KAAK,qBAAqB;QACpC,UAAU,KAAK,qBAAqB,EACpC,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,uHAAuH,CACnJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAgC;IAEhC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,cAAc,IAAI,CAAC,IAAI,cAAc,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,6BAA6B,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,6BAA6B,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO;SACX,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,KAAK,CAAC,KAAyB;IACtC,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC"}
package/dist/cli.js CHANGED
@@ -15,6 +15,7 @@ import { existsSync } from 'node:fs';
15
15
  import { parseOpenAPI, validateOpenAPI } from './parser.js';
16
16
  import { mapToMcpTools } from './mapper.js';
17
17
  import { generateMcpServer } from './generator.js';
18
+ import { parseGeneratorCliConfig, pickGeneratorOptions, } from './cli-config.js';
18
19
  const VERSION = '0.1.0';
19
20
  const HELP = `
20
21
  @emcy/openapi-to-mcp - Convert OpenAPI specs to MCP servers
@@ -31,12 +32,25 @@ GENERATE OPTIONS:
31
32
  --url, -u URL or file path to OpenAPI specification (required)
32
33
  --name, -n Name for the generated MCP server (default: from spec title)
33
34
  --output, -o Output directory (default: ./<name>-mcp-server)
34
- --emcy, -e Enable Emcy telemetry integration
35
+ --emcy, -e Enable Emcy telemetry integration
35
36
  --base-url, -b Override base URL for API calls
36
37
  --version Version string for the server (default: from spec)
37
38
  --force, -f Overwrite existing output directory
38
39
  --local-sdk Path to local @emcy/sdk for development (uses file: reference)
39
-
40
+ --prompts-json JSON array of prompt definitions for MCP prompts feature
41
+ --tool-instructions-json JSON object keyed by tool key for tool-specific guidance
42
+ --mode Low-level runtime mode:
43
+ standalone-no-auth | standalone-headers
44
+ Use --use-emcy-gateway when you want Emcy Gateway to be the public edge.
45
+ --use-emcy-gateway
46
+ Generate a server preconfigured to use Emcy Gateway as the public MCP/OAuth edge
47
+ --header Upstream header mapping in the form Header-Name=ENV_VAR
48
+ Repeatable. Applies to standalone-headers and Gateway-enabled generated servers.
49
+ --gateway-provider Emcy Gateway OAuth provider recipe label
50
+ --gateway-auth-server-url Downstream OAuth issuer or metadata base URL
51
+ --gateway-client-id Downstream client ID Emcy should use
52
+ --gateway-resource Downstream API resource / audience
53
+ --gateway-scopes Comma or space separated downstream scopes
40
54
  EXAMPLES:
41
55
  # Generate from a URL
42
56
  npx @emcy/openapi-to-mcp generate --url https://petstore.swagger.io/v2/swagger.json
@@ -47,6 +61,17 @@ EXAMPLES:
47
61
  # Generate with custom output directory
48
62
  npx @emcy/openapi-to-mcp generate --url ./api.json -o ./my-mcp-server
49
63
 
64
+ # Generate a standalone MCP server that injects API key headers upstream
65
+ npx @emcy/openapi-to-mcp generate --url ./api.json --mode standalone-headers --header X-API-Key=UPSTREAM_API_KEY
66
+
67
+ # Generate a server that will use Emcy Gateway as the public edge
68
+ npx @emcy/openapi-to-mcp generate --url ./api.json --use-emcy-gateway \\
69
+ --gateway-provider sqlos \\
70
+ --gateway-auth-server-url https://auth.example.com/sqlos/auth \\
71
+ --gateway-client-id todo-mcp-local \\
72
+ --gateway-resource https://api.example.com/todos \\
73
+ --gateway-scopes "openid profile email offline_access todos.read todos.write"
74
+
50
75
  # Validate an OpenAPI spec
51
76
  npx @emcy/openapi-to-mcp validate --url https://api.example.com/openapi.json
52
77
  `;
@@ -118,6 +143,16 @@ async function runGenerate(args) {
118
143
  version: { type: 'string' },
119
144
  force: { type: 'boolean', short: 'f', default: false },
120
145
  'local-sdk': { type: 'string' }, // Path to local @emcy/sdk for dev
146
+ 'prompts-json': { type: 'string' }, // JSON array of prompt definitions
147
+ 'tool-instructions-json': { type: 'string' },
148
+ mode: { type: 'string' },
149
+ 'use-emcy-gateway': { type: 'boolean', default: false },
150
+ header: { type: 'string', multiple: true },
151
+ 'gateway-provider': { type: 'string' },
152
+ 'gateway-auth-server-url': { type: 'string' },
153
+ 'gateway-client-id': { type: 'string' },
154
+ 'gateway-resource': { type: 'string' },
155
+ 'gateway-scopes': { type: 'string' },
121
156
  },
122
157
  allowPositionals: false,
123
158
  });
@@ -149,20 +184,47 @@ async function runGenerate(args) {
149
184
  console.error('Use --force to overwrite.');
150
185
  process.exit(1);
151
186
  }
187
+ let parsedConfig;
188
+ try {
189
+ parsedConfig = parseGeneratorCliConfig(values);
190
+ }
191
+ catch (error) {
192
+ console.error('Error parsing generator options:', error instanceof Error ? error.message : error);
193
+ process.exit(1);
194
+ }
152
195
  console.log(`\nGenerating MCP server: ${serverName}`);
153
196
  console.log(` Output: ${resolvedOutput}`);
154
197
  console.log(` Emcy Telemetry: ${values.emcy ? 'enabled' : 'disabled'}`);
198
+ console.log(` Runtime Shape: ${parsedConfig.gatewayIntegration
199
+ ? "server configured to use Emcy Gateway as the public edge"
200
+ : parsedConfig.runtimeMode === "standalone_headers"
201
+ ? "standalone server with injected upstream headers"
202
+ : "standalone public server"}`);
203
+ console.log(` Emcy Gateway: ${parsedConfig.gatewayIntegration ? 'enabled' : 'disabled'}`);
155
204
  if (values['local-sdk']) {
156
205
  console.log(` Local SDK: ${values['local-sdk']}`);
157
206
  }
207
+ if (parsedConfig.prompts && parsedConfig.prompts.length > 0) {
208
+ console.log(` Prompts: ${parsedConfig.prompts.length} prompt(s) configured`);
209
+ }
210
+ if (parsedConfig.upstreamHeaders.length > 0) {
211
+ console.log(` Upstream Headers: ${parsedConfig.upstreamHeaders.map((header) => `${header.name}<- ${header.envVar}`).join(', ')}`);
212
+ }
213
+ if (parsedConfig.toolInstructions) {
214
+ console.log(` Tool Instructions: ${Object.keys(parsedConfig.toolInstructions).length} tool(s) customized`);
215
+ }
216
+ if (parsedConfig.gatewayIntegration?.oauth || parsedConfig.gatewayOauthConfig) {
217
+ const gatewayOauth = parsedConfig.gatewayIntegration?.oauth ?? parsedConfig.gatewayOauthConfig;
218
+ console.log(` Gateway OAuth: ${gatewayOauth?.provider || 'manual'}${gatewayOauth?.authorizationServerUrl ? ` via ${gatewayOauth.authorizationServerUrl}` : ''}`);
219
+ }
158
220
  // Generate the server
159
- const files = generateMcpServer(tools, {
221
+ const files = generateMcpServer(tools, pickGeneratorOptions({
160
222
  name: serverName,
161
223
  version: values.version || parsed.version || '1.0.0',
162
224
  baseUrl: values['base-url'] || parsed.baseUrl || 'http://localhost:3000',
163
225
  emcyEnabled: values.emcy || false,
164
226
  localSdkPath: values['local-sdk'],
165
- }, parsed.securitySchemes);
227
+ }, parsedConfig), parsed.securitySchemes);
166
228
  // Write files
167
229
  await mkdir(resolvedOutput, { recursive: true });
168
230
  await mkdir(join(resolvedOutput, 'src'), { recursive: true });