get_team_productivity
Analyze team productivity patterns and performance by measuring task completion, collaboration, and other dimensions across specified time ranges and projects.
Instructions
Analyze team productivity patterns and performance
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| team_members | No | Specific team member IDs to analyze (optional) | |
| project_id | No | Project context for analysis (optional) | |
| time_range | No | Time range for analysis | month |
| productivity_dimensions | No | Dimensions of productivity to measure |
Implementation Reference
- src/tools/analytics-insights.ts:170-223 (handler)The core handler function for the 'get_team_productivity' tool. Validates input schema, fetches team data, analyzes productivity across multiple dimensions (task_completion, collaboration, etc.), calculates overall score, generates insights and improvement suggestions.export const getTeamProductivity = requireAuth(async (args: any) => { const { team_members, project_id, time_range, productivity_dimensions } = GetTeamProductivitySchema.parse(args) logger.info('Analyzing team productivity', { team_members, project_id, time_range }) // Get team data const teamData = await getTeamData(team_members, project_id, time_range) const productivity: any = { time_range, team_size: teamData.members.length, project_context: project_id, analyzed_at: new Date().toISOString(), dimensions: {} } // Analyze each productivity dimension for (const dimension of productivity_dimensions) { try { switch (dimension) { case 'task_completion': productivity.dimensions.task_completion = analyzeTaskCompletion(teamData) break case 'collaboration': productivity.dimensions.collaboration = analyzeCollaboration(teamData) break case 'code_quality': productivity.dimensions.code_quality = analyzeCodeQuality(teamData) break case 'documentation': productivity.dimensions.documentation = analyzeDocumentation(teamData) break case 'mentoring': productivity.dimensions.mentoring = analyzeMentoring(teamData) break case 'innovation': productivity.dimensions.innovation = analyzeInnovation(teamData) break } } catch (error) { logger.error(`Failed to analyze ${dimension}:`, error) productivity.dimensions[dimension] = { error: 'Analysis failed' } } } // Calculate overall productivity score productivity.overall_score = calculateOverallProductivityScore(productivity.dimensions) // Generate team insights productivity.insights = generateTeamInsights(productivity.dimensions, teamData) productivity.improvement_suggestions = generateImprovementSuggestions(productivity.dimensions) return productivity })
- Zod validation schema for the get_team_productivity tool inputs: team_members (optional array), project_id (optional), time_range (enum with default), productivity_dimensions (array of enums with default).const GetTeamProductivitySchema = z.object({ team_members: z.array(z.string()).optional(), project_id: z.string().optional(), time_range: z.enum(['week', 'month', 'quarter']).default('month'), productivity_dimensions: z.array(z.enum(['task_completion', 'collaboration', 'code_quality', 'documentation', 'mentoring', 'innovation'])).default(['task_completion', 'collaboration']) })
- src/tools/analytics-insights.ts:129-161 (registration)MCPTool registration/definition for get_team_productivity, including name, description, and inputSchema matching the Zod schema.export const getTeamProductivityTool: MCPTool = { name: 'get_team_productivity', description: 'Analyze team productivity patterns and performance', inputSchema: { type: 'object', properties: { team_members: { type: 'array', items: { type: 'string' }, description: 'Specific team member IDs to analyze (optional)' }, project_id: { type: 'string', description: 'Project context for analysis (optional)' }, time_range: { type: 'string', enum: ['week', 'month', 'quarter'], default: 'month', description: 'Time range for analysis' }, productivity_dimensions: { type: 'array', items: { type: 'string', enum: ['task_completion', 'collaboration', 'code_quality', 'documentation', 'mentoring', 'innovation'] }, default: ['task_completion', 'collaboration'], description: 'Dimensions of productivity to measure' } } } }
- src/tools/analytics-insights.ts:779-784 (registration)Collection export including the getTeamProductivityTool for analytics insights tools registry.export const analyticsInsightsTools = { getProjectAnalyticsTool, getTeamProductivityTool, getWorkspaceHealthTool, generateCustomReportTool }
- src/tools/analytics-insights.ts:786-791 (registration)Handlers registry mapping 'get_team_productivity' to its handler function getTeamProductivity.export const analyticsInsightsHandlers = { get_project_analytics: getProjectAnalytics, get_team_productivity: getTeamProductivity, get_workspace_health: getWorkspaceHealth, generate_custom_report: generateCustomReport }