Précis Finance MCP · the open core of Précis
Generic MCP servers expose data. Finance needs governed definitions.
We're releasing Précis Finance MCP: a source-available, self-hosted, read-only MCP server for FP&A and management reporting. It lets Claude, ChatGPT, and any MCP-capable client answer from your approved finance definitions, on your own warehouse. Not market data, and not a generic database connector.
MCP made one thing trivial: point an AI client at your data and let it query. For most domains that is the whole win. For finance it is where the problem starts.
Hand an agent a generic database connector and it sees rows and schemas. It does not see what your finance team means by revenue, gross margin, utilisation, or revenue by business unit. So it infers business meaning that should be explicit, and it returns a number nobody can trace back to source. Finance can sign off on neither.
Précis Finance MCP closes that gap. It is a read-only MCP server that serves your definitions (metrics, statement layouts, drill-downs) from a versioned catalogue over semantic SQL views, on a warehouse you run yourself. It is source-available under Elastic License 2.0.
What MCP fixed, and what it left open
MCP solved the integration tax. One protocol, and any compliant client can reach any compliant server. The connector ecosystem that followed, across databases, warehouses and SaaS APIs, is the proof.
But a connector exposes a surface, not a meaning. A Postgres MCP server can run any query; it has no opinion on which query is the right one. That is correct for a database tool and wrong for finance, where the whole job is the layer of agreed meaning that sits above the tables:
- Revenue is recognised, not billed, and the rule differs by contract type.
- Utilisation is billable hours over capacity, and two teams compute capacity two ways.
- A management P&L is a specific layout over a specific cost-centre hierarchy, not
SELECT * FROM gl.
Expose the tables and you have asked a language model to reconstruct, on every query, the definitions your finance team spent years agreeing. It will guess. Some days it guesses differently than it did the day before.
Management information is defined, not stored
This is the shape of the domain, not a tooling preference. The figure a CFO acts on is the output of a chain of agreed rules (recognition, allocation, hierarchy, period, scenario) applied the same way every time it is asked.
So the requirement for an AI client over finance data is narrow and strict:
- One definition per metric, served the same way on every call.
- Read-only. The model retrieves. It never writes to source, and it never invents a number. It returns figures aggregated from real dimensions, or it tells you the data is not there.
- Traceable. Every figure resolves back through account, cost centre, period and scenario to source.
A generic connector satisfies none of these, because it has no model of your definitions to serve.
What Précis Finance MCP is
Précis Finance MCP is that read layer. In one line, it is a semantic layer built for finance, served over MCP: metrics, financial statements, drill-down, trends and comparisons, all from a YAML catalogue over plain SQL views you can read, versioned in git, running against your own ClickHouse.
What an MCP client gets:
- Metrics: KPIs defined once, served consistently.
- Statements: P&L, balance sheet, cash flow and management layouts, from catalogue definitions.
- Drill-down: the row-level detail behind a figure, within the views and permissions you expose.
- Trends and comparisons: period, scenario, cost centre, business unit.
Then the posture that makes finance willing to try it. It is read-only by construction and self-hosted, with identity through a local dev key, the bundled Keycloak, or your own OIDC (Auth0, Okta, Entra, Ping). No figure is generated by the model. You deploy and operate it under your own security model, and the repo’s SECURITY.md states the mechanisms rather than the adjectives.
The claim is easy to check. The definitions are explicit SQL and versioned YAML. Read them.
Run it locally in three commands
The fastest way to see it is not a generic SQL MCP is to ask it a finance question.
export MCP_DEV_KEY=$(openssl rand -hex 32)
docker compose -f deploy/docker-compose.local.yml up -d --build
docker compose -f deploy/docker-compose.local.yml exec precis-mcp \
python -m precis_mcp.sample_data # populate the demo model
Point any MCP client at http://127.0.0.1:8768/mcp with the dev key as a bearer token, then ask:
- “Show the P&L for FY2025 with comparatives.”
- “Drill revenue down by cost centre.”
- “Show utilisation by month for the Digital Transformation team.”
The answers come from the governed model, the same definition every client sees, not from generated text. The full walkthrough is in the docs.
What ships, and what doesn’t
Here is the boundary, because it protects the paid product and respects your time.
Ships (open core, ELv2): the MCP server and transport, the metric engine, financial-statement layouts, the semantic SQL view pattern, the YAML catalogue, a sample finance model, the ingestion path, ClickHouse and Postgres, local dev-key and multi-user OAuth modes, Docker Compose deployment, and the Excel add-in (PRECIS.* custom functions).
Doesn’t ship (lives in Précis): the workspace UI, the conversational agent, plan write-back, scenario-commit workflows, scheduled Dispatch briefings, the report and pack builder, Excel round-trip, and commercial support unless agreed.
The same core, plus the workflow
Précis Finance MCP is the open read engine at the core of Précis. That is the same engine, not a tagline added later. The deployment and data model you stand up here are the foundation the full platform runs on. The licensed workspace adds a conversational agent and UI, planning with user-approved write-back, scenarios, reports and management packs, scheduled briefings, and Excel round-trip, over the core you already configured.
It is worth being precise about that conversion, because you will see through anything else. It is workflow configuration and adoption, not a second data-integration project. The warehouse, semantic model, ingestion and identity are already standing. This is not a single switch, but it is a materially smaller and lower-risk step than a greenfield build. Précis prepares; the finance professional decides.
Start with the open core
If you have put AI clients on finance data, you have probably felt the gap between “it can query” and “finance will accept the answer.” That gap is the reason Précis Finance MCP exists.
- View on GitHub and run the quickstart.
- Read the /mcp page for the full picture.
- Book a setup session for help standing it up against your own warehouse.
Source-available under Elastic License 2.0: free to use, modify, and self-host commercially. You just cannot offer it to others as a hosted service.