UNPKG

jobnimbus-mcp-client

Version:

JobNimbus MCP Client - Connect Claude Desktop to remote JobNimbus MCP server

235 lines 13.9 kB
/** * Tool Registry - ALL 58 TOOLS */ // Basic tools import { GetJobsTool } from './jobs/getJobs.js'; import { SearchJobsTool } from './jobs/searchJobs.js'; import { SearchJobsEnhancedTool } from './jobs/searchJobsEnhanced.js'; import { GetJobTool } from './jobs/getJob.js'; import { SearchJobNotesTool } from './jobs/searchJobNotes.js'; import { GetJobTasksTool } from './jobs/getJobTasks.js'; import { GetContactsTool } from './contacts/getContacts.js'; import { SearchContactsTool } from './contacts/searchContacts.js'; import { CreateContactTool } from './contacts/createContact.js'; import { GetEstimatesTool } from './estimates/getEstimates.js'; import { GetActivitiesTool } from './activities/getActivities.js'; import { CreateActivityTool } from './activities/createActivity.js'; import { GetCalendarActivities } from './activities/getCalendarActivities.js'; import { GetTimelineData } from './activities/getTimelineData.js'; import { GetSystemInfoTool } from './system/getSystemInfo.js'; import { ValidateApiKeyTool } from './system/validateApiKey.js'; // Analytics tools - Comprehensive implementations import { AnalyzeInsurancePipelineTool } from './analytics/analyzeInsurancePipeline.js'; import { AnalyzeRetailPipelineTool } from './analytics/analyzeRetailPipeline.js'; import { GetSalesRepPerformanceTool } from './analytics/getSalesRepPerformance.js'; import { GetPerformanceMetricsTool } from './analytics/getPerformanceMetrics.js'; import { GetAutomatedFollowupTool } from './analytics/getAutomatedFollowup.js'; import { GetRevenueReportTool } from './analytics/getRevenueReport.js'; import { GetMarginAnalysisTool } from './analytics/getMarginAnalysis.js'; import { AnalyzeRevenueLeakageTool } from './analytics/analyzeRevenueLeakage.js'; import { GetCustomerLifetimeValueTool } from './analytics/getCustomerLifetimeValue.js'; import { GetProfitabilityDashboardTool } from './analytics/getProfitabilityDashboard.js'; import { AnalyzeDuplicateContactsTool, AnalyzeDuplicateJobsTool, AnalyzePricingAnomaliesTool, GetPricingOptimizationTool, GetCompetitiveIntelligenceTool, GetUpsellOpportunitiesTool, } from './analytics/batchAnalyticsTools.js'; // Comprehensive analytics tools (Batch 1 - 5 tools) import { AnalyzeServicesRepairPipelineTool } from './analytics/analyzeServicesRepairPipeline.js'; import { AnalyzePublicAdjusterPipelineTool } from './analytics/analyzePublicAdjusterPipeline.js'; import { GetSeasonalTrendsTool } from './analytics/getSeasonalTrends.js'; import { GetPipelineForecastingTool } from './analytics/getPipelineForecasting.js'; import { GetSmartSchedulingTool } from './analytics/getSmartScheduling.js'; // Comprehensive analytics tools (Batch 2 - 5 tools) import { GetJobSummaryTool } from './analytics/getJobSummary.js'; import { GetOptimalDoorRoutesTool } from './analytics/getOptimalDoorRoutes.js'; import { GetTerritoryHeatMapsTool } from './analytics/getTerritoryHeatMaps.js'; import { GetActivitiesAnalyticsTool } from './analytics/getActivitiesAnalytics.js'; import { BulkImportContactsTool } from './analytics/getBulkImportContacts.js'; // Comprehensive analytics tools (Batch 3 - 5 tools) import { GetJobsDistributionTool } from './analytics/getJobsDistribution.js'; import { GetDoorKnockingScriptsByAreaTool } from './analytics/getDoorKnockingScriptsByArea.js'; import { GetSeasonalDoorTimingTool } from './analytics/getSeasonalDoorTiming.js'; import { GetEstimatesWithAddressesTool } from './analytics/getEstimatesWithAddresses.js'; import { ValidateContactInformationTool } from './analytics/validateContactInformation.js'; // Comprehensive analytics tools (Batch 4 - 5 tools) import { GetTaskManagementAnalyticsTool } from './analytics/getTaskManagementAnalytics.js'; import { GetUserProductivityAnalyticsTool } from './analytics/getUserProductivityAnalytics.js'; import { GetWebhookMonitoringTool } from './analytics/getWebhookMonitoring.js'; import { GetFileStorageAnalyticsTool } from './analytics/getFileStorageAnalytics.js'; import { GetLeadScoringAnalyticsTool } from './analytics/getLeadScoringAnalytics.js'; // Comprehensive analytics tools (Batch 5 - 5 tools) import { GetCommunicationAnalyticsTool } from './analytics/getCommunicationAnalytics.js'; import { GetConversionFunnelAnalyticsTool } from './analytics/getConversionFunnelAnalytics.js'; import { GetResourceAllocationAnalyticsTool } from './analytics/getResourceAllocationAnalytics.js'; import { GetCustomerSatisfactionAnalyticsTool } from './analytics/getCustomerSatisfactionAnalytics.js'; import { GetTimeTrackingAnalyticsTool } from './analytics/getTimeTrackingAnalytics.js'; // Comprehensive analytics tools (Batch 6 - 5 tools) import { GetProjectManagementAnalyticsTool } from './analytics/getProjectManagementAnalytics.js'; import { GetMarketingCampaignAnalyticsTool } from './analytics/getMarketingCampaignAnalytics.js'; import { GetFinancialForecastingAnalyticsTool } from './analytics/getFinancialForecastingAnalytics.js'; import { GetCustomerSegmentationAnalyticsTool } from './analytics/getCustomerSegmentationAnalytics.js'; import { GetOperationalEfficiencyAnalyticsTool } from './analytics/getOperationalEfficiencyAnalytics.js'; // Comprehensive analytics tools (Batch 7 - 5 tools) import { GetSalesVelocityAnalyticsTool } from './analytics/getSalesVelocityAnalytics.js'; import { GetCompetitiveAnalysisAnalyticsTool } from './analytics/getCompetitiveAnalysisAnalytics.js'; import { GetCustomerJourneyAnalyticsTool } from './analytics/getCustomerJourneyAnalytics.js'; import { GetInventoryManagementAnalyticsTool } from './analytics/getInventoryManagementAnalytics.js'; import { GetQualityControlAnalyticsTool } from './analytics/getQualityControlAnalytics.js'; import { GetTasksTool, GetUsersTool, GetWebhooksTool, GetTimelineDataTool2, GetCalendarActivitiesTool2, } from './analytics/simplifiedBatchTools.js'; // Attachments tools import { GetAttachmentsTool } from './attachments/getAttachments.js'; import { AnalyzeJobAttachmentsTool } from './attachments/analyzeJobAttachments.js'; // Business intelligence tools import { SearchInsuranceJobsTool } from './business/searchInsuranceJobs.js'; // Material tracking tools import { GetEstimateMaterialsTool } from './materials/getEstimateMaterials.js'; import { AnalyzeMaterialCostsTool } from './materials/analyzeMaterialCosts.js'; import { GetMaterialUsageReportTool } from './materials/getMaterialUsageReport.js'; import { GetSupplierComparisonTool } from './materials/getSupplierComparison.js'; import { GetMaterialInventoryInsightsTool } from './materials/getMaterialInventoryInsights.js'; // Material calculation tools (NEW) import { CalculateRoofingMaterialsTool } from './materials/calculateRoofingMaterials.js'; import { CalculateSidingMaterialsTool } from './materials/calculateSidingMaterials.js'; import { EstimateMaterialsFromJobTool } from './materials/estimateMaterialsFromJob.js'; import { CalculateWasteFactorsTool } from './materials/calculateWasteFactors.js'; import { OptimizeMaterialOrdersTool } from './materials/optimizeMaterialOrders.js'; import { GetMaterialSpecificationsTool } from './materials/getMaterialSpecifications.js'; import { CompareMaterialAlternativesTool } from './materials/compareMaterialAlternatives.js'; // Generic tool generator for remaining tools import { createGenericTool, ALL_TOOLS_CONFIG } from './allToolsGenerator.js'; /** * Registry of all available tools */ export class ToolRegistry { tools = new Map(); constructor() { // Register manually implemented tools this.registerTool(new GetSystemInfoTool()); this.registerTool(new ValidateApiKeyTool()); this.registerTool(new GetJobsTool()); this.registerTool(new SearchJobsTool()); this.registerTool(new SearchJobsEnhancedTool()); this.registerTool(new GetJobTool()); this.registerTool(new SearchJobNotesTool()); this.registerTool(new GetJobTasksTool()); this.registerTool(new GetContactsTool()); this.registerTool(new SearchContactsTool()); this.registerTool(new CreateContactTool()); this.registerTool(new GetEstimatesTool()); this.registerTool(new GetActivitiesTool()); this.registerTool(new CreateActivityTool()); this.registerTool(new GetCalendarActivities()); this.registerTool(new GetTimelineData()); this.registerTool(new AnalyzeInsurancePipelineTool()); this.registerTool(new AnalyzeRetailPipelineTool()); this.registerTool(new GetSalesRepPerformanceTool()); this.registerTool(new GetPerformanceMetricsTool()); this.registerTool(new GetAutomatedFollowupTool()); this.registerTool(new GetRevenueReportTool()); this.registerTool(new GetMarginAnalysisTool()); this.registerTool(new AnalyzeRevenueLeakageTool()); this.registerTool(new GetCustomerLifetimeValueTool()); this.registerTool(new GetProfitabilityDashboardTool()); this.registerTool(new AnalyzeDuplicateContactsTool()); this.registerTool(new AnalyzeDuplicateJobsTool()); this.registerTool(new AnalyzePricingAnomaliesTool()); this.registerTool(new GetPricingOptimizationTool()); this.registerTool(new GetCompetitiveIntelligenceTool()); this.registerTool(new GetUpsellOpportunitiesTool()); // Register comprehensive analytics tools (Batches 1-4) this.registerTool(new AnalyzeServicesRepairPipelineTool()); this.registerTool(new AnalyzePublicAdjusterPipelineTool()); this.registerTool(new GetSeasonalTrendsTool()); this.registerTool(new GetPipelineForecastingTool()); this.registerTool(new GetSmartSchedulingTool()); this.registerTool(new GetJobSummaryTool()); this.registerTool(new GetOptimalDoorRoutesTool()); this.registerTool(new GetTerritoryHeatMapsTool()); this.registerTool(new GetActivitiesAnalyticsTool()); this.registerTool(new BulkImportContactsTool()); this.registerTool(new GetJobsDistributionTool()); this.registerTool(new GetDoorKnockingScriptsByAreaTool()); this.registerTool(new GetSeasonalDoorTimingTool()); this.registerTool(new GetEstimatesWithAddressesTool()); this.registerTool(new ValidateContactInformationTool()); this.registerTool(new GetTaskManagementAnalyticsTool()); this.registerTool(new GetUserProductivityAnalyticsTool()); this.registerTool(new GetWebhookMonitoringTool()); this.registerTool(new GetFileStorageAnalyticsTool()); this.registerTool(new GetLeadScoringAnalyticsTool()); this.registerTool(new GetCommunicationAnalyticsTool()); this.registerTool(new GetConversionFunnelAnalyticsTool()); this.registerTool(new GetResourceAllocationAnalyticsTool()); this.registerTool(new GetCustomerSatisfactionAnalyticsTool()); this.registerTool(new GetTimeTrackingAnalyticsTool()); this.registerTool(new GetProjectManagementAnalyticsTool()); this.registerTool(new GetMarketingCampaignAnalyticsTool()); this.registerTool(new GetFinancialForecastingAnalyticsTool()); this.registerTool(new GetCustomerSegmentationAnalyticsTool()); this.registerTool(new GetOperationalEfficiencyAnalyticsTool()); this.registerTool(new GetSalesVelocityAnalyticsTool()); this.registerTool(new GetCompetitiveAnalysisAnalyticsTool()); this.registerTool(new GetCustomerJourneyAnalyticsTool()); this.registerTool(new GetInventoryManagementAnalyticsTool()); this.registerTool(new GetQualityControlAnalyticsTool()); // Register remaining simplified tools this.registerTool(new GetTasksTool()); this.registerTool(new GetUsersTool()); this.registerTool(new GetWebhooksTool()); this.registerTool(new GetAttachmentsTool()); this.registerTool(new GetTimelineDataTool2()); this.registerTool(new GetCalendarActivitiesTool2()); // Register attachment analysis tools this.registerTool(new AnalyzeJobAttachmentsTool()); // Register business intelligence tools this.registerTool(new SearchInsuranceJobsTool()); // Register material tracking tools this.registerTool(new GetEstimateMaterialsTool()); this.registerTool(new AnalyzeMaterialCostsTool()); this.registerTool(new GetMaterialUsageReportTool()); this.registerTool(new GetSupplierComparisonTool()); this.registerTool(new GetMaterialInventoryInsightsTool()); // Register material calculation tools (NEW - 7 tools) this.registerTool(new CalculateRoofingMaterialsTool()); this.registerTool(new CalculateSidingMaterialsTool()); this.registerTool(new EstimateMaterialsFromJobTool()); this.registerTool(new CalculateWasteFactorsTool()); this.registerTool(new OptimizeMaterialOrdersTool()); this.registerTool(new GetMaterialSpecificationsTool()); this.registerTool(new CompareMaterialAlternativesTool()); // Register all generic tools for (const config of ALL_TOOLS_CONFIG) { const ToolClass = createGenericTool(config); this.registerTool(new ToolClass()); } } /** * Register a tool */ registerTool(tool) { this.tools.set(tool.definition.name, tool); } /** * Get a tool by name */ getTool(name) { return this.tools.get(name); } /** * Get all tool definitions */ getAllDefinitions() { return Array.from(this.tools.values()).map((tool) => tool.definition); } /** * Check if tool exists */ hasTool(name) { return this.tools.has(name); } /** * Get tool count */ getToolCount() { return this.tools.size; } } export default new ToolRegistry(); //# sourceMappingURL=index.js.map