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.
- package/dist/index.js +19 -456
- package/package.json +2 -1
- 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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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.
|
|
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
|
+
]
|