veryfront 0.1.141 → 0.1.142

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 (66) hide show
  1. package/esm/cli/mcp/jsonrpc.d.ts +33 -1
  2. package/esm/cli/mcp/jsonrpc.d.ts.map +1 -1
  3. package/esm/cli/mcp/jsonrpc.js +63 -4
  4. package/esm/cli/mcp/remote-file-tools.d.ts.map +1 -1
  5. package/esm/cli/mcp/remote-file-tools.js +39 -0
  6. package/esm/cli/mcp/server.d.ts.map +1 -1
  7. package/esm/cli/mcp/server.js +57 -34
  8. package/esm/cli/mcp/standalone.d.ts.map +1 -1
  9. package/esm/cli/mcp/standalone.js +24 -11
  10. package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
  11. package/esm/cli/mcp/tools/catalog-tools.js +15 -5
  12. package/esm/cli/mcp/tools/cicd-tools.d.ts.map +1 -1
  13. package/esm/cli/mcp/tools/cicd-tools.js +8 -0
  14. package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
  15. package/esm/cli/mcp/tools/dev-tools.js +32 -10
  16. package/esm/cli/mcp/tools/introspection-tools.d.ts.map +1 -1
  17. package/esm/cli/mcp/tools/introspection-tools.js +6 -2
  18. package/esm/cli/mcp/tools/project-tools.d.ts.map +1 -1
  19. package/esm/cli/mcp/tools/project-tools.js +12 -4
  20. package/esm/cli/mcp/tools/scaffold-tools.d.ts.map +1 -1
  21. package/esm/cli/mcp/tools/scaffold-tools.js +6 -2
  22. package/esm/cli/mcp/tools/skill-tools.d.ts.map +1 -1
  23. package/esm/cli/mcp/tools/skill-tools.js +6 -2
  24. package/esm/cli/mcp/tools.d.ts.map +1 -1
  25. package/esm/cli/mcp/tools.js +36 -16
  26. package/esm/deno.js +1 -1
  27. package/esm/src/agent/runtime/index.js +1 -1
  28. package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
  29. package/esm/src/agent/runtime/tool-helpers.js +59 -30
  30. package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
  31. package/esm/src/channels/invoke.d.ts +4 -4
  32. package/esm/src/issues/mcp.d.ts.map +1 -1
  33. package/esm/src/issues/mcp.js +39 -10
  34. package/esm/src/mcp/index.d.ts +1 -1
  35. package/esm/src/mcp/index.d.ts.map +1 -1
  36. package/esm/src/mcp/server.d.ts.map +1 -1
  37. package/esm/src/mcp/server.js +85 -25
  38. package/esm/src/mcp/types.d.ts +22 -0
  39. package/esm/src/mcp/types.d.ts.map +1 -1
  40. package/esm/src/tool/types.d.ts +5 -0
  41. package/esm/src/tool/types.d.ts.map +1 -1
  42. package/esm/src/utils/version-constant.d.ts +1 -1
  43. package/esm/src/utils/version-constant.js +1 -1
  44. package/esm/src/workflow/schemas/workflow.schema.d.ts +6 -6
  45. package/package.json +1 -1
  46. package/src/cli/mcp/jsonrpc.ts +72 -4
  47. package/src/cli/mcp/remote-file-tools.ts +39 -0
  48. package/src/cli/mcp/server.ts +66 -33
  49. package/src/cli/mcp/standalone.ts +28 -10
  50. package/src/cli/mcp/tools/catalog-tools.ts +15 -5
  51. package/src/cli/mcp/tools/cicd-tools.ts +8 -0
  52. package/src/cli/mcp/tools/dev-tools.ts +34 -10
  53. package/src/cli/mcp/tools/introspection-tools.ts +7 -2
  54. package/src/cli/mcp/tools/project-tools.ts +12 -4
  55. package/src/cli/mcp/tools/scaffold-tools.ts +6 -2
  56. package/src/cli/mcp/tools/skill-tools.ts +6 -2
  57. package/src/cli/mcp/tools.ts +52 -16
  58. package/src/deno.js +1 -1
  59. package/src/src/agent/runtime/index.ts +1 -1
  60. package/src/src/agent/runtime/tool-helpers.ts +86 -36
  61. package/src/src/issues/mcp.ts +43 -10
  62. package/src/src/mcp/index.ts +7 -1
  63. package/src/src/mcp/server.ts +92 -31
  64. package/src/src/mcp/types.ts +24 -0
  65. package/src/src/tool/types.ts +7 -0
  66. package/src/src/utils/version-constant.ts +1 -1
@@ -37,6 +37,14 @@ export declare const JSONRPC_ERRORS: {
37
37
  readonly INVALID_PARAMS: -32602;
38
38
  readonly INTERNAL_ERROR: -32603;
39
39
  };
40
+ /**
41
+ * Error with a JSON-RPC error code attached.
42
+ * Preserves stack traces unlike throwing plain objects.
43
+ */
44
+ export declare class JsonRpcError extends Error {
45
+ readonly code: number;
46
+ constructor(code: number, message: string);
47
+ }
40
48
  /**
41
49
  * Create a JSON-RPC parse error response
42
50
  */
@@ -48,7 +56,31 @@ export declare function successResponse(id: string | number | undefined, result:
48
56
  /**
49
57
  * Create a JSON-RPC error response
50
58
  */
51
- export declare function errorResponse(id: string | number | undefined, e: unknown, code?: -32603): JSONRPCResponse;
59
+ export declare function errorResponse(id: string | number | undefined, e: unknown, code?: number): JSONRPCResponse;
60
+ /**
61
+ * Supported MCP protocol versions (newest first).
62
+ * Shared across all CLI MCP servers so the version list is maintained in one place.
63
+ */
64
+ export declare const MCP_SUPPORTED_VERSIONS: [string, ...string[]];
65
+ /**
66
+ * Safely extract a record from unknown params (mirrors src/mcp toParamsRecord).
67
+ */
68
+ export declare function toParamsRecord(params: unknown): Record<string, unknown>;
69
+ /**
70
+ * Negotiate MCP protocol version: echo the client's version if supported,
71
+ * otherwise fall back to the newest supported version.
72
+ */
73
+ export declare function negotiateVersion(params: unknown): string;
74
+ /**
75
+ * Build a complete MCP initialize result with negotiated version,
76
+ * capabilities, serverInfo, and instructions.
77
+ */
78
+ export declare function buildInitializeResult(params: unknown, serverInfo: {
79
+ name: string;
80
+ title: string;
81
+ version: string;
82
+ description: string;
83
+ }, instructions: string): Record<string, unknown>;
52
84
  /**
53
85
  * Validate and extract tools/call params
54
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"jsonrpc.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,CAStD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,CAEjG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAC/B,CAAC,EAAE,OAAO,EACV,IAAI,SAAgC,GACnC,eAAe,CASjB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC"}
1
+ {"version":3,"file":"jsonrpc.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,CAStD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,CAEjG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAC/B,CAAC,EAAE,OAAO,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,eAAe,CAgBjB;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAgC,CAAC;AAE1F;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAMxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACjF,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC"}
@@ -23,6 +23,17 @@ export const JSONRPC_ERRORS = {
23
23
  INVALID_PARAMS: -32602,
24
24
  INTERNAL_ERROR: -32603,
25
25
  };
26
+ /**
27
+ * Error with a JSON-RPC error code attached.
28
+ * Preserves stack traces unlike throwing plain objects.
29
+ */
30
+ export class JsonRpcError extends Error {
31
+ code;
32
+ constructor(code, message) {
33
+ super(message);
34
+ this.code = code;
35
+ }
36
+ }
26
37
  /**
27
38
  * Create a JSON-RPC parse error response
28
39
  */
@@ -45,14 +56,62 @@ export function successResponse(id, result) {
45
56
  /**
46
57
  * Create a JSON-RPC error response
47
58
  */
48
- export function errorResponse(id, e, code = JSONRPC_ERRORS.INTERNAL_ERROR) {
59
+ export function errorResponse(id, e, code) {
60
+ const errorCode = typeof e === "object" && e !== null && "code" in e
61
+ ? e.code
62
+ : undefined;
63
+ const resolvedCode = code ??
64
+ (typeof errorCode === "number" ? errorCode : JSONRPC_ERRORS.INTERNAL_ERROR);
65
+ const message = e instanceof Error
66
+ ? e.message
67
+ : typeof e === "object" && e !== null && "message" in e
68
+ ? String(e.message)
69
+ : String(e);
49
70
  return {
50
71
  jsonrpc: "2.0",
51
72
  id,
52
- error: {
53
- code,
54
- message: e instanceof Error ? e.message : String(e),
73
+ error: { code: resolvedCode, message },
74
+ };
75
+ }
76
+ /**
77
+ * Supported MCP protocol versions (newest first).
78
+ * Shared across all CLI MCP servers so the version list is maintained in one place.
79
+ */
80
+ export const MCP_SUPPORTED_VERSIONS = ["2025-11-25", "2024-11-05"];
81
+ /**
82
+ * Safely extract a record from unknown params (mirrors src/mcp toParamsRecord).
83
+ */
84
+ export function toParamsRecord(params) {
85
+ if (params && typeof params === "object" && !Array.isArray(params)) {
86
+ return params;
87
+ }
88
+ return {};
89
+ }
90
+ /**
91
+ * Negotiate MCP protocol version: echo the client's version if supported,
92
+ * otherwise fall back to the newest supported version.
93
+ */
94
+ export function negotiateVersion(params) {
95
+ const p = toParamsRecord(params);
96
+ const requested = typeof p.protocolVersion === "string" ? p.protocolVersion : undefined;
97
+ return requested && MCP_SUPPORTED_VERSIONS.includes(requested)
98
+ ? requested
99
+ : MCP_SUPPORTED_VERSIONS[0];
100
+ }
101
+ /**
102
+ * Build a complete MCP initialize result with negotiated version,
103
+ * capabilities, serverInfo, and instructions.
104
+ */
105
+ export function buildInitializeResult(params, serverInfo, instructions) {
106
+ return {
107
+ protocolVersion: negotiateVersion(params),
108
+ capabilities: {
109
+ tools: { listChanged: true },
110
+ resources: { listChanged: true },
111
+ prompts: { listChanged: true },
55
112
  },
113
+ serverInfo,
114
+ instructions,
56
115
  };
57
116
  }
58
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"remote-file-tools.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/remote-file-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-file-tools.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/remote-file-tools.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,8 @@ const remoteListFilesInput = z.object({
108
108
  });
109
109
  export const vfRemoteListFiles = {
110
110
  name: "vf_remote_list_files",
111
+ title: "List Remote Files",
112
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
111
113
  description: "List files in a remote Veryfront project. Returns file paths, types, and sizes. Use this to explore a project's structure.",
112
114
  inputSchema: remoteListFilesInput,
113
115
  execute: (input) => withSpan("cli.mcp.tool.vf_remote_list_files", async () => {
@@ -138,6 +140,8 @@ const remoteGetFileInput = z.object({
138
140
  });
139
141
  export const vfRemoteGetFile = {
140
142
  name: "vf_remote_get_file",
143
+ title: "Get Remote File",
144
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
141
145
  description: "Read the content of a file from a remote Veryfront project. Always use this before modifying a file.",
142
146
  inputSchema: remoteGetFileInput,
143
147
  execute: (input) => withSpan("cli.mcp.tool.vf_remote_get_file", async () => {
@@ -165,6 +169,13 @@ const remoteUpdateFileInput = z.object({
165
169
  });
166
170
  export const vfRemoteUpdateFile = {
167
171
  name: "vf_remote_update_file",
172
+ title: "Update Remote File",
173
+ annotations: {
174
+ readOnlyHint: false,
175
+ destructiveHint: true,
176
+ idempotentHint: true,
177
+ openWorldHint: false,
178
+ },
168
179
  description: "Create or update a file in a remote Veryfront project. Always read the file first before updating to understand its current state.",
169
180
  inputSchema: remoteUpdateFileInput,
170
181
  execute: (input) => withSpan("cli.mcp.tool.vf_remote_update_file", async () => {
@@ -191,6 +202,13 @@ const remoteDeleteFileInput = z.object({
191
202
  });
192
203
  export const vfRemoteDeleteFile = {
193
204
  name: "vf_remote_delete_file",
205
+ title: "Delete Remote File",
206
+ annotations: {
207
+ readOnlyHint: false,
208
+ destructiveHint: true,
209
+ idempotentHint: true,
210
+ openWorldHint: false,
211
+ },
194
212
  description: "Delete a file from a remote Veryfront project.",
195
213
  inputSchema: remoteDeleteFileInput,
196
214
  execute: async (input) => {
@@ -215,6 +233,8 @@ const remoteSearchFilesInput = z.object({
215
233
  });
216
234
  export const vfRemoteSearchFiles = {
217
235
  name: "vf_remote_search_files",
236
+ title: "Search Remote Files",
237
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
218
238
  description: "Search for text patterns within file contents in a remote Veryfront project. Supports regex and glob patterns.",
219
239
  inputSchema: remoteSearchFilesInput,
220
240
  execute: (input) => withSpan("cli.mcp.tool.vf_remote_search_files", async () => {
@@ -248,6 +268,8 @@ const remoteMoveFileInput = z.object({
248
268
  });
249
269
  export const vfRemoteMoveFile = {
250
270
  name: "vf_remote_move_file",
271
+ title: "Move Remote File",
272
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
251
273
  description: "Move or rename a file in a remote Veryfront project.",
252
274
  inputSchema: remoteMoveFileInput,
253
275
  execute: async (input) => {
@@ -277,6 +299,8 @@ const remoteListBranchesInput = z.object({
277
299
  });
278
300
  export const vfRemoteListBranches = {
279
301
  name: "vf_remote_list_branches",
302
+ title: "List Remote Branches",
303
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
280
304
  description: "List branches in a remote Veryfront project.",
281
305
  inputSchema: remoteListBranchesInput,
282
306
  execute: async (input) => {
@@ -302,6 +326,8 @@ const remoteCreateBranchInput = z.object({
302
326
  });
303
327
  export const vfRemoteCreateBranch = {
304
328
  name: "vf_remote_create_branch",
329
+ title: "Create Remote Branch",
330
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
305
331
  description: "Create a new branch in a remote Veryfront project. Branch from main by default, or specify a base branch.",
306
332
  inputSchema: remoteCreateBranchInput,
307
333
  execute: async (input) => {
@@ -323,6 +349,8 @@ const remoteMergeBranchInput = z.object({
323
349
  });
324
350
  export const vfRemoteMergeBranch = {
325
351
  name: "vf_remote_merge_branch",
352
+ title: "Merge Remote Branch",
353
+ annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: false },
326
354
  description: "Merge a branch into the target branch (or main if not specified).",
327
355
  inputSchema: remoteMergeBranchInput,
328
356
  execute: async (input) => {
@@ -350,6 +378,13 @@ const remoteDeleteBranchInput = z.object({
350
378
  });
351
379
  export const vfRemoteDeleteBranch = {
352
380
  name: "vf_remote_delete_branch",
381
+ title: "Delete Remote Branch",
382
+ annotations: {
383
+ readOnlyHint: false,
384
+ destructiveHint: true,
385
+ idempotentHint: true,
386
+ openWorldHint: false,
387
+ },
353
388
  description: "Delete a branch from a remote Veryfront project.",
354
389
  inputSchema: remoteDeleteBranchInput,
355
390
  execute: async (input) => {
@@ -369,6 +404,8 @@ const remoteCreateProjectInput = z.object({
369
404
  });
370
405
  export const vfRemoteCreateProject = {
371
406
  name: "vf_remote_create_project",
407
+ title: "Create Remote Project",
408
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
372
409
  description: "Create a new Veryfront project. Returns the project details including ID and slug.",
373
410
  inputSchema: remoteCreateProjectInput,
374
411
  execute: async (input) => {
@@ -391,6 +428,8 @@ const remoteCloneProjectInput = z.object({
391
428
  });
392
429
  export const vfRemoteCloneProject = {
393
430
  name: "vf_remote_clone_project",
431
+ title: "Clone Remote Project",
432
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
394
433
  description: "Clone a Veryfront project by creating a new project and copying all files from the source.",
395
434
  inputSchema: remoteCloneProjectInput,
396
435
  execute: (input) => withSpan("cli.mcp.tool.vf_remote_clone_project", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,GAAE,eAAoB;IAWxC,KAAK,IAAI,IAAI;IAeP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,SAAS;IAkDjB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,mBAAmB;IAqI3B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,eAAe;CA+DxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAIrE;AAED,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,GAAE,eAAoB;IAWxC,KAAK,IAAI,IAAI;IAeP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,SAAS;IA6DjB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,mBAAmB;IAqI3B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,eAAe;CA+DxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAIrE;AAED,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC"}
@@ -13,7 +13,7 @@ import { createIssuesManager } from "../../src/issues/index.js";
13
13
  import { getErrorCollector, getLogBuffer } from "../../src/observability/index.js";
14
14
  import { allTools, getTool, setServerStartTime } from "./tools.js";
15
15
  import { startStdioJsonRpc } from "./stdio.js";
16
- import { errorResponse, JSONRPCRequestSchema, parseError, PromptsGetParamsSchema, ResourcesReadParamsSchema, successResponse, ToolsCallParamsSchema, } from "./jsonrpc.js";
16
+ import { buildInitializeResult, errorResponse, JsonRpcError, JSONRPCRequestSchema, parseError, PromptsGetParamsSchema, ResourcesReadParamsSchema, successResponse, ToolsCallParamsSchema, } from "./jsonrpc.js";
17
17
  export class MCPDevServer {
18
18
  config;
19
19
  running = false;
@@ -71,6 +71,13 @@ export class MCPDevServer {
71
71
  headers["Access-Control-Allow-Origin"] = origin;
72
72
  if (req.method === "OPTIONS")
73
73
  return new dntShim.Response(null, { status: 204, headers });
74
+ if (origin && !isAllowedOrigin) {
75
+ return new dntShim.Response(JSON.stringify({
76
+ jsonrpc: "2.0",
77
+ id: null,
78
+ error: { code: -32600, message: "Forbidden: Origin not allowed" },
79
+ }), { status: 403, headers });
80
+ }
74
81
  if (url.pathname !== "/mcp") {
75
82
  return new dntShim.Response(JSON.stringify({ error: "Not found. MCP endpoint is at /mcp" }), {
76
83
  status: 404,
@@ -110,6 +117,8 @@ export class MCPDevServer {
110
117
  switch (method) {
111
118
  case "initialize":
112
119
  return Promise.resolve(this.handleInitialize(params));
120
+ case "notifications/initialized":
121
+ return Promise.resolve({});
113
122
  case "tools/list":
114
123
  return Promise.resolve(this.handleToolsList());
115
124
  case "tools/call":
@@ -126,46 +135,60 @@ export class MCPDevServer {
126
135
  return Promise.reject(new Error(`Unknown method: ${method}`));
127
136
  }
128
137
  }
129
- handleInitialize(_params) {
130
- return {
131
- protocolVersion: "2024-11-05",
132
- capabilities: {
133
- tools: {},
134
- resources: {},
135
- prompts: {},
136
- },
137
- serverInfo: {
138
- name: this.config.serverName,
139
- version: this.config.serverVersion,
140
- },
141
- };
138
+ handleInitialize(params) {
139
+ return buildInitializeResult(params, {
140
+ name: this.config.serverName ?? "veryfront-dev",
141
+ title: "Veryfront Dev MCP Server",
142
+ version: this.config.serverVersion ?? "1.0.0",
143
+ description: "Veryfront development server tools for real-time errors, logs, HMR, and scaffolding",
144
+ }, "Veryfront dev MCP server provides development tools. Use vf_get_errors to check for code errors, vf_get_logs for server logs, and vf_trigger_hmr for hot module reload.");
142
145
  }
143
146
  handleToolsList() {
144
147
  return {
145
- tools: allTools.map((tool) => ({
146
- name: tool.name,
147
- description: tool.description,
148
- inputSchema: this.zodToJsonSchema(tool.inputSchema),
149
- })),
148
+ tools: allTools.map((tool) => {
149
+ const entry = {
150
+ name: tool.name,
151
+ description: tool.description,
152
+ inputSchema: this.zodToJsonSchema(tool.inputSchema),
153
+ };
154
+ if (tool.title)
155
+ entry.title = tool.title;
156
+ if (tool.annotations)
157
+ entry.annotations = tool.annotations;
158
+ return entry;
159
+ }),
150
160
  };
151
161
  }
152
162
  handleToolsCall(params) {
153
- const { name, arguments: args } = ToolsCallParamsSchema.parse(params);
163
+ const { name: toolName, arguments: args } = ToolsCallParamsSchema.parse(params);
164
+ const tool = getTool(toolName);
165
+ if (!tool) {
166
+ throw new JsonRpcError(-32602, `Unknown tool: ${toolName}`);
167
+ }
168
+ let input;
169
+ try {
170
+ input = tool.inputSchema.parse(args ?? {});
171
+ }
172
+ catch (error) {
173
+ const message = error instanceof Error ? error.message : String(error);
174
+ throw new JsonRpcError(-32602, `Invalid arguments for tool ${toolName}: ${message}`);
175
+ }
154
176
  return withSpan("cli.mcp.handleToolsCall", async () => {
155
- const tool = getTool(name);
156
- if (!tool)
157
- throw new Error(`Unknown tool: ${name}`);
158
- const input = tool.inputSchema.parse(args ?? {});
159
- const result = await tool.execute(input);
160
- return {
161
- content: [
162
- {
163
- type: "text",
164
- text: JSON.stringify(result, null, 2),
165
- },
166
- ],
167
- };
168
- }, { "mcp.tool.name": name });
177
+ try {
178
+ const result = await tool.execute(input);
179
+ return {
180
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
181
+ isError: false,
182
+ };
183
+ }
184
+ catch (error) {
185
+ const message = error instanceof Error ? error.message : String(error);
186
+ return {
187
+ content: [{ type: "text", text: message }],
188
+ isError: true,
189
+ };
190
+ }
191
+ }, { "mcp.tool.name": toolName });
169
192
  }
170
193
  handleResourcesList() {
171
194
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/standalone.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,GAAE,mBAAwB;IAM5C,KAAK,IAAI,IAAI;IAWb,IAAI,IAAI,IAAI;YAME,aAAa;IAW3B,OAAO,CAAC,cAAc;YAiCR,eAAe;IAU7B,OAAO,CAAC,mBAAmB;YAyBb,mBAAmB;IA6CjC,OAAO,CAAC,iBAAiB;YAkBX,gBAAgB;IAwB9B,OAAO,CAAC,WAAW;CA8JpB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,mBAAwB,GAAG,mBAAmB,CAI/F"}
1
+ {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/standalone.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,GAAE,mBAAwB;IAM5C,KAAK,IAAI,IAAI;IAWb,IAAI,IAAI,IAAI;YAME,aAAa;IAW3B,OAAO,CAAC,cAAc;YAsCR,eAAe;IAqB7B,OAAO,CAAC,mBAAmB;YAyBb,mBAAmB;IA6CjC,OAAO,CAAC,iBAAiB;YAkBX,gBAAgB;IAwB9B,OAAO,CAAC,WAAW;CA8JpB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,mBAAwB,GAAG,mBAAmB,CAI/F"}
@@ -8,7 +8,7 @@
8
8
  import { readTextFile } from "../../src/platform/index.js";
9
9
  import { DevServerClient } from "./dev-server-client.js";
10
10
  import { startStdioJsonRpc } from "./stdio.js";
11
- import { errorResponse, JSONRPCRequestSchema, parseError, PromptsGetParamsSchema, ResourcesReadParamsSchema, successResponse, ToolsCallParamsSchema, } from "./jsonrpc.js";
11
+ import { buildInitializeResult, errorResponse, JsonRpcError, JSONRPCRequestSchema, parseError, PromptsGetParamsSchema, ResourcesReadParamsSchema, successResponse, ToolsCallParamsSchema, } from "./jsonrpc.js";
12
12
  const DEFAULT_DEV_PORT = 8080;
13
13
  const NOT_RUNNING_MSG = "Dev server not running. Start with: veryfront";
14
14
  export class StandaloneMCPServer {
@@ -50,11 +50,12 @@ export class StandaloneMCPServer {
50
50
  dispatchMethod(method, params) {
51
51
  switch (method) {
52
52
  case "initialize":
53
- return Promise.resolve({
54
- protocolVersion: "2024-11-05",
55
- capabilities: { tools: {}, resources: {}, prompts: {} },
56
- serverInfo: { name: "veryfront-mcp", version: "1.0.0" },
57
- });
53
+ return Promise.resolve(buildInitializeResult(params, {
54
+ name: "veryfront-mcp",
55
+ title: "Veryfront Standalone MCP Server",
56
+ version: "1.0.0",
57
+ description: "Veryfront standalone MCP server for CLI-based development tools",
58
+ }, "Veryfront standalone MCP server provides development tools. Use vf_get_errors to check for code errors, vf_get_logs for server logs, and vf_get_status for dev server health."));
58
59
  case "notifications/initialized":
59
60
  return Promise.resolve({});
60
61
  case "tools/list":
@@ -80,12 +81,24 @@ export class StandaloneMCPServer {
80
81
  }
81
82
  }
82
83
  async handleToolsCall(params) {
83
- const { name, arguments: args } = ToolsCallParamsSchema.parse(params);
84
- const tool = this.tools.find((t) => t.name === name);
84
+ const { name: toolName, arguments: args } = ToolsCallParamsSchema.parse(params);
85
+ const tool = this.tools.find((t) => t.name === toolName);
85
86
  if (!tool)
86
- throw new Error(`Unknown tool: ${name}`);
87
- const result = await tool.execute(args ?? {});
88
- return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
87
+ throw new JsonRpcError(-32602, `Unknown tool: ${toolName}`);
88
+ try {
89
+ const result = await tool.execute(args ?? {});
90
+ return {
91
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
92
+ isError: false,
93
+ };
94
+ }
95
+ catch (error) {
96
+ const message = error instanceof Error ? error.message : String(error);
97
+ return {
98
+ content: [{ type: "text", text: message }],
99
+ isError: true,
100
+ };
101
+ }
89
102
  }
90
103
  handleResourcesList() {
91
104
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqDD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAwJD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD,QAAA,MAAM,iBAAiB,gCAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB,gCAAe,CAAC;AAExC,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAMvE,CAAC;AAMF,QAAA,MAAM,qBAAqB;;;;;;;;;iBAMzB,CAAC;AAEH,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,CAUhF,CAAC;AAMF,QAAA,MAAM,iBAAiB,gCAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAMpE,CAAC;AAMF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;iBAuBtB,CAAC;AAEH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CA+C5E,CAAC"}
1
+ {"version":3,"file":"catalog-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/catalog-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqDD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAwJD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD,QAAA,MAAM,iBAAiB,gCAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAQpE,CAAC;AAMF,QAAA,MAAM,kBAAkB,gCAAe,CAAC;AAExC,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAQvE,CAAC;AAMF,QAAA,MAAM,qBAAqB;;;;;;;;;iBAMzB,CAAC;AAEH,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,CAYhF,CAAC;AAMF,QAAA,MAAM,iBAAiB,gCAAe,CAAC;AAEvC,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAQpE,CAAC;AAMF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;iBAuBtB,CAAC;AAEH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAiD5E,CAAC"}
@@ -286,7 +286,9 @@ const USECASES = [
286
286
  const listExamplesInput = z.object({});
287
287
  export const vfListExamples = {
288
288
  name: "vf_list_examples",
289
- description: "List example projects that demonstrate Veryfront features. Use these as references or starting points for new projects.",
289
+ title: "List Examples",
290
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
291
+ description: "Use this when you need to browse example projects that demonstrate Veryfront features and integrations. Returns an array of example info with name, description, and category. Do not use for project templates — use vf_list_templates instead.",
290
292
  inputSchema: listExamplesInput,
291
293
  execute: () => Promise.resolve(EXAMPLES),
292
294
  };
@@ -296,7 +298,9 @@ export const vfListExamples = {
296
298
  const listTemplatesInput = z.object({});
297
299
  export const vfListTemplates = {
298
300
  name: "vf_list_templates",
299
- description: "List available project templates. Use this to help users choose the right starting point for their project.",
301
+ title: "List Templates",
302
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true }, // openWorldHint: templates come from remote catalog API
303
+ description: "Use this when you need to list available project templates for creating new projects. Returns an array of template info with name and description. Do not use for example projects — use vf_list_examples instead.",
300
304
  inputSchema: listTemplatesInput,
301
305
  execute: () => Promise.resolve(TEMPLATES),
302
306
  };
@@ -312,7 +316,9 @@ const listIntegrationsInput = z.object({
312
316
  });
313
317
  export const vfListIntegrations = {
314
318
  name: "vf_list_integrations",
315
- description: "List available service integrations (Gmail, Slack, GitHub, etc.). These can be added to AI projects to give agents access to external services.",
319
+ title: "List Integrations",
320
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
321
+ description: "Use this when you need to list available service integrations (Gmail, Slack, GitHub, etc.) that can be added to AI projects. Returns an array of integration info with name, category, and description. Do not use for adding integrations to a project — use vf_create_project with the integrations parameter instead.",
316
322
  inputSchema: listIntegrationsInput,
317
323
  execute: (input) => {
318
324
  const { category } = input;
@@ -327,7 +333,9 @@ export const vfListIntegrations = {
327
333
  const listUsecasesInput = z.object({});
328
334
  export const vfListUsecases = {
329
335
  name: "vf_list_usecases",
330
- description: "List pre-configured use-case templates. Each includes recommended integrations and UI layout for common scenarios.",
336
+ title: "List Use Cases",
337
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
338
+ description: "Use this when you need to browse pre-configured use-case templates with recommended integrations and UI layouts. Returns an array of use-case info with name, integrations, and layout. Do not use for raw templates — use vf_list_templates instead.",
331
339
  inputSchema: listUsecasesInput,
332
340
  execute: () => Promise.resolve(USECASES),
333
341
  };
@@ -360,7 +368,9 @@ const createProjectInput = z.object({
360
368
  });
361
369
  export const vfCreateProject = {
362
370
  name: "vf_create_project",
363
- description: "Create a new Veryfront project from a template. This is the MCP equivalent of 'veryfront init'. Returns the project directory and next steps.",
371
+ title: "Create Project",
372
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
373
+ description: "Use this when you need to create a new Veryfront project from a template. Returns the project directory and next steps. Do not use for scaffolding individual files — use vf_scaffold instead.",
364
374
  inputSchema: createProjectInput,
365
375
  execute: (input) => withSpan("cli.mcp.tool.vf_create_project", async () => {
366
376
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"cicd-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/cicd-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AA+EzD,eAAO,MAAM,SAAS,EAAE,OAAO,EAK9B,CAAC"}
1
+ {"version":3,"file":"cicd-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/cicd-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAuFzD,eAAO,MAAM,SAAS,EAAE,OAAO,EAK9B,CAAC"}
@@ -5,6 +5,8 @@ const getPipelineStatusInput = z.object({
5
5
  });
6
6
  const vfGetPipelineStatus = {
7
7
  name: "vf_get_pipeline_status",
8
+ title: "Pipeline Status",
9
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
8
10
  description: "Get the current build/deploy pipeline state for a project environment.",
9
11
  inputSchema: getPipelineStatusInput,
10
12
  execute: async (input) => {
@@ -22,6 +24,8 @@ const getDeployHistoryInput = z.object({
22
24
  });
23
25
  const vfGetDeployHistory = {
24
26
  name: "vf_get_deploy_history",
27
+ title: "Deploy History",
28
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
25
29
  description: "List recent deployments with status, version, URL, and timestamp.",
26
30
  inputSchema: getDeployHistoryInput,
27
31
  execute: async (input) => {
@@ -38,6 +42,8 @@ const getBuildLogsInput = z.object({
38
42
  });
39
43
  const vfGetBuildLogs = {
40
44
  name: "vf_get_build_logs",
45
+ title: "Build Logs",
46
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
41
47
  description: "Get build logs from an active or recent build/deployment.",
42
48
  inputSchema: getBuildLogsInput,
43
49
  execute: async (input) => {
@@ -55,6 +61,8 @@ const triggerDeployInput = z.object({
55
61
  });
56
62
  const vfTriggerDeploy = {
57
63
  name: "vf_trigger_deploy",
64
+ title: "Trigger Deploy",
65
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
58
66
  description: "Trigger a deployment to an environment. Returns a deployment ID for status tracking.",
59
67
  inputSchema: triggerDeployInput,
60
68
  execute: async (input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"dev-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/dev-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/dev-tools.ts"],"names":[],"mappings":"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"}