@appaflytech/wappa-mcp 0.0.1

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 (68) hide show
  1. package/.env.example +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +200 -0
  4. package/dist/auth.d.ts +20 -0
  5. package/dist/auth.d.ts.map +1 -0
  6. package/dist/auth.js +58 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/base-components.d.ts +52 -0
  9. package/dist/base-components.d.ts.map +1 -0
  10. package/dist/base-components.js +552 -0
  11. package/dist/base-components.js.map +1 -0
  12. package/dist/client.d.ts +141 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +341 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/index.d.ts +10 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +287 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/tools/components.d.ts +217 -0
  21. package/dist/tools/components.d.ts.map +1 -0
  22. package/dist/tools/components.js +258 -0
  23. package/dist/tools/components.js.map +1 -0
  24. package/dist/tools/dynamic-entities.d.ts +308 -0
  25. package/dist/tools/dynamic-entities.d.ts.map +1 -0
  26. package/dist/tools/dynamic-entities.js +278 -0
  27. package/dist/tools/dynamic-entities.js.map +1 -0
  28. package/dist/tools/entities.d.ts +212 -0
  29. package/dist/tools/entities.d.ts.map +1 -0
  30. package/dist/tools/entities.js +223 -0
  31. package/dist/tools/entities.js.map +1 -0
  32. package/dist/tools/general.d.ts +93 -0
  33. package/dist/tools/general.d.ts.map +1 -0
  34. package/dist/tools/general.js +218 -0
  35. package/dist/tools/general.js.map +1 -0
  36. package/dist/tools/languages.d.ts +157 -0
  37. package/dist/tools/languages.d.ts.map +1 -0
  38. package/dist/tools/languages.js +142 -0
  39. package/dist/tools/languages.js.map +1 -0
  40. package/dist/tools/layouts.d.ts +244 -0
  41. package/dist/tools/layouts.d.ts.map +1 -0
  42. package/dist/tools/layouts.js +218 -0
  43. package/dist/tools/layouts.js.map +1 -0
  44. package/dist/tools/menus.d.ts +154 -0
  45. package/dist/tools/menus.d.ts.map +1 -0
  46. package/dist/tools/menus.js +173 -0
  47. package/dist/tools/menus.js.map +1 -0
  48. package/dist/tools/pages.d.ts +472 -0
  49. package/dist/tools/pages.d.ts.map +1 -0
  50. package/dist/tools/pages.js +465 -0
  51. package/dist/tools/pages.js.map +1 -0
  52. package/dist/tools/queries.d.ts +221 -0
  53. package/dist/tools/queries.d.ts.map +1 -0
  54. package/dist/tools/queries.js +210 -0
  55. package/dist/tools/queries.js.map +1 -0
  56. package/dist/tools/sites.d.ts +187 -0
  57. package/dist/tools/sites.d.ts.map +1 -0
  58. package/dist/tools/sites.js +167 -0
  59. package/dist/tools/sites.js.map +1 -0
  60. package/dist/tools/themes.d.ts +182 -0
  61. package/dist/tools/themes.d.ts.map +1 -0
  62. package/dist/tools/themes.js +175 -0
  63. package/dist/tools/themes.js.map +1 -0
  64. package/dist/tools/widgets.d.ts +216 -0
  65. package/dist/tools/widgets.d.ts.map +1 -0
  66. package/dist/tools/widgets.js +182 -0
  67. package/dist/tools/widgets.js.map +1 -0
  68. package/package.json +50 -0
package/dist/index.js ADDED
@@ -0,0 +1,287 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * WAPPA Admin API MCP Server
4
+ *
5
+ * Provides Claude Code with direct access to WAPPA (Web as Platform) Admin API.
6
+ * Supports component CRUD, page management, widget operations, and more.
7
+ *
8
+ */
9
+ import { McpServer, ResourceTemplate, } from "@modelcontextprotocol/sdk/server/mcp.js";
10
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
+ import { z } from "zod";
12
+ import { config as loadDotenv } from "dotenv";
13
+ import { TokenManager } from "./auth.js";
14
+ import { WapClient } from "./client.js";
15
+ import { getComponentTools } from "./tools/components.js";
16
+ import { getPageTools } from "./tools/pages.js";
17
+ import { getWidgetTools } from "./tools/widgets.js";
18
+ import { getGeneralTools } from "./tools/general.js";
19
+ import { getSiteTools } from "./tools/sites.js";
20
+ import { getEntityTools } from "./tools/entities.js";
21
+ import { getDynamicEntityTools } from "./tools/dynamic-entities.js";
22
+ import { getLayoutTools } from "./tools/layouts.js";
23
+ import { getQueryTools } from "./tools/queries.js";
24
+ import { getMenuTools } from "./tools/menus.js";
25
+ import { getThemeTools } from "./tools/themes.js";
26
+ import { getLanguageTools } from "./tools/languages.js";
27
+ // ─── Configuration ─────────────────────────────────────────
28
+ // Load .env file when running locally (no-op if vars already set by MCP client)
29
+ // quiet:true prevents dotenvx from writing to stdout (which breaks MCP stdio protocol)
30
+ loadDotenv({ quiet: true, override: false });
31
+ function getConfig() {
32
+ const required = (key) => {
33
+ const value = process.env[key];
34
+ if (!value) {
35
+ throw new Error(`Missing required environment variable: ${key}`);
36
+ }
37
+ return value;
38
+ };
39
+ return {
40
+ adminApiUrl: required("WAP_ADMIN_API_URL"),
41
+ siteKey: process.env.WAP_SITE_KEY || process.env.WAP_SITE_ID || "", // key (slug) takes priority
42
+ email: required("WAP_EMAIL"),
43
+ password: required("WAP_PASSWORD"),
44
+ language: process.env.WAP_LANGUAGE || "tr",
45
+ };
46
+ }
47
+ // ─── Server Setup ──────────────────────────────────────────
48
+ async function main() {
49
+ const config = getConfig();
50
+ const tokenManager = new TokenManager({
51
+ adminApiUrl: config.adminApiUrl,
52
+ email: config.email,
53
+ password: config.password,
54
+ });
55
+ const client = new WapClient({
56
+ adminApiUrl: config.adminApiUrl,
57
+ siteKey: config.siteKey,
58
+ language: config.language,
59
+ tokenManager,
60
+ });
61
+ // Collect all tools
62
+ const componentTools = getComponentTools(client);
63
+ const pageTools = getPageTools(client);
64
+ const widgetTools = getWidgetTools(client);
65
+ const generalTools = getGeneralTools(client);
66
+ const siteTools = getSiteTools(client);
67
+ const entityTools = getEntityTools(client);
68
+ const dynamicEntityTools = getDynamicEntityTools(client);
69
+ const layoutTools = getLayoutTools(client);
70
+ const queryTools = getQueryTools(client);
71
+ const menuTools = getMenuTools(client);
72
+ const themeTools = getThemeTools(client);
73
+ const languageTools = getLanguageTools(client);
74
+ const allTools = {
75
+ ...componentTools,
76
+ ...pageTools,
77
+ ...widgetTools,
78
+ ...generalTools,
79
+ ...siteTools,
80
+ ...entityTools,
81
+ ...dynamicEntityTools,
82
+ ...layoutTools,
83
+ ...queryTools,
84
+ ...menuTools,
85
+ ...themeTools,
86
+ ...languageTools,
87
+ };
88
+ // Create MCP Server
89
+ const server = new McpServer({
90
+ name: "wappa-mcp",
91
+ version: "1.0.0",
92
+ });
93
+ // Register each tool with the MCP server
94
+ for (const [toolName, toolDef] of Object.entries(allTools)) {
95
+ const { description, inputSchema, handler } = toolDef;
96
+ // Convert JSON Schema properties to Zod schema
97
+ const zodShape = {};
98
+ const props = inputSchema.properties || {};
99
+ const required = inputSchema.required || [];
100
+ for (const [propName, propDef] of Object.entries(props)) {
101
+ let zodType;
102
+ switch (propDef.type) {
103
+ case "string":
104
+ zodType = propDef.enum ? z.enum(propDef.enum) : z.string();
105
+ break;
106
+ case "number":
107
+ zodType = z.number();
108
+ break;
109
+ case "boolean":
110
+ zodType = z.boolean();
111
+ break;
112
+ case "object":
113
+ zodType = z.record(z.string(), z.unknown());
114
+ break;
115
+ case "array":
116
+ zodType = z.array(z.unknown());
117
+ break;
118
+ default:
119
+ zodType = z.unknown();
120
+ }
121
+ if (propDef.description) {
122
+ zodType = zodType.describe(propDef.description);
123
+ }
124
+ if (!required.includes(propName)) {
125
+ zodType = zodType.optional();
126
+ }
127
+ zodShape[propName] = zodType;
128
+ }
129
+ server.tool(`wappa_${toolName}`, description, zodShape, async (args) => {
130
+ try {
131
+ return await handler(args);
132
+ }
133
+ catch (error) {
134
+ return {
135
+ content: [
136
+ {
137
+ type: "text",
138
+ text: `Error: ${error.message}`,
139
+ },
140
+ ],
141
+ isError: true,
142
+ };
143
+ }
144
+ });
145
+ }
146
+ // ─── Resources ─────────────────────────────────────────────
147
+ // Static: server config (credentials hariç)
148
+ server.resource("wappa-config", "wappa://config", {
149
+ description: "Aktif WAPPA sunucu yapılandırması (site ID, dil, API URL)",
150
+ mimeType: "application/json",
151
+ }, async (uri) => ({
152
+ contents: [
153
+ {
154
+ uri: uri.href,
155
+ mimeType: "application/json",
156
+ text: JSON.stringify({
157
+ adminApiUrl: config.adminApiUrl,
158
+ siteKey: config.siteKey,
159
+ language: config.language,
160
+ }, null, 2),
161
+ },
162
+ ],
163
+ }));
164
+ // Dynamic: site listesi
165
+ server.resource("wappa-sites", "wappa://sites", {
166
+ description: "WAPPA'daki tüm site listesi (canlı veri)",
167
+ mimeType: "application/json",
168
+ }, async (uri) => {
169
+ const result = await client.getSites({});
170
+ return {
171
+ contents: [
172
+ {
173
+ uri: uri.href,
174
+ mimeType: "application/json",
175
+ text: JSON.stringify(result, null, 2),
176
+ },
177
+ ],
178
+ };
179
+ });
180
+ // Dynamic: aktif sitenin sayfaları
181
+ server.resource("wappa-pages", "wappa://pages", {
182
+ description: "Aktif sitedeki tüm sayfalar (canlı veri)",
183
+ mimeType: "application/json",
184
+ }, async (uri) => {
185
+ const result = await client.getPages({});
186
+ return {
187
+ contents: [
188
+ {
189
+ uri: uri.href,
190
+ mimeType: "application/json",
191
+ text: JSON.stringify(result, null, 2),
192
+ },
193
+ ],
194
+ };
195
+ });
196
+ // Dynamic: bileşenler
197
+ server.resource("wappa-components", "wappa://components", {
198
+ description: "Aktif sitedeki tüm bileşenler (canlı veri)",
199
+ mimeType: "application/json",
200
+ }, async (uri) => {
201
+ const result = await client.getComponents({});
202
+ return {
203
+ contents: [
204
+ {
205
+ uri: uri.href,
206
+ mimeType: "application/json",
207
+ text: JSON.stringify(result, null, 2),
208
+ },
209
+ ],
210
+ };
211
+ });
212
+ // Dynamic: entityler
213
+ server.resource("wappa-entities", "wappa://entities", {
214
+ description: "Tanımlı tüm entity şemaları (canlı veri)",
215
+ mimeType: "application/json",
216
+ }, async (uri) => {
217
+ const result = await client.getEntities({});
218
+ return {
219
+ contents: [
220
+ {
221
+ uri: uri.href,
222
+ mimeType: "application/json",
223
+ text: JSON.stringify(result, null, 2),
224
+ },
225
+ ],
226
+ };
227
+ });
228
+ // Dynamic: layoutlar
229
+ server.resource("wappa-layouts", "wappa://layouts", {
230
+ description: "Aktif sitedeki tüm layoutlar (canlı veri)",
231
+ mimeType: "application/json",
232
+ }, async (uri) => {
233
+ const result = await client.getLayouts({});
234
+ return {
235
+ contents: [
236
+ {
237
+ uri: uri.href,
238
+ mimeType: "application/json",
239
+ text: JSON.stringify(result, null, 2),
240
+ },
241
+ ],
242
+ };
243
+ });
244
+ // Dynamic: sorgu şablonları
245
+ server.resource("wappa-queries", "wappa://queries", {
246
+ description: "Kayıtlı tüm query/sorgu şablonları (canlı veri)",
247
+ mimeType: "application/json",
248
+ }, async (uri) => {
249
+ const result = await client.getQueries({});
250
+ return {
251
+ contents: [
252
+ {
253
+ uri: uri.href,
254
+ mimeType: "application/json",
255
+ text: JSON.stringify(result, null, 2),
256
+ },
257
+ ],
258
+ };
259
+ });
260
+ // Dynamic Resource Template: belirli bir entity'nin kayıtları
261
+ server.resource("wappa-entity-records", new ResourceTemplate("wappa://entities/{entityId}/records", {
262
+ list: undefined,
263
+ }), {
264
+ description: "Belirli bir entity'nin tüm kayıtları. URI: wappa://entities/{entityId}/records",
265
+ mimeType: "application/json",
266
+ }, async (uri, { entityId }) => {
267
+ const result = await client.getDynamicEntities(entityId, {});
268
+ return {
269
+ contents: [
270
+ {
271
+ uri: uri.href,
272
+ mimeType: "application/json",
273
+ text: JSON.stringify(result, null, 2),
274
+ },
275
+ ],
276
+ };
277
+ });
278
+ // Start the server
279
+ const transport = new StdioServerTransport();
280
+ await server.connect(transport);
281
+ console.error("WAPPA MCP Server running on stdio");
282
+ }
283
+ main().catch((error) => {
284
+ console.error("Failed to start WAPPA MCP Server:", error);
285
+ process.exit(1);
286
+ });
287
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EACL,SAAS,EACT,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,8DAA8D;AAE9D,gFAAgF;AAChF,uFAAuF;AACvF,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAE7C,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,4BAA4B;QAChG,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;QAC5B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI;KAC3C,CAAC;AACJ,CAAC;AAED,8DAA8D;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY;KACb,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAwB;QACpC,GAAG,cAAc;QACjB,GAAG,SAAS;QACZ,GAAG,WAAW;QACd,GAAG,YAAY;QACf,GAAG,SAAS;QACZ,GAAG,WAAW;QACd,GAAG,kBAAkB;QACrB,GAAG,WAAW;QACd,GAAG,UAAU;QACb,GAAG,SAAS;QACZ,GAAG,UAAU;QACb,GAAG,aAAa;KACjB,CAAC;IAEF,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,yCAAyC;IACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEtD,+CAA+C;QAC/C,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;QAE5C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAGnD,EAAE,CAAC;YACJ,IAAI,OAAY,CAAC;YAEjB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,QAAQ;oBACX,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC3D,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,OAAO;oBACV,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/B,MAAM;gBACR;oBACE,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,IAAI,CACT,SAAS,QAAQ,EAAE,EACnB,WAAW,EACX,QAAQ,EACR,KAAK,EAAE,IAAS,EAAE,EAAE;YAClB,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;yBAChC;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,8DAA8D;IAE9D,4CAA4C;IAC5C,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,gBAAgB,EAChB;QACE,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,QAAQ,CACb,aAAa,EACb,eAAe,EACf;QACE,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mCAAmC;IACnC,MAAM,CAAC,QAAQ,CACb,aAAa,EACb,eAAe,EACf;QACE,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,QAAQ,CACb,kBAAkB,EAClB,oBAAoB,EACpB;QACE,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,QAAQ,CACb,gBAAgB,EAChB,kBAAkB,EAClB;QACE,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,QAAQ,CACb,eAAe,EACf,iBAAiB,EACjB;QACE,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,QAAQ,CACb,eAAe,EACf,iBAAiB,EACjB;QACE,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CACb,sBAAsB,EACtB,IAAI,gBAAgB,CAAC,qCAAqC,EAAE;QAC1D,IAAI,EAAE,SAAS;KAChB,CAAC,EACF;QACE,WAAW,EACT,gFAAgF;QAClF,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mBAAmB;IACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * MCP Tools for WAP Component CRUD operations
3
+ */
4
+ import { WapClient } from "../client.js";
5
+ export declare function getComponentTools(client: WapClient): {
6
+ list_components: {
7
+ description: string;
8
+ inputSchema: {
9
+ type: "object";
10
+ properties: {
11
+ skip: {
12
+ type: string;
13
+ description: string;
14
+ };
15
+ take: {
16
+ type: string;
17
+ description: string;
18
+ };
19
+ term: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ };
24
+ };
25
+ handler: (args: {
26
+ skip?: number;
27
+ take?: number;
28
+ term?: string;
29
+ }) => Promise<{
30
+ content: {
31
+ type: "text";
32
+ text: string;
33
+ }[];
34
+ }>;
35
+ };
36
+ get_component: {
37
+ description: string;
38
+ inputSchema: {
39
+ type: "object";
40
+ properties: {
41
+ id: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ };
46
+ required: string[];
47
+ };
48
+ handler: (args: {
49
+ id: string;
50
+ }) => Promise<{
51
+ content: {
52
+ type: "text";
53
+ text: string;
54
+ }[];
55
+ }>;
56
+ };
57
+ create_component: {
58
+ description: string;
59
+ inputSchema: {
60
+ type: "object";
61
+ properties: {
62
+ name: {
63
+ type: string;
64
+ description: string;
65
+ };
66
+ title: {
67
+ type: string;
68
+ description: string;
69
+ };
70
+ definition: {
71
+ type: string;
72
+ description: string;
73
+ };
74
+ type: {
75
+ type: string;
76
+ description: string;
77
+ };
78
+ droppable: {
79
+ type: string;
80
+ description: string;
81
+ };
82
+ description: {
83
+ type: string;
84
+ description: string;
85
+ };
86
+ icon: {
87
+ type: string;
88
+ description: string;
89
+ };
90
+ accessType: {
91
+ type: string;
92
+ description: string;
93
+ };
94
+ };
95
+ required: string[];
96
+ };
97
+ handler: (args: {
98
+ name: string;
99
+ title: string;
100
+ definition: unknown;
101
+ type?: string;
102
+ droppable?: boolean;
103
+ description?: string;
104
+ icon?: string;
105
+ accessType?: number;
106
+ }) => Promise<{
107
+ content: {
108
+ type: "text";
109
+ text: string;
110
+ }[];
111
+ }>;
112
+ };
113
+ update_component: {
114
+ description: string;
115
+ inputSchema: {
116
+ type: "object";
117
+ properties: {
118
+ id: {
119
+ type: string;
120
+ description: string;
121
+ };
122
+ name: {
123
+ type: string;
124
+ description: string;
125
+ };
126
+ title: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ definition: {
131
+ type: string;
132
+ description: string;
133
+ };
134
+ type: {
135
+ type: string;
136
+ description: string;
137
+ };
138
+ droppable: {
139
+ type: string;
140
+ };
141
+ description: {
142
+ type: string;
143
+ };
144
+ icon: {
145
+ type: string;
146
+ };
147
+ accessType: {
148
+ type: string;
149
+ };
150
+ };
151
+ required: string[];
152
+ };
153
+ handler: (args: {
154
+ id: string;
155
+ name?: string;
156
+ title?: string;
157
+ definition?: unknown;
158
+ type?: string;
159
+ droppable?: boolean;
160
+ description?: string;
161
+ icon?: string;
162
+ accessType?: number;
163
+ }) => Promise<{
164
+ content: {
165
+ type: "text";
166
+ text: string;
167
+ }[];
168
+ }>;
169
+ };
170
+ list_base_components: {
171
+ description: string;
172
+ inputSchema: {
173
+ type: "object";
174
+ properties: {
175
+ isMobile: {
176
+ type: string;
177
+ description: string;
178
+ };
179
+ type: {
180
+ type: string;
181
+ description: string;
182
+ };
183
+ };
184
+ };
185
+ handler: (args: {
186
+ isMobile?: boolean;
187
+ type?: string;
188
+ }) => Promise<{
189
+ content: {
190
+ type: "text";
191
+ text: string;
192
+ }[];
193
+ }>;
194
+ };
195
+ delete_component: {
196
+ description: string;
197
+ inputSchema: {
198
+ type: "object";
199
+ properties: {
200
+ id: {
201
+ type: string;
202
+ description: string;
203
+ };
204
+ };
205
+ required: string[];
206
+ };
207
+ handler: (args: {
208
+ id: string;
209
+ }) => Promise<{
210
+ content: {
211
+ type: "text";
212
+ text: string;
213
+ }[];
214
+ }>;
215
+ };
216
+ };
217
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/tools/components.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;wBAuBvB;YACpB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf;;;;;;;;;;;;;;;;;;;wBA8BqB;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAgFd;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE,OAAO,CAAC;YACpB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqDqB;YACpB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB;;;;;;;;;;;;;;;;;;;;;;wBAwCqB;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;wBAyCrC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;;;;;EAUzC"}