vibekit-mcp 0.6.1 → 0.7.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.
package/README.md CHANGED
@@ -4,6 +4,18 @@ MCP server for VibeKit, deploy apps, manage hosting, and chat with AI agents fro
4
4
 
5
5
  This package is for **VibeKit cloud/API access**. It does **not** connect your local Claude Code instance to Telegram. For local-machine remote control, use `vibekit-agent`.
6
6
 
7
+ ## Use it remotely (no install)
8
+
9
+ VibeKit also runs as a hosted remote server, so clients that accept a remote MCP URL (claude.ai web connectors, ChatGPT, etc.) need **no install**:
10
+
11
+ ```
12
+ https://mcp.vibekit.bot/mcp?api_key=vk_your_api_key_here
13
+ ```
14
+
15
+ Paste that URL into your client's "custom connector" / "remote MCP server" field. Clients that let you set headers can instead send `Authorization: Bearer vk_your_api_key_here` and use the bare `https://mcp.vibekit.bot/mcp`. Get a key from [@the_vibe_kit_bot](https://t.me/the_vibe_kit_bot) with `/apikey`.
16
+
17
+ Prefer a local stdio install (e.g. Claude Desktop)? Use the steps below.
18
+
7
19
  ## Installation
8
20
 
9
21
  ```bash
package/dist/index.js CHANGED
@@ -49,6 +49,7 @@ const path_1 = require("path");
49
49
  const TOOLS_MANIFEST_PATH = (0, path_1.join)(__dirname, "..", "tools.json");
50
50
  const tools = JSON.parse((0, fs_1.readFileSync)(TOOLS_MANIFEST_PATH, "utf8")).map((t) => ({
51
51
  name: t.name,
52
+ title: t.title,
52
53
  description: t.description,
53
54
  inputSchema: t.inputSchema,
54
55
  }));
@@ -139,6 +140,37 @@ async function handleTool(name, args) {
139
140
  case "vibekit_database_status":
140
141
  result = await apiRequest("GET", `/hosting/app/${args.appId}/database`);
141
142
  break;
143
+ case "vibekit_db_schema":
144
+ result = await apiRequest("GET", `/hosting/app/${args.appId}/database/schema`);
145
+ break;
146
+ case "vibekit_db_query":
147
+ result = await apiRequest("POST", `/hosting/app/${args.appId}/database/query`, {
148
+ sql: args.sql,
149
+ });
150
+ break;
151
+ case "vibekit_db_table": {
152
+ let path = `/hosting/app/${args.appId}/database/tables/${args.table}`;
153
+ const params = new URLSearchParams();
154
+ if (args.limit)
155
+ params.set("limit", String(args.limit));
156
+ if (args.offset)
157
+ params.set("offset", String(args.offset));
158
+ if (params.toString())
159
+ path += `?${params.toString()}`;
160
+ result = await apiRequest("GET", path);
161
+ break;
162
+ }
163
+ // Deploys
164
+ case "vibekit_list_deploys": {
165
+ let path = `/hosting/app/${args.appId}/deploys`;
166
+ if (args.limit)
167
+ path += `?limit=${args.limit}`;
168
+ result = await apiRequest("GET", path);
169
+ break;
170
+ }
171
+ case "vibekit_rollback_deploy":
172
+ result = await apiRequest("POST", `/hosting/app/${args.appId}/deploys/${args.deployId}/rollback`);
173
+ break;
142
174
  // QA
143
175
  case "vibekit_run_qa":
144
176
  result = await apiRequest("POST", `/hosting/app/${args.appId}/qa`);
@@ -272,7 +304,8 @@ async function handleTool(name, args) {
272
304
  // Main server setup
273
305
  const server = new index_js_1.Server({
274
306
  name: "vibekit-mcp",
275
- version: "0.6.1",
307
+ title: "VibeKit",
308
+ version: "0.7.1",
276
309
  }, {
277
310
  capabilities: {
278
311
  tools: {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibekit-mcp",
3
- "version": "0.6.1",
3
+ "version": "0.7.1",
4
4
  "mcpName": "io.github.609NFT/vibekit-mcp",
5
5
  "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.",
6
6
  "main": "dist/index.js",
@@ -40,4 +40,4 @@
40
40
  "@types/node": "^20.0.0",
41
41
  "typescript": "^5.0.0"
42
42
  }
43
- }
43
+ }
package/tools.json CHANGED
@@ -2,362 +2,710 @@
2
2
  {
3
3
  "category": "Hosting & Apps",
4
4
  "name": "vibekit_list_apps",
5
+ "title": "VibeKit List Apps",
5
6
  "description": "List all hosted apps in your VibeKit account.",
6
- "inputSchema": { "type": "object", "properties": {} }
7
+ "inputSchema": {
8
+ "type": "object",
9
+ "properties": {}
10
+ }
7
11
  },
8
12
  {
9
13
  "category": "Hosting & Apps",
10
14
  "name": "vibekit_get_app",
15
+ "title": "VibeKit Get App",
11
16
  "description": "Get details about a specific hosted app.",
12
17
  "inputSchema": {
13
18
  "type": "object",
14
19
  "properties": {
15
- "appId": { "type": "string", "description": "The app ID to get details for" }
20
+ "appId": {
21
+ "type": "string",
22
+ "description": "The app ID to get details for"
23
+ }
16
24
  },
17
- "required": ["appId"]
25
+ "required": [
26
+ "appId"
27
+ ]
18
28
  }
19
29
  },
20
30
  {
21
31
  "category": "Hosting & Apps",
22
32
  "name": "vibekit_create_app",
33
+ "title": "VibeKit Create App",
23
34
  "description": "Create a new hosted app from a template.",
24
35
  "inputSchema": {
25
36
  "type": "object",
26
37
  "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)" }
38
+ "template": {
39
+ "type": "string",
40
+ "description": "Template to use (e.g., 'nextjs', 'react', 'express')"
41
+ },
42
+ "subdomain": {
43
+ "type": "string",
44
+ "description": "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)"
45
+ }
29
46
  },
30
- "required": ["template", "subdomain"]
47
+ "required": [
48
+ "template",
49
+ "subdomain"
50
+ ]
31
51
  }
32
52
  },
33
53
  {
34
54
  "category": "Hosting & Apps",
35
55
  "name": "vibekit_list_templates",
56
+ "title": "VibeKit List Templates",
36
57
  "description": "List available templates for vibekit_create_app (e.g. landing, dashboard, blog, saas, crud-api).",
37
- "inputSchema": { "type": "object", "properties": {} }
58
+ "inputSchema": {
59
+ "type": "object",
60
+ "properties": {}
61
+ }
38
62
  },
39
63
  {
40
64
  "category": "Hosting & Apps",
41
65
  "name": "vibekit_deploy",
66
+ "title": "VibeKit Deploy",
42
67
  "description": "Deploy a GitHub repo to VibeKit hosting.",
43
68
  "inputSchema": {
44
69
  "type": "object",
45
70
  "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)" }
71
+ "repo": {
72
+ "type": "string",
73
+ "description": "GitHub repo in format 'owner/repo'"
74
+ },
75
+ "subdomain": {
76
+ "type": "string",
77
+ "description": "Subdomain for the app (will be deployed to {subdomain}.vibekit.bot)"
78
+ }
48
79
  },
49
- "required": ["repo", "subdomain"]
80
+ "required": [
81
+ "repo",
82
+ "subdomain"
83
+ ]
50
84
  }
51
85
  },
52
86
  {
53
87
  "category": "Hosting & Apps",
54
88
  "name": "vibekit_redeploy",
89
+ "title": "VibeKit Redeploy",
55
90
  "description": "Redeploy an existing hosted app to update it with latest code.",
56
91
  "inputSchema": {
57
92
  "type": "object",
58
93
  "properties": {
59
- "appId": { "type": "string", "description": "The app ID to redeploy" }
94
+ "appId": {
95
+ "type": "string",
96
+ "description": "The app ID to redeploy"
97
+ }
60
98
  },
61
- "required": ["appId"]
99
+ "required": [
100
+ "appId"
101
+ ]
62
102
  }
63
103
  },
64
104
  {
65
105
  "category": "Hosting & Apps",
66
106
  "name": "vibekit_app_logs",
107
+ "title": "VibeKit App Logs",
67
108
  "description": "Get application logs for debugging and monitoring.",
68
109
  "inputSchema": {
69
110
  "type": "object",
70
111
  "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)" }
112
+ "appId": {
113
+ "type": "string",
114
+ "description": "The app ID to get logs for"
115
+ },
116
+ "lines": {
117
+ "type": "number",
118
+ "description": "Number of log lines to retrieve (default: 100)"
119
+ }
73
120
  },
74
- "required": ["appId"]
121
+ "required": [
122
+ "appId"
123
+ ]
75
124
  }
76
125
  },
77
126
  {
78
127
  "category": "Hosting & Apps",
79
128
  "name": "vibekit_restart_app",
129
+ "title": "VibeKit Restart App",
80
130
  "description": "Restart a hosted app.",
81
131
  "inputSchema": {
82
132
  "type": "object",
83
133
  "properties": {
84
- "appId": { "type": "string", "description": "The app ID to restart" }
134
+ "appId": {
135
+ "type": "string",
136
+ "description": "The app ID to restart"
137
+ }
85
138
  },
86
- "required": ["appId"]
139
+ "required": [
140
+ "appId"
141
+ ]
87
142
  }
88
143
  },
89
144
  {
90
145
  "category": "Hosting & Apps",
91
146
  "name": "vibekit_stop_app",
147
+ "title": "VibeKit Stop App",
92
148
  "description": "Stop a hosted app.",
93
149
  "inputSchema": {
94
150
  "type": "object",
95
151
  "properties": {
96
- "appId": { "type": "string", "description": "The app ID to stop" }
152
+ "appId": {
153
+ "type": "string",
154
+ "description": "The app ID to stop"
155
+ }
97
156
  },
98
- "required": ["appId"]
157
+ "required": [
158
+ "appId"
159
+ ]
99
160
  }
100
161
  },
101
162
  {
102
163
  "category": "Hosting & Apps",
103
164
  "name": "vibekit_start_app",
165
+ "title": "VibeKit Start App",
104
166
  "description": "Start a stopped hosted app.",
105
167
  "inputSchema": {
106
168
  "type": "object",
107
169
  "properties": {
108
- "appId": { "type": "string", "description": "The app ID to start" }
170
+ "appId": {
171
+ "type": "string",
172
+ "description": "The app ID to start"
173
+ }
109
174
  },
110
- "required": ["appId"]
175
+ "required": [
176
+ "appId"
177
+ ]
111
178
  }
112
179
  },
113
180
  {
114
181
  "category": "Hosting & Apps",
115
182
  "name": "vibekit_app_env",
183
+ "title": "VibeKit Get Env Vars",
116
184
  "description": "Get environment variables for a hosted app.",
117
185
  "inputSchema": {
118
186
  "type": "object",
119
187
  "properties": {
120
- "appId": { "type": "string", "description": "The app ID to get environment variables for" }
188
+ "appId": {
189
+ "type": "string",
190
+ "description": "The app ID to get environment variables for"
191
+ }
121
192
  },
122
- "required": ["appId"]
193
+ "required": [
194
+ "appId"
195
+ ]
123
196
  }
124
197
  },
125
198
  {
126
199
  "category": "Hosting & Apps",
127
200
  "name": "vibekit_set_env",
201
+ "title": "VibeKit Set Env Vars",
128
202
  "description": "Set environment variables for a hosted app.",
129
203
  "inputSchema": {
130
204
  "type": "object",
131
205
  "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" }
206
+ "appId": {
207
+ "type": "string",
208
+ "description": "The app ID to set environment variables for"
209
+ },
210
+ "vars": {
211
+ "type": "object",
212
+ "description": "Object of key-value pairs to set as environment variables"
213
+ }
134
214
  },
135
- "required": ["appId", "vars"]
215
+ "required": [
216
+ "appId",
217
+ "vars"
218
+ ]
136
219
  }
137
220
  },
138
221
  {
139
222
  "category": "Hosting & Apps",
140
223
  "name": "vibekit_delete_app",
224
+ "title": "VibeKit Delete App",
141
225
  "description": "Delete a hosted app permanently.",
142
226
  "inputSchema": {
143
227
  "type": "object",
144
228
  "properties": {
145
- "appId": { "type": "string", "description": "The app ID to delete" }
229
+ "appId": {
230
+ "type": "string",
231
+ "description": "The app ID to delete"
232
+ }
146
233
  },
147
- "required": ["appId"]
234
+ "required": [
235
+ "appId"
236
+ ]
148
237
  }
149
238
  },
150
239
  {
151
240
  "category": "AI Agent",
152
241
  "name": "vibekit_chat",
242
+ "title": "VibeKit Chat with Agent",
153
243
  "description": "Chat with an app's AI agent. The agent can read, write, and modify the app's code.",
154
244
  "inputSchema": {
155
245
  "type": "object",
156
246
  "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" }
247
+ "appId": {
248
+ "type": "string",
249
+ "description": "The app ID to chat with the agent for"
250
+ },
251
+ "message": {
252
+ "type": "string",
253
+ "description": "Message to send to the AI agent"
254
+ }
159
255
  },
160
- "required": ["appId", "message"]
256
+ "required": [
257
+ "appId",
258
+ "message"
259
+ ]
161
260
  }
162
261
  },
163
262
  {
164
263
  "category": "AI Agent",
165
264
  "name": "vibekit_agent_status",
265
+ "title": "VibeKit Agent Status",
166
266
  "description": "Get the status of an app's AI agent.",
167
267
  "inputSchema": {
168
268
  "type": "object",
169
269
  "properties": {
170
- "appId": { "type": "string", "description": "The app ID to get agent status for" }
270
+ "appId": {
271
+ "type": "string",
272
+ "description": "The app ID to get agent status for"
273
+ }
171
274
  },
172
- "required": ["appId"]
275
+ "required": [
276
+ "appId"
277
+ ]
173
278
  }
174
279
  },
175
280
  {
176
281
  "category": "AI Agent",
177
282
  "name": "vibekit_agent_history",
283
+ "title": "VibeKit Agent History",
178
284
  "description": "Get chat history with an app's AI agent.",
179
285
  "inputSchema": {
180
286
  "type": "object",
181
287
  "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)" }
288
+ "appId": {
289
+ "type": "string",
290
+ "description": "The app ID to get agent history for"
291
+ },
292
+ "limit": {
293
+ "type": "number",
294
+ "description": "Maximum number of messages to return (default: 20)"
295
+ }
184
296
  },
185
- "required": ["appId"]
297
+ "required": [
298
+ "appId"
299
+ ]
186
300
  }
187
301
  },
188
302
  {
189
303
  "category": "Database",
190
304
  "name": "vibekit_enable_database",
305
+ "title": "VibeKit Enable Database",
191
306
  "description": "Enable database for a hosted app.",
192
307
  "inputSchema": {
193
308
  "type": "object",
194
309
  "properties": {
195
- "appId": { "type": "string", "description": "The app ID to enable database for" }
310
+ "appId": {
311
+ "type": "string",
312
+ "description": "The app ID to enable database for"
313
+ }
196
314
  },
197
- "required": ["appId"]
315
+ "required": [
316
+ "appId"
317
+ ]
198
318
  }
199
319
  },
200
320
  {
201
321
  "category": "Database",
202
322
  "name": "vibekit_database_status",
323
+ "title": "VibeKit Database Status",
203
324
  "description": "Get database status and connection info for an app.",
204
325
  "inputSchema": {
205
326
  "type": "object",
206
327
  "properties": {
207
- "appId": { "type": "string", "description": "The app ID to get database status for" }
328
+ "appId": {
329
+ "type": "string",
330
+ "description": "The app ID to get database status for"
331
+ }
332
+ },
333
+ "required": [
334
+ "appId"
335
+ ]
336
+ }
337
+ },
338
+ {
339
+ "category": "Database",
340
+ "name": "vibekit_db_schema",
341
+ "title": "VibeKit Database Schema",
342
+ "description": "Get the database schema for an app \u2014 all tables and their columns. Use this before writing a query.",
343
+ "inputSchema": {
344
+ "type": "object",
345
+ "properties": {
346
+ "appId": {
347
+ "type": "string",
348
+ "description": "The app ID"
349
+ }
350
+ },
351
+ "required": [
352
+ "appId"
353
+ ]
354
+ }
355
+ },
356
+ {
357
+ "category": "Database",
358
+ "name": "vibekit_db_query",
359
+ "title": "VibeKit Run SQL Query",
360
+ "description": "Run a SQL query against an app's Postgres database and return the result rows. Supports reads and writes. SQL string, max 5000 chars.",
361
+ "inputSchema": {
362
+ "type": "object",
363
+ "properties": {
364
+ "appId": {
365
+ "type": "string",
366
+ "description": "The app ID"
367
+ },
368
+ "sql": {
369
+ "type": "string",
370
+ "description": "SQL to execute (max 5000 chars)"
371
+ }
372
+ },
373
+ "required": [
374
+ "appId",
375
+ "sql"
376
+ ]
377
+ }
378
+ },
379
+ {
380
+ "category": "Database",
381
+ "name": "vibekit_db_table",
382
+ "title": "VibeKit Browse Table",
383
+ "description": "Browse rows in a specific database table, with pagination and optional sorting.",
384
+ "inputSchema": {
385
+ "type": "object",
386
+ "properties": {
387
+ "appId": {
388
+ "type": "string",
389
+ "description": "The app ID"
390
+ },
391
+ "table": {
392
+ "type": "string",
393
+ "description": "Table name"
394
+ },
395
+ "limit": {
396
+ "type": "number",
397
+ "description": "Max rows to return (default 50, max 200)"
398
+ },
399
+ "offset": {
400
+ "type": "number",
401
+ "description": "Row offset for pagination (default 0)"
402
+ }
403
+ },
404
+ "required": [
405
+ "appId",
406
+ "table"
407
+ ]
408
+ }
409
+ },
410
+ {
411
+ "category": "Hosting & Apps",
412
+ "name": "vibekit_list_deploys",
413
+ "title": "VibeKit List Deploys",
414
+ "description": "List recent deploys for an app, most recent first, with their status and commit info. Find a deploy ID here to roll back to.",
415
+ "inputSchema": {
416
+ "type": "object",
417
+ "properties": {
418
+ "appId": {
419
+ "type": "string",
420
+ "description": "The app ID"
421
+ },
422
+ "limit": {
423
+ "type": "number",
424
+ "description": "Max deploys to return (default 20, max 50)"
425
+ }
426
+ },
427
+ "required": [
428
+ "appId"
429
+ ]
430
+ }
431
+ },
432
+ {
433
+ "category": "Hosting & Apps",
434
+ "name": "vibekit_rollback_deploy",
435
+ "title": "VibeKit Rollback Deploy",
436
+ "description": "Roll an app back to a previous deploy. Get the deploy ID from vibekit_list_deploys. The container restarts on the rolled-back build.",
437
+ "inputSchema": {
438
+ "type": "object",
439
+ "properties": {
440
+ "appId": {
441
+ "type": "string",
442
+ "description": "The app ID"
443
+ },
444
+ "deployId": {
445
+ "type": "string",
446
+ "description": "The deploy ID to roll back to (from vibekit_list_deploys)"
447
+ }
208
448
  },
209
- "required": ["appId"]
449
+ "required": [
450
+ "appId",
451
+ "deployId"
452
+ ]
210
453
  }
211
454
  },
212
455
  {
213
456
  "category": "QA",
214
457
  "name": "vibekit_run_qa",
458
+ "title": "VibeKit Run QA",
215
459
  "description": "Run automated QA tests on a hosted app.",
216
460
  "inputSchema": {
217
461
  "type": "object",
218
462
  "properties": {
219
- "appId": { "type": "string", "description": "The app ID to run QA tests for" }
463
+ "appId": {
464
+ "type": "string",
465
+ "description": "The app ID to run QA tests for"
466
+ }
220
467
  },
221
- "required": ["appId"]
468
+ "required": [
469
+ "appId"
470
+ ]
222
471
  }
223
472
  },
224
473
  {
225
474
  "category": "QA",
226
475
  "name": "vibekit_qa_status",
476
+ "title": "VibeKit QA Status",
227
477
  "description": "Get QA test results and status for an app.",
228
478
  "inputSchema": {
229
479
  "type": "object",
230
480
  "properties": {
231
- "appId": { "type": "string", "description": "The app ID to get QA status for" }
481
+ "appId": {
482
+ "type": "string",
483
+ "description": "The app ID to get QA status for"
484
+ }
232
485
  },
233
- "required": ["appId"]
486
+ "required": [
487
+ "appId"
488
+ ]
234
489
  }
235
490
  },
236
491
  {
237
492
  "category": "Tasks",
238
493
  "name": "vibekit_submit_task",
494
+ "title": "VibeKit Submit Task",
239
495
  "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
496
  "inputSchema": {
241
497
  "type": "object",
242
498
  "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." }
499
+ "task": {
500
+ "type": "string",
501
+ "description": "What you want built or changed. Be specific about features, design, and behavior."
502
+ },
503
+ "repo": {
504
+ "type": "string",
505
+ "description": "GitHub repo in format 'owner/repo'. Optional \u2014 will use user's current repo if not specified."
506
+ },
507
+ "branch": {
508
+ "type": "string",
509
+ "description": "Git branch to work on. Default: main"
510
+ },
511
+ "deploy": {
512
+ "type": "boolean",
513
+ "description": "Auto-deploy to Vercel when done. Default: true"
514
+ },
515
+ "callbackUrl": {
516
+ "type": "string",
517
+ "description": "Webhook URL to receive task completion notification."
518
+ }
248
519
  },
249
- "required": ["task"]
520
+ "required": [
521
+ "task"
522
+ ]
250
523
  }
251
524
  },
252
525
  {
253
526
  "category": "Tasks",
254
527
  "name": "vibekit_get_task",
528
+ "title": "VibeKit Get Task",
255
529
  "description": "Get the status and result of a previously submitted task.",
256
530
  "inputSchema": {
257
531
  "type": "object",
258
532
  "properties": {
259
- "taskId": { "type": "string", "description": "The task ID returned from vibekit_submit_task" }
533
+ "taskId": {
534
+ "type": "string",
535
+ "description": "The task ID returned from vibekit_submit_task"
536
+ }
260
537
  },
261
- "required": ["taskId"]
538
+ "required": [
539
+ "taskId"
540
+ ]
262
541
  }
263
542
  },
264
543
  {
265
544
  "category": "Tasks",
266
545
  "name": "vibekit_list_tasks",
546
+ "title": "VibeKit List Tasks",
267
547
  "description": "List recent tasks submitted to VibeKit.",
268
548
  "inputSchema": {
269
549
  "type": "object",
270
550
  "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" }
551
+ "limit": {
552
+ "type": "number",
553
+ "description": "Max number of tasks to return. Default: 10"
554
+ },
555
+ "status": {
556
+ "type": "string",
557
+ "enum": [
558
+ "pending",
559
+ "running",
560
+ "completed",
561
+ "failed"
562
+ ],
563
+ "description": "Filter by status"
564
+ }
273
565
  }
274
566
  }
275
567
  },
276
568
  {
277
569
  "category": "Tasks",
278
570
  "name": "vibekit_wait_for_task",
571
+ "title": "VibeKit Wait for Task",
279
572
  "description": "Wait for a task to complete and return the result. Polls every 5 seconds up to the timeout.",
280
573
  "inputSchema": {
281
574
  "type": "object",
282
575
  "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)" }
576
+ "taskId": {
577
+ "type": "string",
578
+ "description": "The task ID to wait for"
579
+ },
580
+ "timeoutSeconds": {
581
+ "type": "number",
582
+ "description": "Max seconds to wait. Default: 300 (5 minutes)"
583
+ }
285
584
  },
286
- "required": ["taskId"]
585
+ "required": [
586
+ "taskId"
587
+ ]
287
588
  }
288
589
  },
289
590
  {
290
591
  "category": "Tasks",
291
592
  "name": "vibekit_cancel_task",
593
+ "title": "VibeKit Cancel Task",
292
594
  "description": "Cancel a running task by ID. No-op for tasks that have already completed.",
293
595
  "inputSchema": {
294
596
  "type": "object",
295
597
  "properties": {
296
- "taskId": { "type": "string", "description": "The task ID to cancel" }
598
+ "taskId": {
599
+ "type": "string",
600
+ "description": "The task ID to cancel"
601
+ }
297
602
  },
298
- "required": ["taskId"]
603
+ "required": [
604
+ "taskId"
605
+ ]
299
606
  }
300
607
  },
301
608
  {
302
609
  "category": "Schedules",
303
610
  "name": "vibekit_create_schedule",
611
+ "title": "VibeKit Create Schedule",
304
612
  "description": "Create a scheduled recurring task. The AI will run this task automatically on the specified schedule.",
305
613
  "inputSchema": {
306
614
  "type": "object",
307
615
  "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" }
616
+ "task": {
617
+ "type": "string",
618
+ "description": "What to do on each run. e.g., 'Improve SEO and page speed'"
619
+ },
620
+ "repo": {
621
+ "type": "string",
622
+ "description": "GitHub repo in format 'owner/repo'"
623
+ },
624
+ "cron": {
625
+ "type": "string",
626
+ "description": "Cron expression. e.g., '0 9 * * 1' for every Monday at 9am UTC"
627
+ },
628
+ "name": {
629
+ "type": "string",
630
+ "description": "Friendly name for the schedule"
631
+ }
312
632
  },
313
- "required": ["task", "repo", "cron"]
633
+ "required": [
634
+ "task",
635
+ "repo",
636
+ "cron"
637
+ ]
314
638
  }
315
639
  },
316
640
  {
317
641
  "category": "Schedules",
318
642
  "name": "vibekit_list_schedules",
643
+ "title": "VibeKit List Schedules",
319
644
  "description": "List all scheduled tasks.",
320
- "inputSchema": { "type": "object", "properties": {} }
645
+ "inputSchema": {
646
+ "type": "object",
647
+ "properties": {}
648
+ }
321
649
  },
322
650
  {
323
651
  "category": "Schedules",
324
652
  "name": "vibekit_delete_schedule",
653
+ "title": "VibeKit Delete Schedule",
325
654
  "description": "Delete a scheduled task.",
326
655
  "inputSchema": {
327
656
  "type": "object",
328
657
  "properties": {
329
- "scheduleId": { "type": "string", "description": "The schedule ID to delete" }
658
+ "scheduleId": {
659
+ "type": "string",
660
+ "description": "The schedule ID to delete"
661
+ }
330
662
  },
331
- "required": ["scheduleId"]
663
+ "required": [
664
+ "scheduleId"
665
+ ]
332
666
  }
333
667
  },
334
668
  {
335
669
  "category": "Account",
336
670
  "name": "vibekit_account",
671
+ "title": "VibeKit Account Info",
337
672
  "description": "Get VibeKit account info including plan, credits balance, and usage.",
338
- "inputSchema": { "type": "object", "properties": {} }
673
+ "inputSchema": {
674
+ "type": "object",
675
+ "properties": {}
676
+ }
339
677
  },
340
678
  {
341
679
  "category": "Skills",
342
680
  "name": "vibekit_list_skills",
681
+ "title": "VibeKit List Skills",
343
682
  "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
683
  "inputSchema": {
345
684
  "type": "object",
346
685
  "properties": {
347
- "tag": { "type": "string", "description": "Filter skills by tag (e.g., 'react', 'database', 'security')" }
686
+ "tag": {
687
+ "type": "string",
688
+ "description": "Filter skills by tag (e.g., 'react', 'database', 'security')"
689
+ }
348
690
  }
349
691
  }
350
692
  },
351
693
  {
352
694
  "category": "Skills",
353
695
  "name": "vibekit_get_skill",
696
+ "title": "VibeKit Get Skill",
354
697
  "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
698
  "inputSchema": {
356
699
  "type": "object",
357
700
  "properties": {
358
- "id": { "type": "string", "description": "Skill ID from vibekit_list_skills (e.g., 'nextjs', 'trpc', 'auth')" }
701
+ "id": {
702
+ "type": "string",
703
+ "description": "Skill ID from vibekit_list_skills (e.g., 'nextjs', 'trpc', 'auth')"
704
+ }
359
705
  },
360
- "required": ["id"]
706
+ "required": [
707
+ "id"
708
+ ]
361
709
  }
362
710
  }
363
711
  ]