update_project
Modify project details like name, description, and status in the Helios-9 project management system to keep information current and accurate.
Instructions
Update an existing project with new information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | The unique identifier of the project to update | |
| name | No | New name for the project | |
| description | No | New description for the project | |
| status | No | New status for the project |
Implementation Reference
- src/tools/projects.ts:203-216 (handler)Core handler function that validates input using UpdateProjectSchema, logs the update attempt, calls supabaseService.updateProject to perform the database update, logs success, and returns the updated project object with a confirmation message.export const updateProject = requireAuth(async (args: any) => { const { project_id, ...updates } = UpdateProjectSchema.parse(args) logger.info('Updating project', { project_id, updates }) const project = await supabaseService.updateProject(project_id, updates) logger.info('Project updated successfully', { project_id: project.id }) return { project, message: `Project "${project.name}" updated successfully` } })
- src/tools/projects.ts:30-36 (schema)Zod schema defining the input structure for the update_project tool, validating project_id as UUID and optional fields for name, description, and status.const UpdateProjectSchema = z.object({ project_id: z.string().uuid(), name: z.string().min(1).max(255).optional(), description: z.string().optional(), status: z.enum(['active', 'completed', 'archived']).optional(), // Removed priority, metadata as they don't exist in the database schema })
- src/tools/projects.ts:171-201 (registration)MCPTool object registration defining the 'update_project' tool with its name, description, and JSON input schema compatible with the MCP protocol.export const updateProjectTool: MCPTool = { name: 'update_project', description: 'Update an existing project with new information', inputSchema: { type: 'object', properties: { project_id: { type: 'string', format: 'uuid', description: 'The unique identifier of the project to update' }, name: { type: 'string', minLength: 1, maxLength: 255, description: 'New name for the project' }, description: { type: 'string', description: 'New description for the project' }, status: { type: 'string', enum: ['active', 'completed', 'archived'], description: 'New status for the project' }, // Removed priority, metadata as they don't exist in the database schema }, required: ['project_id'] } }
- src/tools/projects.ts:778-788 (registration)Export of projectHandlers object that maps tool names to their handler functions, including 'update_project: updateProject', used for MCP tool registration.export const projectHandlers = { list_projects: listProjects, get_project: getProject, create_project: createProject, update_project: updateProject, get_project_context: getProjectContext, archive_project: archiveProject, duplicate_project: duplicateProject, get_project_timeline: getProjectTimeline, bulk_update_projects: bulkUpdateProjects }
- src/lib/api-client.ts:391-398 (helper)supabaseService.updateProject helper method that makes an authenticated PATCH request to the backend API endpoint /api/mcp/projects/{projectId} to update the project data.async updateProject(projectId: string, updates: Partial<Project>): Promise<Project> { const response = await this.request<{ project: Project }>(`/api/mcp/projects/${projectId}`, { method: 'PATCH', body: JSON.stringify(updates), }) return response.project }