vibekit-mcp 0.5.5 → 0.6.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 (3) hide show
  1. package/dist/index.js +19 -456
  2. package/package.json +2 -1
  3. package/tools.json +363 -0
package/dist/index.js CHANGED
@@ -36,462 +36,19 @@ async function apiRequest(method, path, body) {
36
36
  return { ok: false, error: err instanceof Error ? err.message : "Unknown error" };
37
37
  }
38
38
  }
39
- // Tool definitions
40
- const tools = [
41
- // Hosting & Apps
42
- {
43
- name: "vibekit_list_apps",
44
- description: "List all hosted apps in your VibeKit account.",
45
- inputSchema: {
46
- type: "object",
47
- properties: {},
48
- },
49
- },
50
- {
51
- name: "vibekit_get_app",
52
- description: "Get details about a specific hosted app.",
53
- inputSchema: {
54
- type: "object",
55
- properties: {
56
- appId: {
57
- type: "string",
58
- description: "The app ID to get details for",
59
- },
60
- },
61
- required: ["appId"],
62
- },
63
- },
64
- {
65
- name: "vibekit_create_app",
66
- description: "Create a new hosted app from a template.",
67
- inputSchema: {
68
- type: "object",
69
- properties: {
70
- template: {
71
- type: "string",
72
- description: "Template to use (e.g., 'nextjs', 'react', 'express')",
73
- },
74
- subdomain: {
75
- type: "string",
76
- description: "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)",
77
- },
78
- },
79
- required: ["template", "subdomain"],
80
- },
81
- },
82
- {
83
- name: "vibekit_deploy",
84
- description: "Deploy a GitHub repo to VibeKit hosting.",
85
- inputSchema: {
86
- type: "object",
87
- properties: {
88
- repo: {
89
- type: "string",
90
- description: "GitHub repo in format 'owner/repo'",
91
- },
92
- subdomain: {
93
- type: "string",
94
- description: "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)",
95
- },
96
- },
97
- required: ["repo", "subdomain"],
98
- },
99
- },
100
- {
101
- name: "vibekit_redeploy",
102
- description: "Redeploy an existing hosted app to update it with latest code.",
103
- inputSchema: {
104
- type: "object",
105
- properties: {
106
- appId: {
107
- type: "string",
108
- description: "The app ID to redeploy",
109
- },
110
- },
111
- required: ["appId"],
112
- },
113
- },
114
- {
115
- name: "vibekit_app_logs",
116
- description: "Get application logs for debugging and monitoring.",
117
- inputSchema: {
118
- type: "object",
119
- properties: {
120
- appId: {
121
- type: "string",
122
- description: "The app ID to get logs for",
123
- },
124
- lines: {
125
- type: "number",
126
- description: "Number of log lines to retrieve (default: 100)",
127
- },
128
- },
129
- required: ["appId"],
130
- },
131
- },
132
- {
133
- name: "vibekit_restart_app",
134
- description: "Restart a hosted app.",
135
- inputSchema: {
136
- type: "object",
137
- properties: {
138
- appId: {
139
- type: "string",
140
- description: "The app ID to restart",
141
- },
142
- },
143
- required: ["appId"],
144
- },
145
- },
146
- {
147
- name: "vibekit_stop_app",
148
- description: "Stop a hosted app.",
149
- inputSchema: {
150
- type: "object",
151
- properties: {
152
- appId: {
153
- type: "string",
154
- description: "The app ID to stop",
155
- },
156
- },
157
- required: ["appId"],
158
- },
159
- },
160
- {
161
- name: "vibekit_start_app",
162
- description: "Start a stopped hosted app.",
163
- inputSchema: {
164
- type: "object",
165
- properties: {
166
- appId: {
167
- type: "string",
168
- description: "The app ID to start",
169
- },
170
- },
171
- required: ["appId"],
172
- },
173
- },
174
- {
175
- name: "vibekit_app_env",
176
- description: "Get environment variables for a hosted app.",
177
- inputSchema: {
178
- type: "object",
179
- properties: {
180
- appId: {
181
- type: "string",
182
- description: "The app ID to get environment variables for",
183
- },
184
- },
185
- required: ["appId"],
186
- },
187
- },
188
- {
189
- name: "vibekit_set_env",
190
- description: "Set environment variables for a hosted app.",
191
- inputSchema: {
192
- type: "object",
193
- properties: {
194
- appId: {
195
- type: "string",
196
- description: "The app ID to set environment variables for",
197
- },
198
- vars: {
199
- type: "object",
200
- description: "Object of key-value pairs to set as environment variables",
201
- },
202
- },
203
- required: ["appId", "vars"],
204
- },
205
- },
206
- {
207
- name: "vibekit_delete_app",
208
- description: "Delete a hosted app permanently.",
209
- inputSchema: {
210
- type: "object",
211
- properties: {
212
- appId: {
213
- type: "string",
214
- description: "The app ID to delete",
215
- },
216
- },
217
- required: ["appId"],
218
- },
219
- },
220
- // AI Agent
221
- {
222
- name: "vibekit_chat",
223
- description: "Chat with an app's AI agent. The agent can read, write, and modify the app's code.",
224
- inputSchema: {
225
- type: "object",
226
- properties: {
227
- appId: {
228
- type: "string",
229
- description: "The app ID to chat with the agent for",
230
- },
231
- message: {
232
- type: "string",
233
- description: "Message to send to the AI agent",
234
- },
235
- },
236
- required: ["appId", "message"],
237
- },
238
- },
239
- {
240
- name: "vibekit_agent_status",
241
- description: "Get the status of an app's AI agent.",
242
- inputSchema: {
243
- type: "object",
244
- properties: {
245
- appId: {
246
- type: "string",
247
- description: "The app ID to get agent status for",
248
- },
249
- },
250
- required: ["appId"],
251
- },
252
- },
253
- {
254
- name: "vibekit_agent_history",
255
- description: "Get chat history with an app's AI agent.",
256
- inputSchema: {
257
- type: "object",
258
- properties: {
259
- appId: {
260
- type: "string",
261
- description: "The app ID to get agent history for",
262
- },
263
- limit: {
264
- type: "number",
265
- description: "Maximum number of messages to return (default: 20)",
266
- },
267
- },
268
- required: ["appId"],
269
- },
270
- },
271
- // Database
272
- {
273
- name: "vibekit_enable_database",
274
- description: "Enable database for a hosted app.",
275
- inputSchema: {
276
- type: "object",
277
- properties: {
278
- appId: {
279
- type: "string",
280
- description: "The app ID to enable database for",
281
- },
282
- },
283
- required: ["appId"],
284
- },
285
- },
286
- {
287
- name: "vibekit_database_status",
288
- description: "Get database status and connection info for an app.",
289
- inputSchema: {
290
- type: "object",
291
- properties: {
292
- appId: {
293
- type: "string",
294
- description: "The app ID to get database status for",
295
- },
296
- },
297
- required: ["appId"],
298
- },
299
- },
300
- // QA
301
- {
302
- name: "vibekit_run_qa",
303
- description: "Run automated QA tests on a hosted app.",
304
- inputSchema: {
305
- type: "object",
306
- properties: {
307
- appId: {
308
- type: "string",
309
- description: "The app ID to run QA tests for",
310
- },
311
- },
312
- required: ["appId"],
313
- },
314
- },
315
- {
316
- name: "vibekit_qa_status",
317
- description: "Get QA test results and status for an app.",
318
- inputSchema: {
319
- type: "object",
320
- properties: {
321
- appId: {
322
- type: "string",
323
- description: "The app ID to get QA status for",
324
- },
325
- },
326
- required: ["appId"],
327
- },
328
- },
329
- // Tasks (existing)
330
- {
331
- name: "vibekit_submit_task",
332
- description: "Submit a coding task to VibeKit. The AI will write code, commit to GitHub, and deploy to {subdomain}.vibekit.bot. Returns a task ID to poll for results.",
333
- inputSchema: {
334
- type: "object",
335
- properties: {
336
- task: {
337
- type: "string",
338
- description: "What you want built or changed. Be specific about features, design, and behavior.",
339
- },
340
- repo: {
341
- type: "string",
342
- description: "GitHub repo in format 'owner/repo'. Optional — will use user's current repo if not specified.",
343
- },
344
- branch: {
345
- type: "string",
346
- description: "Git branch to work on. Default: main",
347
- },
348
- deploy: {
349
- type: "boolean",
350
- description: "Auto-deploy to Vercel when done. Default: true",
351
- },
352
- callbackUrl: {
353
- type: "string",
354
- description: "Webhook URL to receive task completion notification.",
355
- },
356
- },
357
- required: ["task"],
358
- },
359
- },
360
- {
361
- name: "vibekit_get_task",
362
- description: "Get the status and result of a previously submitted task.",
363
- inputSchema: {
364
- type: "object",
365
- properties: {
366
- taskId: {
367
- type: "string",
368
- description: "The task ID returned from vibekit_submit_task",
369
- },
370
- },
371
- required: ["taskId"],
372
- },
373
- },
374
- {
375
- name: "vibekit_list_tasks",
376
- description: "List recent tasks submitted to VibeKit.",
377
- inputSchema: {
378
- type: "object",
379
- properties: {
380
- limit: {
381
- type: "number",
382
- description: "Max number of tasks to return. Default: 10",
383
- },
384
- status: {
385
- type: "string",
386
- enum: ["pending", "running", "completed", "failed"],
387
- description: "Filter by status",
388
- },
389
- },
390
- },
391
- },
392
- {
393
- name: "vibekit_wait_for_task",
394
- description: "Wait for a task to complete and return the result. Polls every 5 seconds up to the timeout.",
395
- inputSchema: {
396
- type: "object",
397
- properties: {
398
- taskId: {
399
- type: "string",
400
- description: "The task ID to wait for",
401
- },
402
- timeoutSeconds: {
403
- type: "number",
404
- description: "Max seconds to wait. Default: 300 (5 minutes)",
405
- },
406
- },
407
- required: ["taskId"],
408
- },
409
- },
410
- {
411
- name: "vibekit_create_schedule",
412
- description: "Create a scheduled recurring task. The AI will run this task automatically on the specified schedule.",
413
- inputSchema: {
414
- type: "object",
415
- properties: {
416
- task: {
417
- type: "string",
418
- description: "What to do on each run. e.g., 'Improve SEO and page speed'",
419
- },
420
- repo: {
421
- type: "string",
422
- description: "GitHub repo in format 'owner/repo'",
423
- },
424
- cron: {
425
- type: "string",
426
- description: "Cron expression. e.g., '0 9 * * 1' for every Monday at 9am UTC",
427
- },
428
- name: {
429
- type: "string",
430
- description: "Friendly name for the schedule",
431
- },
432
- },
433
- required: ["task", "repo", "cron"],
434
- },
435
- },
436
- {
437
- name: "vibekit_list_schedules",
438
- description: "List all scheduled tasks.",
439
- inputSchema: {
440
- type: "object",
441
- properties: {},
442
- },
443
- },
444
- {
445
- name: "vibekit_delete_schedule",
446
- description: "Delete a scheduled task.",
447
- inputSchema: {
448
- type: "object",
449
- properties: {
450
- scheduleId: {
451
- type: "string",
452
- description: "The schedule ID to delete",
453
- },
454
- },
455
- required: ["scheduleId"],
456
- },
457
- },
458
- // Account
459
- {
460
- name: "vibekit_account",
461
- description: "Get VibeKit account info including plan, credits balance, and usage.",
462
- inputSchema: {
463
- type: "object",
464
- properties: {},
465
- },
466
- },
467
- {
468
- name: "vibekit_list_skills",
469
- description: "List all available implementation skills. Returns skill IDs, names, descriptions, and tags. Use this to discover what skills are available before fetching specific ones.",
470
- inputSchema: {
471
- type: "object",
472
- properties: {
473
- tag: {
474
- type: "string",
475
- description: "Filter skills by tag (e.g., 'react', 'database', 'security')",
476
- },
477
- },
478
- },
479
- },
480
- {
481
- name: "vibekit_get_skill",
482
- description: "Fetch the full content of a specific skill. Skills contain implementation patterns, code examples, and best practices for a domain. Fetch skills on-demand when you need guidance on a specific topic.",
483
- inputSchema: {
484
- type: "object",
485
- properties: {
486
- id: {
487
- type: "string",
488
- description: "Skill ID from vibekit_list_skills (e.g., 'nextjs', 'trpc', 'auth')",
489
- },
490
- },
491
- required: ["id"],
492
- },
493
- },
494
- ];
39
+ // Tool definitions live in tools.json — single source of truth, also rendered
40
+ // dynamically into the /mcp-server marketing page so it never drifts.
41
+ // require() resolves relative to the compiled file location at runtime;
42
+ // tools.json sits at the package root next to dist/, both when installed
43
+ // from npm and when run via tsx in dev.
44
+ const fs_1 = require("fs");
45
+ const path_1 = require("path");
46
+ const TOOLS_MANIFEST_PATH = (0, path_1.join)(__dirname, "..", "tools.json");
47
+ const tools = JSON.parse((0, fs_1.readFileSync)(TOOLS_MANIFEST_PATH, "utf8")).map((t) => ({
48
+ name: t.name,
49
+ description: t.description,
50
+ inputSchema: t.inputSchema,
51
+ }));
495
52
  // Tool handlers
496
53
  async function handleTool(name, args) {
497
54
  let result;
@@ -509,6 +66,9 @@ async function handleTool(name, args) {
509
66
  subdomain: args.subdomain,
510
67
  });
511
68
  break;
69
+ case "vibekit_list_templates":
70
+ result = await apiRequest("GET", "/templates");
71
+ break;
512
72
  case "vibekit_deploy":
513
73
  result = await apiRequest("POST", "/hosting/deploy", {
514
74
  repo: args.repo,
@@ -596,6 +156,9 @@ async function handleTool(name, args) {
596
156
  case "vibekit_get_task":
597
157
  result = await apiRequest("GET", `/task/${args.taskId}`);
598
158
  break;
159
+ case "vibekit_cancel_task":
160
+ result = await apiRequest("DELETE", `/task/${args.taskId}`);
161
+ break;
599
162
  case "vibekit_list_tasks": {
600
163
  let path = "/tasks";
601
164
  const params = new URLSearchParams();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibekit-mcp",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
4
4
  "description": "MCP server for VibeKit — deploy apps, manage hosting, chat with AI agents, and run coding tasks from Claude Desktop, Cursor, and other MCP clients.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "files": [
10
10
  "dist/",
11
+ "tools.json",
11
12
  "README.md"
12
13
  ],
13
14
  "scripts": {
package/tools.json ADDED
@@ -0,0 +1,363 @@
1
+ [
2
+ {
3
+ "category": "Hosting & Apps",
4
+ "name": "vibekit_list_apps",
5
+ "description": "List all hosted apps in your VibeKit account.",
6
+ "inputSchema": { "type": "object", "properties": {} }
7
+ },
8
+ {
9
+ "category": "Hosting & Apps",
10
+ "name": "vibekit_get_app",
11
+ "description": "Get details about a specific hosted app.",
12
+ "inputSchema": {
13
+ "type": "object",
14
+ "properties": {
15
+ "appId": { "type": "string", "description": "The app ID to get details for" }
16
+ },
17
+ "required": ["appId"]
18
+ }
19
+ },
20
+ {
21
+ "category": "Hosting & Apps",
22
+ "name": "vibekit_create_app",
23
+ "description": "Create a new hosted app from a template.",
24
+ "inputSchema": {
25
+ "type": "object",
26
+ "properties": {
27
+ "template": { "type": "string", "description": "Template to use (e.g., 'nextjs', 'react', 'express')" },
28
+ "subdomain": { "type": "string", "description": "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)" }
29
+ },
30
+ "required": ["template", "subdomain"]
31
+ }
32
+ },
33
+ {
34
+ "category": "Hosting & Apps",
35
+ "name": "vibekit_list_templates",
36
+ "description": "List available templates for vibekit_create_app (e.g. landing, dashboard, blog, saas, crud-api).",
37
+ "inputSchema": { "type": "object", "properties": {} }
38
+ },
39
+ {
40
+ "category": "Hosting & Apps",
41
+ "name": "vibekit_deploy",
42
+ "description": "Deploy a GitHub repo to VibeKit hosting.",
43
+ "inputSchema": {
44
+ "type": "object",
45
+ "properties": {
46
+ "repo": { "type": "string", "description": "GitHub repo in format 'owner/repo'" },
47
+ "subdomain": { "type": "string", "description": "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)" }
48
+ },
49
+ "required": ["repo", "subdomain"]
50
+ }
51
+ },
52
+ {
53
+ "category": "Hosting & Apps",
54
+ "name": "vibekit_redeploy",
55
+ "description": "Redeploy an existing hosted app to update it with latest code.",
56
+ "inputSchema": {
57
+ "type": "object",
58
+ "properties": {
59
+ "appId": { "type": "string", "description": "The app ID to redeploy" }
60
+ },
61
+ "required": ["appId"]
62
+ }
63
+ },
64
+ {
65
+ "category": "Hosting & Apps",
66
+ "name": "vibekit_app_logs",
67
+ "description": "Get application logs for debugging and monitoring.",
68
+ "inputSchema": {
69
+ "type": "object",
70
+ "properties": {
71
+ "appId": { "type": "string", "description": "The app ID to get logs for" },
72
+ "lines": { "type": "number", "description": "Number of log lines to retrieve (default: 100)" }
73
+ },
74
+ "required": ["appId"]
75
+ }
76
+ },
77
+ {
78
+ "category": "Hosting & Apps",
79
+ "name": "vibekit_restart_app",
80
+ "description": "Restart a hosted app.",
81
+ "inputSchema": {
82
+ "type": "object",
83
+ "properties": {
84
+ "appId": { "type": "string", "description": "The app ID to restart" }
85
+ },
86
+ "required": ["appId"]
87
+ }
88
+ },
89
+ {
90
+ "category": "Hosting & Apps",
91
+ "name": "vibekit_stop_app",
92
+ "description": "Stop a hosted app.",
93
+ "inputSchema": {
94
+ "type": "object",
95
+ "properties": {
96
+ "appId": { "type": "string", "description": "The app ID to stop" }
97
+ },
98
+ "required": ["appId"]
99
+ }
100
+ },
101
+ {
102
+ "category": "Hosting & Apps",
103
+ "name": "vibekit_start_app",
104
+ "description": "Start a stopped hosted app.",
105
+ "inputSchema": {
106
+ "type": "object",
107
+ "properties": {
108
+ "appId": { "type": "string", "description": "The app ID to start" }
109
+ },
110
+ "required": ["appId"]
111
+ }
112
+ },
113
+ {
114
+ "category": "Hosting & Apps",
115
+ "name": "vibekit_app_env",
116
+ "description": "Get environment variables for a hosted app.",
117
+ "inputSchema": {
118
+ "type": "object",
119
+ "properties": {
120
+ "appId": { "type": "string", "description": "The app ID to get environment variables for" }
121
+ },
122
+ "required": ["appId"]
123
+ }
124
+ },
125
+ {
126
+ "category": "Hosting & Apps",
127
+ "name": "vibekit_set_env",
128
+ "description": "Set environment variables for a hosted app.",
129
+ "inputSchema": {
130
+ "type": "object",
131
+ "properties": {
132
+ "appId": { "type": "string", "description": "The app ID to set environment variables for" },
133
+ "vars": { "type": "object", "description": "Object of key-value pairs to set as environment variables" }
134
+ },
135
+ "required": ["appId", "vars"]
136
+ }
137
+ },
138
+ {
139
+ "category": "Hosting & Apps",
140
+ "name": "vibekit_delete_app",
141
+ "description": "Delete a hosted app permanently.",
142
+ "inputSchema": {
143
+ "type": "object",
144
+ "properties": {
145
+ "appId": { "type": "string", "description": "The app ID to delete" }
146
+ },
147
+ "required": ["appId"]
148
+ }
149
+ },
150
+ {
151
+ "category": "AI Agent",
152
+ "name": "vibekit_chat",
153
+ "description": "Chat with an app's AI agent. The agent can read, write, and modify the app's code.",
154
+ "inputSchema": {
155
+ "type": "object",
156
+ "properties": {
157
+ "appId": { "type": "string", "description": "The app ID to chat with the agent for" },
158
+ "message": { "type": "string", "description": "Message to send to the AI agent" }
159
+ },
160
+ "required": ["appId", "message"]
161
+ }
162
+ },
163
+ {
164
+ "category": "AI Agent",
165
+ "name": "vibekit_agent_status",
166
+ "description": "Get the status of an app's AI agent.",
167
+ "inputSchema": {
168
+ "type": "object",
169
+ "properties": {
170
+ "appId": { "type": "string", "description": "The app ID to get agent status for" }
171
+ },
172
+ "required": ["appId"]
173
+ }
174
+ },
175
+ {
176
+ "category": "AI Agent",
177
+ "name": "vibekit_agent_history",
178
+ "description": "Get chat history with an app's AI agent.",
179
+ "inputSchema": {
180
+ "type": "object",
181
+ "properties": {
182
+ "appId": { "type": "string", "description": "The app ID to get agent history for" },
183
+ "limit": { "type": "number", "description": "Maximum number of messages to return (default: 20)" }
184
+ },
185
+ "required": ["appId"]
186
+ }
187
+ },
188
+ {
189
+ "category": "Database",
190
+ "name": "vibekit_enable_database",
191
+ "description": "Enable database for a hosted app.",
192
+ "inputSchema": {
193
+ "type": "object",
194
+ "properties": {
195
+ "appId": { "type": "string", "description": "The app ID to enable database for" }
196
+ },
197
+ "required": ["appId"]
198
+ }
199
+ },
200
+ {
201
+ "category": "Database",
202
+ "name": "vibekit_database_status",
203
+ "description": "Get database status and connection info for an app.",
204
+ "inputSchema": {
205
+ "type": "object",
206
+ "properties": {
207
+ "appId": { "type": "string", "description": "The app ID to get database status for" }
208
+ },
209
+ "required": ["appId"]
210
+ }
211
+ },
212
+ {
213
+ "category": "QA",
214
+ "name": "vibekit_run_qa",
215
+ "description": "Run automated QA tests on a hosted app.",
216
+ "inputSchema": {
217
+ "type": "object",
218
+ "properties": {
219
+ "appId": { "type": "string", "description": "The app ID to run QA tests for" }
220
+ },
221
+ "required": ["appId"]
222
+ }
223
+ },
224
+ {
225
+ "category": "QA",
226
+ "name": "vibekit_qa_status",
227
+ "description": "Get QA test results and status for an app.",
228
+ "inputSchema": {
229
+ "type": "object",
230
+ "properties": {
231
+ "appId": { "type": "string", "description": "The app ID to get QA status for" }
232
+ },
233
+ "required": ["appId"]
234
+ }
235
+ },
236
+ {
237
+ "category": "Tasks",
238
+ "name": "vibekit_submit_task",
239
+ "description": "Submit a coding task to VibeKit. The AI will write code, commit to GitHub, and deploy to {subdomain}.vibekit.bot. Returns a task ID to poll for results.",
240
+ "inputSchema": {
241
+ "type": "object",
242
+ "properties": {
243
+ "task": { "type": "string", "description": "What you want built or changed. Be specific about features, design, and behavior." },
244
+ "repo": { "type": "string", "description": "GitHub repo in format 'owner/repo'. Optional — will use user's current repo if not specified." },
245
+ "branch": { "type": "string", "description": "Git branch to work on. Default: main" },
246
+ "deploy": { "type": "boolean", "description": "Auto-deploy to Vercel when done. Default: true" },
247
+ "callbackUrl": { "type": "string", "description": "Webhook URL to receive task completion notification." }
248
+ },
249
+ "required": ["task"]
250
+ }
251
+ },
252
+ {
253
+ "category": "Tasks",
254
+ "name": "vibekit_get_task",
255
+ "description": "Get the status and result of a previously submitted task.",
256
+ "inputSchema": {
257
+ "type": "object",
258
+ "properties": {
259
+ "taskId": { "type": "string", "description": "The task ID returned from vibekit_submit_task" }
260
+ },
261
+ "required": ["taskId"]
262
+ }
263
+ },
264
+ {
265
+ "category": "Tasks",
266
+ "name": "vibekit_list_tasks",
267
+ "description": "List recent tasks submitted to VibeKit.",
268
+ "inputSchema": {
269
+ "type": "object",
270
+ "properties": {
271
+ "limit": { "type": "number", "description": "Max number of tasks to return. Default: 10" },
272
+ "status": { "type": "string", "enum": ["pending", "running", "completed", "failed"], "description": "Filter by status" }
273
+ }
274
+ }
275
+ },
276
+ {
277
+ "category": "Tasks",
278
+ "name": "vibekit_wait_for_task",
279
+ "description": "Wait for a task to complete and return the result. Polls every 5 seconds up to the timeout.",
280
+ "inputSchema": {
281
+ "type": "object",
282
+ "properties": {
283
+ "taskId": { "type": "string", "description": "The task ID to wait for" },
284
+ "timeoutSeconds": { "type": "number", "description": "Max seconds to wait. Default: 300 (5 minutes)" }
285
+ },
286
+ "required": ["taskId"]
287
+ }
288
+ },
289
+ {
290
+ "category": "Tasks",
291
+ "name": "vibekit_cancel_task",
292
+ "description": "Cancel a running task by ID. No-op for tasks that have already completed.",
293
+ "inputSchema": {
294
+ "type": "object",
295
+ "properties": {
296
+ "taskId": { "type": "string", "description": "The task ID to cancel" }
297
+ },
298
+ "required": ["taskId"]
299
+ }
300
+ },
301
+ {
302
+ "category": "Schedules",
303
+ "name": "vibekit_create_schedule",
304
+ "description": "Create a scheduled recurring task. The AI will run this task automatically on the specified schedule.",
305
+ "inputSchema": {
306
+ "type": "object",
307
+ "properties": {
308
+ "task": { "type": "string", "description": "What to do on each run. e.g., 'Improve SEO and page speed'" },
309
+ "repo": { "type": "string", "description": "GitHub repo in format 'owner/repo'" },
310
+ "cron": { "type": "string", "description": "Cron expression. e.g., '0 9 * * 1' for every Monday at 9am UTC" },
311
+ "name": { "type": "string", "description": "Friendly name for the schedule" }
312
+ },
313
+ "required": ["task", "repo", "cron"]
314
+ }
315
+ },
316
+ {
317
+ "category": "Schedules",
318
+ "name": "vibekit_list_schedules",
319
+ "description": "List all scheduled tasks.",
320
+ "inputSchema": { "type": "object", "properties": {} }
321
+ },
322
+ {
323
+ "category": "Schedules",
324
+ "name": "vibekit_delete_schedule",
325
+ "description": "Delete a scheduled task.",
326
+ "inputSchema": {
327
+ "type": "object",
328
+ "properties": {
329
+ "scheduleId": { "type": "string", "description": "The schedule ID to delete" }
330
+ },
331
+ "required": ["scheduleId"]
332
+ }
333
+ },
334
+ {
335
+ "category": "Account",
336
+ "name": "vibekit_account",
337
+ "description": "Get VibeKit account info including plan, credits balance, and usage.",
338
+ "inputSchema": { "type": "object", "properties": {} }
339
+ },
340
+ {
341
+ "category": "Skills",
342
+ "name": "vibekit_list_skills",
343
+ "description": "List all available implementation skills. Returns skill IDs, names, descriptions, and tags. Use this to discover what skills are available before fetching specific ones.",
344
+ "inputSchema": {
345
+ "type": "object",
346
+ "properties": {
347
+ "tag": { "type": "string", "description": "Filter skills by tag (e.g., 'react', 'database', 'security')" }
348
+ }
349
+ }
350
+ },
351
+ {
352
+ "category": "Skills",
353
+ "name": "vibekit_get_skill",
354
+ "description": "Fetch the full content of a specific skill. Skills contain implementation patterns, code examples, and best practices for a domain. Fetch skills on-demand when you need guidance on a specific topic.",
355
+ "inputSchema": {
356
+ "type": "object",
357
+ "properties": {
358
+ "id": { "type": "string", "description": "Skill ID from vibekit_list_skills (e.g., 'nextjs', 'trpc', 'auth')" }
359
+ },
360
+ "required": ["id"]
361
+ }
362
+ }
363
+ ]