excel_create_cash_flow_projection
Generate 12-month cash flow projections with operating, investing, and financing activities to forecast financial health and support business planning.
Instructions
Create a 12-month cash flow projection worksheet with operating, investing, and financing activities
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| entityName | Yes | ||
| worksheetName | No | Cash Flow Projection |
Implementation Reference
- src/tools/excel-tools.ts:753-788 (registration)Tool registration including name, description, input schema, and handler function that uses ProfessionalTemplates to generate and populate the cash flow projection worksheet.{ name: "excel_create_cash_flow_projection", description: "Create a 12-month cash flow projection worksheet with operating, investing, and financing activities", inputSchema: { type: "object", properties: { entityName: { type: "string" }, worksheetName: { type: "string", default: "Cash Flow Projection" } }, required: ["entityName"] }, handler: async (args: any): Promise<ToolResult> => { try { const worksheetData = ProfessionalTemplates.createCashFlowProjectionWorksheet(args.entityName); const worksheetName = args.worksheetName || "Cash Flow Projection"; await excelManager.addWorksheet(worksheetName); await excelManager.writeWorksheet(worksheetName, worksheetData.data); await excelManager.autoFitColumnWidths(worksheetName, { minWidth: 60, maxWidth: 150 }); return { success: true, message: `Created cash flow projection for ${args.entityName}`, data: { worksheetName, entityName: args.entityName } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : String(error) }; } } },
- src/tools/excel-tools.ts:764-787 (handler)The tool handler function that orchestrates worksheet creation by calling the template generator and ExcelManager methods.handler: async (args: any): Promise<ToolResult> => { try { const worksheetData = ProfessionalTemplates.createCashFlowProjectionWorksheet(args.entityName); const worksheetName = args.worksheetName || "Cash Flow Projection"; await excelManager.addWorksheet(worksheetName); await excelManager.writeWorksheet(worksheetName, worksheetData.data); await excelManager.autoFitColumnWidths(worksheetName, { minWidth: 60, maxWidth: 150 }); return { success: true, message: `Created cash flow projection for ${args.entityName}`, data: { worksheetName, entityName: args.entityName } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : String(error) }; } }
- src/tools/excel-tools.ts:756-762 (schema)Input schema defining required entityName and optional worksheetName.inputSchema: { type: "object", properties: { entityName: { type: "string" }, worksheetName: { type: "string", default: "Cash Flow Projection" } }, required: ["entityName"]
- Core helper method generating the complete WorksheetData structure with pre-built formulas for 12-month cash flow projection across operating, investing, and financing activities, including summaries, minimum cash checks, and GAAP references.static createCashFlowProjectionWorksheet(entityName: string): WorksheetData { return { name: 'Cash Flow Projection', data: [ ['CASH FLOW PROJECTION - ' + entityName.toUpperCase(), '', '', '', '', '', '', '', '', '', '', '', '', ''], ['12-Month Rolling Forecast', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Prepared by Excel Finance MCP', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Total'], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['OPERATING CASH FLOWS:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Revenue Collections', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B8:M8)', value: null }], ['Operating Expenses', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B9:M9)', value: null }], ['Payroll & Benefits', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B10:M10)', value: null }], ['Rent & Utilities', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B11:M11)', value: null }], ['Tax Payments', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B12:M12)', value: null }], ['Net Operating Cash Flow', { formula: '=B8-SUM(B9:B12)', value: null }, { formula: '=C8-SUM(C9:C12)', value: null }, { formula: '=D8-SUM(D9:D12)', value: null }, { formula: '=E8-SUM(E9:E12)', value: null }, { formula: '=F8-SUM(F9:F12)', value: null }, { formula: '=G8-SUM(G9:G12)', value: null }, { formula: '=H8-SUM(H9:H12)', value: null }, { formula: '=I8-SUM(I9:I12)', value: null }, { formula: '=J8-SUM(J9:J12)', value: null }, { formula: '=K8-SUM(K9:K12)', value: null }, { formula: '=L8-SUM(L9:L12)', value: null }, { formula: '=M8-SUM(M9:M12)', value: null }, { formula: '=SUM(B13:M13)', value: null }], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['INVESTING CASH FLOWS:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Capital Expenditures', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B16:M16)', value: null }], ['Asset Sales', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B17:M17)', value: null }], ['Net Investing Cash Flow', { formula: '=B17-B16', value: null }, { formula: '=C17-C16', value: null }, { formula: '=D17-D16', value: null }, { formula: '=E17-E16', value: null }, { formula: '=F17-F16', value: null }, { formula: '=G17-G16', value: null }, { formula: '=H17-H16', value: null }, { formula: '=I17-I16', value: null }, { formula: '=J17-J16', value: null }, { formula: '=K17-K16', value: null }, { formula: '=L17-L16', value: null }, { formula: '=M17-M16', value: null }, { formula: '=SUM(B18:M18)', value: null }], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['FINANCING CASH FLOWS:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Loan Proceeds', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B21:M21)', value: null }], ['Loan Payments', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B22:M22)', value: null }], ['Equity Contributions', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B23:M23)', value: null }], ['Dividends Paid', { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=0', value: null }, { formula: '=SUM(B24:M24)', value: null }], ['Net Financing Cash Flow', { formula: '=B21-B22+B23-B24', value: null }, { formula: '=C21-C22+C23-C24', value: null }, { formula: '=D21-D22+D23-D24', value: null }, { formula: '=E21-E22+E23-E24', value: null }, { formula: '=F21-F22+F23-F24', value: null }, { formula: '=G21-G22+G23-G24', value: null }, { formula: '=H21-H22+H23-H24', value: null }, { formula: '=I21-I22+I23-I24', value: null }, { formula: '=J21-J22+J23-J24', value: null }, { formula: '=K21-K22+K23-K24', value: null }, { formula: '=L21-L22+L23-L24', value: null }, { formula: '=M21-M22+M23-M24', value: null }, { formula: '=SUM(B25:M25)', value: null }], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['NET CASH FLOW:', { formula: '=B13+B18+B25', value: null }, { formula: '=C13+C18+C25', value: null }, { formula: '=D13+D18+D25', value: null }, { formula: '=E13+E18+E25', value: null }, { formula: '=F13+F18+F25', value: null }, { formula: '=G13+G18+G25', value: null }, { formula: '=H13+H18+H25', value: null }, { formula: '=I13+I18+I25', value: null }, { formula: '=J13+J18+J25', value: null }, { formula: '=K13+K18+K25', value: null }, { formula: '=L13+L18+L25', value: null }, { formula: '=M13+M18+M25', value: null }, { formula: '=SUM(B27:M27)', value: null }], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['CASH BALANCE:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Beginning Balance', { formula: '=50000', value: null }, { formula: '=C30', value: null }, { formula: '=D30', value: null }, { formula: '=E30', value: null }, { formula: '=F30', value: null }, { formula: '=G30', value: null }, { formula: '=H30', value: null }, { formula: '=I30', value: null }, { formula: '=J30', value: null }, { formula: '=K30', value: null }, { formula: '=L30', value: null }, { formula: '=M30', value: null }, ''], ['Ending Balance', { formula: '=B29+B27', value: null }, { formula: '=C29+C27', value: null }, { formula: '=D29+D27', value: null }, { formula: '=E29+E27', value: null }, { formula: '=F29+F27', value: null }, { formula: '=G29+G27', value: null }, { formula: '=H29+H27', value: null }, { formula: '=I29+I27', value: null }, { formula: '=J29+J27', value: null }, { formula: '=K29+K27', value: null }, { formula: '=L29+L27', value: null }, { formula: '=M29+M27', value: null }, ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['CASH FLOW ANALYSIS:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['Minimum Cash Required:', { formula: '=25000', value: null }, '', 'Safety buffer', '', '', '', '', '', '', '', '', '', ''], ['Cash Shortfall Months:', { formula: '=SUMPRODUCT((B30:M30<$B$33)*1)', value: null }, '', 'Months below minimum', '', '', '', '', '', '', '', '', '', ''], ['Maximum Cash Balance:', { formula: '=MAX(B30:M30)', value: null }, '', 'Peak cash position', '', '', '', '', '', '', '', '', '', ''], ['Average Monthly Balance:', { formula: '=AVERAGE(B30:M30)', value: null }, '', 'Average cash on hand', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['GAAP REFERENCES:', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['- ASC 230: Statement of Cash Flows', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['- ASC 210: Balance Sheet Classification', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['- Working Capital Management Best Practices', '', '', '', '', '', '', '', '', '', '', '', '', ''] ] }; }
- src/index.ts:32-44 (registration)MCP server registration where excelTools (containing this tool) is spread into the complete allTools list used for tool listing and calling.const allTools = [ ...excelTools, ...financialTools, ...rentalTools, ...expenseTools, ...reportingTools, ...cashFlowTools, ...taxTools, ...analyticsTools, ...chartTools, ...complianceTools, ...propertyTools, ];