get_initiative
Retrieve detailed information about a specific project initiative using its unique identifier. This tool helps users access comprehensive initiative data for project management purposes.
Instructions
Get detailed information about a specific initiative
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| initiative_id | Yes | The unique identifier of the initiative |
Implementation Reference
- src/tools/initiatives.ts:131-158 (handler)The handler function that executes the core logic of the get_initiative tool: validates input, fetches initiative data from supabaseService, computes task/milestone/document statistics and completion percentage, and returns enriched initiative object.export const getInitiative = requireAuth(async (args: any) => { const { initiative_id } = GetInitiativeSchema.parse(args) logger.info('Getting initiative details', { initiative_id }) const initiative = await supabaseService.getInitiative(initiative_id) // If the API returns enriched data with tasks, milestones, and documents, calculate from that const statistics = { total_tasks: initiative.tasks?.length || initiative.task_count || 0, completed_tasks: initiative.tasks?.filter((t: any) => t.status === 'done').length || 0, total_milestones: initiative.milestones?.length || initiative.milestone_count || 0, completed_milestones: initiative.milestones?.filter((m: any) => m.status === 'completed').length || 0, total_documents: initiative.documents?.length || initiative.document_count || 0 } const completion_percentage = statistics.total_tasks > 0 ? Math.round((statistics.completed_tasks / statistics.total_tasks) * 100) : 0 return { initiative: { ...initiative, completion_percentage, statistics } } })
- src/tools/initiatives.ts:115-129 (registration)MCPTool registration object defining the name 'get_initiative', description, and JSON input schema for the tool.export const getInitiativeTool: MCPTool = { name: 'get_initiative', description: 'Get detailed information about a specific initiative', inputSchema: { type: 'object', properties: { initiative_id: { type: 'string', format: 'uuid', description: 'The unique identifier of the initiative' } }, required: ['initiative_id'] } }
- src/tools/initiatives.ts:22-24 (schema)Zod validation schema used in the handler to parse and validate the initiative_id input parameter.const GetInitiativeSchema = z.object({ initiative_id: z.string().uuid() })
- src/tools/initiatives.ts:630-642 (registration)Central handlers map that registers 'get_initiative' key to the getInitiative handler function, likely used for tool dispatching.export const initiativeHandlers = { list_initiatives: listInitiatives, get_initiative: getInitiative, create_initiative: createInitiative, update_initiative: updateInitiative, get_initiative_context: getInitiativeContext, get_initiative_insights: getInitiativeInsights, search_workspace: searchWorkspace, get_enhanced_project_context: getEnhancedProjectContext, get_workspace_context: getWorkspaceContext, associate_document_with_initiative: associateDocumentWithInitiative, disassociate_document_from_initiative: disassociateDocumentFromInitiative }
- src/tools/initiatives.ts:616-628 (registration)Exported object collecting all initiative-related MCPTools, including getInitiativeTool, for bulk registration.export const initiativeTools = { listInitiativesTool, getInitiativeTool, createInitiativeTool, updateInitiativeTool, getInitiativeContextTool, getInitiativeInsightsTool, searchWorkspaceTool, getEnhancedProjectContextTool, getWorkspaceContextTool, associateDocumentWithInitiativeTool, disassociateDocumentFromInitiativeTool }