@vibescope/mcp-server 0.4.8 → 0.4.9

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.
@@ -96,7 +96,8 @@ export interface ProjectMethods {
96
96
  require_time_estimates?: boolean;
97
97
  fallback_activities_enabled?: boolean;
98
98
  preferred_fallback_activities?: string[];
99
- allow_agent_task_creation?: boolean;
99
+ allow_local_agent_task_creation?: boolean;
100
+ allow_cloud_agent_task_creation?: boolean;
100
101
  }): Promise<ApiResponse<{
101
102
  success: boolean;
102
103
  project_id: string;
@@ -247,7 +247,8 @@ export declare class VibescopeApiClient {
247
247
  require_time_estimates?: boolean;
248
248
  fallback_activities_enabled?: boolean;
249
249
  preferred_fallback_activities?: string[];
250
- allow_agent_task_creation?: boolean;
250
+ allow_local_agent_task_creation?: boolean;
251
+ allow_cloud_agent_task_creation?: boolean;
251
252
  }): Promise<ApiResponse<{
252
253
  success: boolean;
253
254
  project_id: string;
@@ -486,6 +487,12 @@ export declare class VibescopeApiClient {
486
487
  completeTask(taskId: string, params: {
487
488
  summary?: string;
488
489
  session_id?: string;
490
+ commit_hash?: string;
491
+ check_results?: Array<{
492
+ command: string;
493
+ passed: boolean;
494
+ output?: string;
495
+ }>;
489
496
  }): Promise<ApiResponse<{
490
497
  success: boolean;
491
498
  directive: string;
@@ -285,6 +285,8 @@ export class VibescopeApiClient {
285
285
  return this.proxy('complete_task', {
286
286
  task_id: taskId,
287
287
  summary: params.summary,
288
+ ...(params.commit_hash ? { commit_hash: params.commit_hash } : {}),
289
+ ...(params.check_results ? { check_results: params.check_results } : {}),
288
290
  }, params.session_id ? { session_id: params.session_id, persona: null, instance_id: '' } : undefined);
289
291
  }
290
292
  async deleteTask(taskId) {
@@ -50,7 +50,8 @@ const updateProjectSchema = {
50
50
  require_time_estimates: { type: 'boolean' },
51
51
  fallback_activities_enabled: { type: 'boolean' },
52
52
  preferred_fallback_activities: { type: 'array' },
53
- allow_agent_task_creation: { type: 'boolean' },
53
+ allow_local_agent_task_creation: { type: 'boolean' },
54
+ allow_cloud_agent_task_creation: { type: 'boolean' },
54
55
  };
55
56
  const updateProjectReadmeSchema = {
56
57
  project_id: { type: 'string', required: true, validate: uuidValidator },
@@ -112,7 +113,7 @@ export const createProject = async (args, _ctx) => {
112
113
  export const updateProject = async (args, _ctx) => {
113
114
  const { project_id, name, description, goal, git_url, tech_stack, status, git_workflow, git_main_branch, git_develop_branch, git_auto_branch, git_auto_tag, deployment_instructions,
114
115
  // New project settings
115
- git_delete_branch_on_merge, require_pr_for_validation, auto_merge_on_approval, validation_required, default_task_priority, require_time_estimates, fallback_activities_enabled, preferred_fallback_activities, allow_agent_task_creation } = parseArgs(args, updateProjectSchema);
116
+ git_delete_branch_on_merge, require_pr_for_validation, auto_merge_on_approval, validation_required, default_task_priority, require_time_estimates, fallback_activities_enabled, preferred_fallback_activities, allow_local_agent_task_creation, allow_cloud_agent_task_creation } = parseArgs(args, updateProjectSchema);
116
117
  const apiClient = getApiClient();
117
118
  const response = await apiClient.updateProject(project_id, {
118
119
  name,
@@ -136,7 +137,8 @@ export const updateProject = async (args, _ctx) => {
136
137
  require_time_estimates,
137
138
  fallback_activities_enabled,
138
139
  preferred_fallback_activities: preferred_fallback_activities,
139
- allow_agent_task_creation: allow_agent_task_creation
140
+ allow_local_agent_task_creation: allow_local_agent_task_creation,
141
+ allow_cloud_agent_task_creation: allow_cloud_agent_task_creation
140
142
  });
141
143
  if (!response.ok) {
142
144
  return { result: { error: response.error || 'Failed to update project' }, isError: true };
@@ -67,6 +67,8 @@ const completeTaskSchema = {
67
67
  task_id: { type: 'string', required: true, validate: uuidValidator },
68
68
  summary: { type: 'string' },
69
69
  session_id: { type: 'string' },
70
+ commit_hash: { type: 'string' },
71
+ check_results: { type: 'object' },
70
72
  };
71
73
  const deleteTaskSchema = {
72
74
  task_id: { type: 'string', required: true, validate: uuidValidator },
@@ -429,11 +431,13 @@ export const updateTask = async (args, ctx) => {
429
431
  return { result };
430
432
  };
431
433
  export const completeTask = async (args, ctx) => {
432
- const { task_id, summary, session_id: explicit_session_id } = parseArgs(args, completeTaskSchema);
434
+ const { task_id, summary, session_id: explicit_session_id, commit_hash, check_results } = parseArgs(args, completeTaskSchema);
433
435
  const api = getApiClient();
434
436
  const response = await api.completeTask(task_id, {
435
437
  summary,
436
438
  session_id: explicit_session_id || ctx.session.currentSessionId || undefined,
439
+ commit_hash,
440
+ check_results: check_results,
437
441
  });
438
442
  if (!response.ok) {
439
443
  return { result: { error: response.error || 'Failed to complete task' }, isError: true };
@@ -160,9 +160,13 @@ export const projectTools = [
160
160
  items: { type: 'string' },
161
161
  description: 'Array of preferred fallback activities (e.g., ["code_review", "security_review"]). Null means all allowed.',
162
162
  },
163
- allow_agent_task_creation: {
163
+ allow_local_agent_task_creation: {
164
164
  type: 'boolean',
165
- description: 'Allow agents to create tasks via add_task (default: false). When disabled, agents receive a helpful error directing them to log suggestions in their completion summary instead.',
165
+ description: 'Allow local agents (running on developer machine) to create tasks via add_task (default: true).',
166
+ },
167
+ allow_cloud_agent_task_creation: {
168
+ type: 'boolean',
169
+ description: 'Allow cloud/remote agents to create tasks via add_task (default: false).',
166
170
  },
167
171
  },
168
172
  required: ['project_id'],
@@ -342,6 +342,23 @@ The auto_continue: true flag in the response means you are expected to continue
342
342
  type: 'string',
343
343
  description: 'Session ID from start_work_session. Required for cloud agents using mcporter.',
344
344
  },
345
+ commit_hash: {
346
+ type: 'string',
347
+ description: 'Git commit hash (7-40 hex chars) of your last commit. Stored on the task for verification.',
348
+ },
349
+ check_results: {
350
+ type: 'array',
351
+ description: 'Results of pre-completion checks (required if project has pre_completion_commands configured). Each item: { command, passed, output? }',
352
+ items: {
353
+ type: 'object',
354
+ properties: {
355
+ command: { type: 'string', description: 'The command that was run' },
356
+ passed: { type: 'boolean', description: 'Whether the command succeeded' },
357
+ output: { type: 'string', description: 'First 500 chars of output if failed' },
358
+ },
359
+ required: ['command', 'passed'],
360
+ },
361
+ },
345
362
  },
346
363
  required: ['task_id'],
347
364
  },
package/docs/TOOLS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Auto-generated from tool definitions. Do not edit manually.
4
4
  >
5
- > Generated: 2026-03-05
5
+ > Generated: 2026-03-10
6
6
  >
7
7
  > Total tools: 168
8
8
 
@@ -246,7 +246,8 @@ Update project details (name, description, goal, settings).
246
246
  | `require_time_estimates` | `boolean` | No | Require estimated_minutes when creating tasks (default: false) |
247
247
  | `fallback_activities_enabled` | `boolean` | No | Allow agents to perform background activities when no tasks available (default: true) |
248
248
  | `preferred_fallback_activities` | `string[]` | No | Array of preferred fallback activities (e.g., ["code_review", "security_review"]). Null means all allowed. |
249
- | `allow_agent_task_creation` | `boolean` | No | Allow agents to create tasks via add_task (default: false). When disabled, agents receive a helpful error directing them to log suggestions in their completion summary instead. |
249
+ | `allow_local_agent_task_creation` | `boolean` | No | Allow local agents (running on developer machine) to create tasks via add_task (default: true). |
250
+ | `allow_cloud_agent_task_creation` | `boolean` | No | Allow cloud/remote agents to create tasks via add_task (default: false). |
250
251
 
251
252
  ---
252
253
 
@@ -454,6 +455,8 @@ The auto_continue: true flag in the response means you are expected to continue
454
455
  | `task_id` | `string` | Yes | Task UUID |
455
456
  | `summary` | `string` | No | Brief summary of what was done. This is stored on the task as completion_summary and displayed when reviewing completed tasks. |
456
457
  | `session_id` | `string` | No | Session ID from start_work_session. Required for cloud agents using mcporter. |
458
+ | `commit_hash` | `string` | No | Git commit hash (7-40 hex chars) of your last commit. Stored on the task for verification. |
459
+ | `check_results` | `object[]` | No | Results of pre-completion checks (required if project has pre_completion_commands configured). Each item: { command, passed, output? } |
457
460
 
458
461
  ---
459
462
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibescope/mcp-server",
3
- "version": "0.4.8",
3
+ "version": "0.4.9",
4
4
  "description": "MCP server for Vibescope - AI project tracking tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -101,7 +101,8 @@ export interface ProjectMethods {
101
101
  require_time_estimates?: boolean;
102
102
  fallback_activities_enabled?: boolean;
103
103
  preferred_fallback_activities?: string[];
104
- allow_agent_task_creation?: boolean;
104
+ allow_local_agent_task_creation?: boolean;
105
+ allow_cloud_agent_task_creation?: boolean;
105
106
  }): Promise<ApiResponse<{
106
107
  success: boolean;
107
108
  project_id: string;
package/src/api-client.ts CHANGED
@@ -449,7 +449,8 @@ export class VibescopeApiClient {
449
449
  require_time_estimates?: boolean;
450
450
  fallback_activities_enabled?: boolean;
451
451
  preferred_fallback_activities?: string[];
452
- allow_agent_task_creation?: boolean;
452
+ allow_local_agent_task_creation?: boolean;
453
+ allow_cloud_agent_task_creation?: boolean;
453
454
  }): Promise<ApiResponse<{
454
455
  success: boolean;
455
456
  project_id: string;
@@ -754,6 +755,8 @@ export class VibescopeApiClient {
754
755
  async completeTask(taskId: string, params: {
755
756
  summary?: string;
756
757
  session_id?: string;
758
+ commit_hash?: string;
759
+ check_results?: Array<{ command: string; passed: boolean; output?: string }>;
757
760
  }): Promise<ApiResponse<{
758
761
  success: boolean;
759
762
  directive: string;
@@ -778,6 +781,8 @@ export class VibescopeApiClient {
778
781
  return this.proxy('complete_task', {
779
782
  task_id: taskId,
780
783
  summary: params.summary,
784
+ ...(params.commit_hash ? { commit_hash: params.commit_hash } : {}),
785
+ ...(params.check_results ? { check_results: params.check_results } : {}),
781
786
  }, params.session_id ? { session_id: params.session_id, persona: null, instance_id: '' } : undefined);
782
787
  }
783
788
 
@@ -64,7 +64,8 @@ const updateProjectSchema = {
64
64
  require_time_estimates: { type: 'boolean' as const },
65
65
  fallback_activities_enabled: { type: 'boolean' as const },
66
66
  preferred_fallback_activities: { type: 'array' as const },
67
- allow_agent_task_creation: { type: 'boolean' as const },
67
+ allow_local_agent_task_creation: { type: 'boolean' as const },
68
+ allow_cloud_agent_task_creation: { type: 'boolean' as const },
68
69
  };
69
70
 
70
71
  const updateProjectReadmeSchema = {
@@ -167,7 +168,8 @@ export const updateProject: Handler = async (args, _ctx) => {
167
168
  require_time_estimates,
168
169
  fallback_activities_enabled,
169
170
  preferred_fallback_activities,
170
- allow_agent_task_creation
171
+ allow_local_agent_task_creation,
172
+ allow_cloud_agent_task_creation
171
173
  } = parseArgs(args, updateProjectSchema);
172
174
 
173
175
  const apiClient = getApiClient();
@@ -193,7 +195,8 @@ export const updateProject: Handler = async (args, _ctx) => {
193
195
  require_time_estimates,
194
196
  fallback_activities_enabled,
195
197
  preferred_fallback_activities: preferred_fallback_activities as string[] | undefined,
196
- allow_agent_task_creation: allow_agent_task_creation as boolean | undefined
198
+ allow_local_agent_task_creation: allow_local_agent_task_creation as boolean | undefined,
199
+ allow_cloud_agent_task_creation: allow_cloud_agent_task_creation as boolean | undefined
197
200
  });
198
201
 
199
202
  if (!response.ok) {
@@ -85,6 +85,8 @@ const completeTaskSchema = {
85
85
  task_id: { type: 'string' as const, required: true as const, validate: uuidValidator },
86
86
  summary: { type: 'string' as const },
87
87
  session_id: { type: 'string' as const },
88
+ commit_hash: { type: 'string' as const },
89
+ check_results: { type: 'object' as const },
88
90
  };
89
91
 
90
92
  const deleteTaskSchema = {
@@ -529,12 +531,14 @@ export const updateTask: Handler = async (args, ctx) => {
529
531
  };
530
532
 
531
533
  export const completeTask: Handler = async (args, ctx) => {
532
- const { task_id, summary, session_id: explicit_session_id } = parseArgs(args, completeTaskSchema);
534
+ const { task_id, summary, session_id: explicit_session_id, commit_hash, check_results } = parseArgs(args, completeTaskSchema);
533
535
 
534
536
  const api = getApiClient();
535
537
  const response = await api.completeTask(task_id, {
536
538
  summary,
537
539
  session_id: explicit_session_id || ctx.session.currentSessionId || undefined,
540
+ commit_hash,
541
+ check_results: check_results as unknown as Array<{ command: string; passed: boolean; output?: string }>,
538
542
  });
539
543
 
540
544
  if (!response.ok) {
@@ -163,9 +163,13 @@ export const projectTools: Tool[] = [
163
163
  items: { type: 'string' },
164
164
  description: 'Array of preferred fallback activities (e.g., ["code_review", "security_review"]). Null means all allowed.',
165
165
  },
166
- allow_agent_task_creation: {
166
+ allow_local_agent_task_creation: {
167
167
  type: 'boolean',
168
- description: 'Allow agents to create tasks via add_task (default: false). When disabled, agents receive a helpful error directing them to log suggestions in their completion summary instead.',
168
+ description: 'Allow local agents (running on developer machine) to create tasks via add_task (default: true).',
169
+ },
170
+ allow_cloud_agent_task_creation: {
171
+ type: 'boolean',
172
+ description: 'Allow cloud/remote agents to create tasks via add_task (default: false).',
169
173
  },
170
174
  },
171
175
  required: ['project_id'],
@@ -345,6 +345,23 @@ The auto_continue: true flag in the response means you are expected to continue
345
345
  type: 'string',
346
346
  description: 'Session ID from start_work_session. Required for cloud agents using mcporter.',
347
347
  },
348
+ commit_hash: {
349
+ type: 'string',
350
+ description: 'Git commit hash (7-40 hex chars) of your last commit. Stored on the task for verification.',
351
+ },
352
+ check_results: {
353
+ type: 'array',
354
+ description: 'Results of pre-completion checks (required if project has pre_completion_commands configured). Each item: { command, passed, output? }',
355
+ items: {
356
+ type: 'object',
357
+ properties: {
358
+ command: { type: 'string', description: 'The command that was run' },
359
+ passed: { type: 'boolean', description: 'Whether the command succeeded' },
360
+ output: { type: 'string', description: 'First 500 chars of output if failed' },
361
+ },
362
+ required: ['command', 'passed'],
363
+ },
364
+ },
348
365
  },
349
366
  required: ['task_id'],
350
367
  },
package/dist/tools.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- export declare const tools: Tool[];