FinDash API and MCP server
FinDash's profit and loss arithmetic, for developers and AI agents: send a small business's monthly revenue and costs, get back costs in four groups, gross and net profit, net margin and budget used. Free, with no account or key, and nothing you send is stored.
The FinDash API
Base address https://findash.tech/api/v1. Requests and responses are JSON. No authentication:
every endpoint is open, and browsers may call it from any site (CORS). The
OpenAPI description lists every field.
| Method | Address | What it does |
|---|---|---|
| POST | /api/v1/analyze | Monthly figures in, a profit and loss summary out |
| GET | /api/v1/template | The spreadsheet template's columns |
| GET | /api/v1/glossary | What each figure means, in plain words |
| GET | /api/v1 | What the API offers, and where it is described |
Analyse monthly figures
Send each month's revenue, its spending budget (the most planned to be spent, not a sales target) and its
costs, by line. The fourteen cost lines are costOfGoodsSold, labor,
employeeMeals and payrollTax (direct costs); packaging,
creditCardFees, marketing and hardware (operating costs);
utilities and maintenance (variable overhead); rent,
insurance, businessLicense and telephone (fixed overhead). Leave out a
line with nothing in it, and put a cost with no line of its own in the closest one.
curl -sS https://findash.tech/api/v1/analyze \
-H 'Content-Type: application/json' \
-d '{"currency": "USD", "months": [{"month": "July", "year": 2026, "revenue": 72000, "budget": 66000,
"costs": {"costOfGoodsSold": 26000, "labor": 12000, "rent": 6000, "utilities": 2800, "marketing": 2200}}]}'
The answer has every month with its fourteen cost lines (zero where none were sent), and a total across the months:
{
"currency": "USD",
"months": [{
"label": "July 2026", "month": 7, "year": 2026,
"revenue": 72000, "budget": 66000,
"costs": { "costOfGoodsSold": 26000, "labor": 12000, "rent": 6000, ... },
"costGroups": { "directCosts": 38000, "operatingCosts": 2200, "variableOverhead": 2800, "fixedOverhead": 6000 },
"totalCosts": 49000, "grossProfit": 34000, "netProfit": 23000,
"netMarginPercent": 31.94, "budgetUsedPercent": 74.24, "overBudgetBy": 0
}],
"total": { "label": "July 2026", "months": 1, "revenue": 72000, "netProfit": 23000, ... },
"needsAttention": []
}
needsAttention lists the months that made a loss or went over budget, the two things the
dashboard puts first. The arithmetic is the dashboard's own, so the figures match what an owner sees on
the dashboard.
Errors
Every error is JSON, with an HTTP status to match: {"error": {"code", "message", "hint",
"docs"}}, and for figures that can't be read, a problems list naming each field to fix,
such as months[0].costs.wages.
| Status | Code | When |
|---|---|---|
| 400 | invalid_json | The body isn't a JSON object |
| 400 | invalid_figures | A month or amount can't be read; see problems |
| 404 | not_found | No endpoint at that address |
| 405 | method_not_allowed | Wrong method; the Allow header says which |
| 413 | too_large | More than 120 months, or a body over 200 KB |
| 500 | internal_error | Something went wrong on FinDash's side |
Limits and fair use
- Up to 120 months per request.
- Figures are worked out and sent back, never stored or logged.
- The API doesn't read invoice photos, write advice or save figures to an account: those stay on the site, for logged-in owners. The terms apply.
- There is no OAuth: nothing in the API belongs to an account, so there is nothing to authorise.
MCP servers
Two Model Context Protocol servers, over Streamable HTTP, with no authentication:
https://findash.tech/api/mcp- The product. Tools:
analyze_monthly_figures(the same job as the API),get_spreadsheet_templateandexplain_term. https://findash.tech/api/mcp/docs- The documentation. Tools:
list_pages,read_pageandsearch_docs, over every page on this site.
To add the product server to Claude Code, for example:
claude mcp add --transport http findash https://findash.tech/api/mcp
Each server has an MCP Server Card at its address plus /server-card, and both are listed in
the AI Catalog.
Tools on the dashboard page (WebMCP)
In a browser that supports WebMCP, the dashboard offers agents four tools of its
own: load_monthly_figures shows an owner's figures on the page (kept in their browser, as a
spreadsheet would be), read_dashboard reads back what the page shows,
show_month picks the month and period on screen, and download_template saves
the spreadsheet template.
Reading the site
- llms.txt: what FinDash is, when to use it and every page, with smaller indexes for the help, the dashboard and this page.
- Every page as Markdown: ask with
Accept: text/markdown, or add.mdto its address (/developers.md; the home page is /index.md).?mode=agenton any page answers with llms.txt. - The agent skill for working with FinDash, the API catalog (RFC 9727), the sitemap and the site's structured data as a schema feed.
Source code
FinDash's code is public on GitHub, with an AGENTS.md for coding agents and the agent skill in docs/skills/findash. Questions: support.findash@findash.tech.