Skip to main content
Glama
precis-finance

Précis-MCP

Official

precis-mcp

License: Elastic 2.0 MCP CI Docs

A read-only, self-hosted MCP server for FP&A and management reporting: governed metrics, financial statements, and row-level drill-down over a SQL semantic layer — your own warehouse, not market data. The open core of Précis, the agentic Finance Intelligence Platform.

You describe your business metrics once — KPIs, hierarchies, and financial-statement layouts in a YAML catalogue over a semantic layer of plain SQL views, versioned in git — and any MCP-capable client gets consistent, defensible numbers. The semantic views are plain SQL in your ClickHouse, so your existing BI tools can query the same views directly. This repository is complete and self-hostable — the metric engine, semantic layer and catalogue, ingestion, identity, and the MCP transport — and depends on nothing outside it.

Use this if

  • You run or support a finance function and want AI clients — Claude, ChatGPT, or any MCP-capable client — answering questions and pulling management reporting from your own numbers.

  • You need governed metrics — one agreed definition of gross margin, utilisation, or revenue by business unit — not an agent querying raw rows in the general ledger or inventing its own definitions.

  • You want it self-hosted, on infrastructure you already operate and under a security model you control — not another cloud contract.

  • You need every answer traceable: read-only by construction, no figure generated by the model, every number aggregated from semantic views you can read.

Related MCP server: bonnard

Requirements

  • Docker — Engine + Compose v2. Everything runs in containers; there is nothing else to install.

  • No warehouse to provision — the stack bundles ClickHouse (the engine's analytical store) and PostgreSQL (platform state — users, sessions, audit). A local trial runs with nothing else and loads a sample finance model.

  • Already run ClickHouse? — optionally point the engine at your own instance instead of the bundled one; see data modes.

  • An MCP-capable client — Claude (claude.ai and Desktop connectors, against a deployed instance), Claude Code, ChatGPT, or any MCP client.

  • Optional Excel access — the multi-user image also hosts the Précis Excel add-in at /excel; enable its OAuth client when you want live read-only workbook functions.

What precis-mcp looks like

Claude, connected to Précis over MCP, rendering a governed P&L with comparatives and then drilling Revenue down to cost-centre level — sample data

Every figure aggregates from the semantic views — account, cost centre, period, scenario — and the measures generic metric layers can't express (a utilisation denominator averaged across periods, re-aggregated by quarter or business unit, with subtotals in the layout) are first-class catalogue definitions.

Quickstart — single-user local trial

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

One stack — the server plus a bundled ClickHouse and Postgres — a shared dev key, bound to 127.0.0.1. Point any MCP client at http://127.0.0.1:8768/mcp with the dev key as bearer token. For example, with Claude Code:

claude mcp add --transport http precis http://127.0.0.1:8768/mcp \
  --header "Authorization: Bearer $MCP_DEV_KEY"

Then ask a finance-specific question to prove this is not a generic SQL MCP: "Show the P&L for FY2025 with comparatives." · "Drill revenue down by cost centre." · "Show utilisation by month for the Digital Transformation team."

Full walkthrough, including the demo data and bringing your own model: docs/getting-started/quickstart.md.

Rather do this on a call? We pair with early adopters to stand precis-mcp up against their own warehouse — precis.finance or hello@precis.finance.

Multi-user deployment

deploy/docker-compose.yml runs the multi-user stack — the open server, PostgreSQL, ClickHouse, and OAuth 2.1 + PKCE sign-in. Deployment is modular along independent axes:

  • Data — bundled ClickHouse (empty or with sample data) or your own: docs/deployment/clickhouse-data-modes.md

  • Identity — local dev key, the bundled Keycloak (optionally federated to your IdP), or a direct external OIDC provider (Auth0 / Okta / Entra / Ping): docs/deployment/oauth-keycloak.md, docs/deployment/external-idp-recipes.md

  • Ingress — the bundled Caddy proxy (bundled-proxy profile, on by default) terminates TLS with automatic Let's Encrypt certificates from nothing but PRECIS_DOMAIN. The app itself is proxy-agnostic: drop the profile to front it with an ingress you already operate (reference nginx vhost in deploy/nginx/, host helper scripts/install-precis-mcp.sh --nginx)

  • Backups — additive backup compose profile: scheduled bundles (Postgres dump + ClickHouse backup + instance config) to a local volume or S3, with restore and drill commands: docs/operations/backups.md

  • Excel add-in — optional hosted workbook functions served from the same instance at /excel; enable with the bundled Keycloak client or a public client in your external IdP: docs/excel/

scripts/deploy-mcp.sh --data-mode ... --auth-mode ... is the friendly front door over the Compose profiles. Every knob is an environment variable: docs/configuration/environment-variables.md.

Configure your data model

Your model lives in an instance/ directory — metric catalogue, semantic SQL views, ingestion bindings — and the bundled demo instance shows the shape. Start at docs/configuration/catalogue-and-semantic.md, then docs/configuration/ingestion.md and docs/operations/onboarding-ingestion.md to load your data. The developer guide for adding server tools is docs/development/adding-read-tools.md.

Security and read-only posture

Start with the mechanisms, not the promise.

  • Read-only by construction — the server retrieves; it never writes to or changes your source. There is no write path back.

  • No figure is generated by the model — tools return numbers aggregated from source dimensions (account, cost centre, period, scenario), or report that the data isn't there. The client composes the question and narrates the answer; it never invents a figure.

  • Traceable to source — every number traces from response → semantic view → warehouse. The semantic views are plain SQL you can read; the catalogue is versioned in git.

  • Your own warehouse, not market data — it runs in your environment, against your warehouse, under your own access controls.

  • Identity — a local dev key, the bundled Keycloak (optionally federated to your IdP), or a direct external OIDC provider (Auth0 / Okta / Entra / Ping).

  • Operator responsibility — precis-mcp is designed to expose governed read operations; you still deploy and operate it under your own security model. Disclosure policy: SECURITY.md.

Documentation

Full documentation: docs.precis.finance.

precis-mcp vs Précis

The deployment and data model you build here are the foundation the full Précis platform runs on. Précis is currently pre-General Availability and adds a licensed agentic workspace over this same engine and data model. Moving from the open core to Précis is workflow configuration and adoption — not a second data-integration project. Précis prepares; the finance professional decides.

What ships — and what doesn't

Ships in precis-mcp (Elastic License 2.0): the MCP server and transport · metric engine · financial-statement layouts · semantic SQL view pattern · YAML metric catalogue · sample finance model · ingestion path · hosted read-only Excel add-in · ClickHouse analytical store · PostgreSQL platform state · local dev-key mode · multi-user OAuth 2.1 mode · Docker Compose deployment · backup & restore profile · configuration and deployment docs.

Lives in Précis, not in this repo: the workspace UI · the conversational agent · plan write-back · scenario commit workflows · scheduled Dispatch briefings · report / management-pack workflow · Excel write-back / round-trip · commercial support (unless separately agreed).

Talk about Précis — the full platform and design-partner programme: precis.finance or hello@precis.finance.

Support and services

precis-mcp is built to be self-serve, and the documentation aims to be enough. If you'd like help beyond it — configuring your data model, a guided deployment, ongoing support, or a demo environment to evaluate against realistic data — book a setup session at precis.finance or write to hello@precis.finance. The same address reaches the team behind the full Précis platform.

Contributing

This repository is a one-way mirror of the Précis monorepo: main advances by sync commits, and pull requests are applied internally with your authorship and DCO sign-off preserved, then published in the next sync. See CONTRIBUTING.md.

License

Elastic License 2.0 — source-available. Free to use, modify, self-host (including commercially), and redistribute; you may not offer it to third parties as a hosted or managed service.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/precis-finance/precis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server