@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.
- package/README.md +180 -127
- package/dist/__tests__/cli-config.test.d.ts +2 -0
- package/dist/__tests__/cli-config.test.d.ts.map +1 -0
- package/dist/__tests__/cli-config.test.js +95 -0
- package/dist/__tests__/cli-config.test.js.map +1 -0
- package/dist/__tests__/generator.test.d.ts +1 -1
- package/dist/__tests__/generator.test.js +178 -200
- package/dist/__tests__/generator.test.js.map +1 -1
- package/dist/__tests__/integration.test.js +11 -11
- package/dist/__tests__/integration.test.js.map +1 -1
- package/dist/__tests__/mapper.test.js +30 -6
- package/dist/__tests__/mapper.test.js.map +1 -1
- package/dist/__tests__/parser.test.js +2 -0
- package/dist/__tests__/parser.test.js.map +1 -1
- package/dist/__tests__/tool-identity.test.d.ts +2 -0
- package/dist/__tests__/tool-identity.test.d.ts.map +1 -0
- package/dist/__tests__/tool-identity.test.js +15 -0
- package/dist/__tests__/tool-identity.test.js.map +1 -0
- package/dist/cli-config.d.ts +31 -0
- package/dist/cli-config.d.ts.map +1 -0
- package/dist/cli-config.js +148 -0
- package/dist/cli-config.js.map +1 -0
- package/dist/cli.js +66 -4
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +8 -3
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +711 -327
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mapper.d.ts.map +1 -1
- package/dist/mapper.js +6 -2
- package/dist/mapper.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +18 -5
- package/dist/parser.js.map +1 -1
- package/dist/tool-identity.d.ts +6 -0
- package/dist/tool-identity.d.ts.map +1 -0
- package/dist/tool-identity.js +67 -0
- package/dist/tool-identity.js.map +1 -0
- package/dist/types.d.ts +119 -0
- package/dist/types.d.ts.map +1 -1
- 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: '
|
|
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(['
|
|
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('
|
|
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":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGjF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/mapper.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGjF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC/C,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,EAAE;YACd,sBAAsB,EAAE,SAAS;YACjC,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,EAAE,EAAE,MAAM;wBACV,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;qBACpD;iBACF;gBACD,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;aAChD;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAClC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;SAChG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,GAAG;wBACT,EAAE,EAAE,OAAO;wBACX,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,WAAW,EAAE,cAAc;qBAC5B;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,EAAE,EAAE,OAAO;wBACX,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;qBACzC;iBACF;gBACD,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC9C,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YAClD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;SACxC,CAAC,CAAC;QACH,oEAAoE;QACpE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,kBAAkB;oBAC/B,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC5B;iBACF;gBACD,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC;YAC3D,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YAC3B,WAAW,EAAE,kCAAkC;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,gBAAgB;gBACzB,WAAW,EAAE,qDAAqD;gBAClE,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;YACD;gBACE,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;YACD;gBACE,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;YACD;gBACE,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,SAAS,GAAsB;YACnC;gBACE,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;gBACzC,cAAc,EAAE,EAAE;gBAClB,IAAI,EAAE,EAAE;aACT;SACF,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,QAAQ,GAAoB;YAChC,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;YAClB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,SAAS,GAAsB;YACnC,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACtH,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACvH,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;SAC/H,CAAC;QAEF,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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 @@
|
|
|
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":"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"}
|
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
|
-
|
|
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 });
|