create_project
Create new projects in Helios-9 with name, description, and initial status to organize work and track progress through structured management.
Instructions
Create a new project with specified details
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the project | |
| description | No | Optional description of the project | |
| status | No | Initial status of the project | active |
Implementation Reference
- src/tools/projects.ts:148-166 (handler)The primary handler function for the 'create_project' MCP tool. It validates input using CreateProjectSchema, logs the creation attempt, calls the supabaseService helper to persist the project, logs success, and returns the created project object with a confirmation message.export const createProject = requireAuth(async (args: any) => { const projectData = CreateProjectSchema.parse(args) logger.info('Creating new project', { name: projectData.name }) const project = await supabaseService.createProject({ name: projectData.name, description: projectData.description || null, status: projectData.status // Removed metadata as it doesn't exist in the database schema }) logger.info('Project created successfully', { project_id: project.id, name: project.name }) return { project, message: `Project "${project.name}" created successfully` } })
- src/tools/projects.ts:23-28 (schema)Zod schema used for input validation in the create_project handler. Defines required 'name', optional 'description', and 'status' with default 'active'.const CreateProjectSchema = z.object({ name: z.string().min(1).max(255), description: z.string().optional(), status: z.enum(['active', 'completed', 'archived']).default('active') // Removed priority, metadata as they don't exist in the database schema })
- src/tools/projects.ts:120-146 (registration)MCPTool registration object for 'create_project', including name, description, and inputSchema that matches the Zod validation schema.export const createProjectTool: MCPTool = { name: 'create_project', description: 'Create a new project with specified details', inputSchema: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 255, description: 'The name of the project' }, description: { type: 'string', description: 'Optional description of the project' }, status: { type: 'string', enum: ['active', 'completed', 'archived'], default: 'active', description: 'Initial status of the project' }, // Removed priority, metadata as they don't exist in the database schema }, required: ['name'] } }
- src/tools/projects.ts:778-788 (registration)Handler registry object mapping tool names to their handler functions, including 'create_project: createProject'. This is likely used for overall 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:381-389 (helper)supabaseService.createProject helper method (part of ApiClient) that makes the actual POST API request to '/api/mcp/projects' to create the project in the backend, used by the tool handler.async createProject(projectData: ProjectInsert): Promise<Project> { const response = await this.request<{ project: Project }>('/api/mcp/projects', { method: 'POST', body: JSON.stringify(projectData), }) logger.info(`Project created: ${response.project.name} (${response.project.id})`) return response.project }