Précis Finance MCP

io.github.precis-finance由 GitHub 帳號 precis-finance 發布v0.4.0更新於 Nov 5, 2026

Public read-only Précis Finance MCP demo with synthetic data; no account or credentials required.

發布方自己的服務:Finance Foundation

已驗證Streamable HTTP可網頁執行資料庫金融資料與分析

概覽

AI 產生的概覽

唯讀的 FP&A 連接器,讓助理查詢受治理的財務報表、指標拆分、明細列、圖表與 Excel 匯出。

可以做什麼
  • 了解資料模型:使用指南、情境、指標目錄、維度、階層搜尋、變體與可檢視資料來源
  • 執行財務報表(損益表、差異報告、管理層摘要),可輸出格式化表格或附 data_ref 的原始數據
  • 依專案、員工、成本中心或總帳科目等維度拆分指標
  • 查看數字背後的分列明細,並查詢資料載入歷程與擷取綁定
  • 以受限的 JavaScript 轉換與圖表規格,從 data_ref 產生圖表
  • 將快取結果匯出為 JSON 或 XLSX,並續期下載連結
適用情境
適合財務團隊希望 AI 用戶端依自身受治理的定義回答管理報表問題——損益表、預算與實際比較、差異下鑽——而不是讓代理臨時撰寫 SQL。公開示範可用合成資料快速試用。
執行需求
公開示範是遠端 streamable HTTP 端點,無需帳號、API 金鑰或登入。自架需要 Docker 與 Compose v2;整套服務自帶 ClickHouse、PostgreSQL 與 Valkey,也可指向自有的 ClickHouse 或 Databricks。本機試用以開發金鑰作為 bearer token;多使用者部署使用 OAuth 2.1,搭配 Keycloak 或外部 OIDC 提供者。
安裝前請注意
共用示範使用合成資料,並非你的財務資料。自架部署會暴露真實財務資料,須依自身安全模型與身分提供者維運。伺服器設計為唯讀,但匯出檔案與下載連結有效期很短,應視為敏感資料處理。開源核心不含寫回、規劃編製與工作區功能。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Précis Finance MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.precis-finance%2Fprecis-finance-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "pr-cis-finance": {
      "type": "http",
      "url": "https://mcp.precis.finance/mcp"
    }
  }
}

README

Précis Finance MCP — Financial reporting on Databricks and ClickHouse

[License: Elastic 2.0] [MCP] [CI] [Docs]

A read-only, self-hosted Model Context Protocol (MCP) server for financial reporting on Databricks or ClickHouse, built for Financial Planning & Analysis (FP&A) and management reporting. Give Claude, ChatGPT or another MCP-capable client access to governed metrics, financial statements, variance comparisons, row-level drill-down, charts and Excel exports from your own financial data. It is source-available under Elastic License 2.0 and forms the open core of Précis, the 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. Use your existing Databricks data model or start a local self-contained service with the bundled ClickHouse engine. Your own financials, not market data.

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.

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), PostgreSQL (platform and artifact state), and Valkey (temporary snapshots). A local trial runs with nothing else and loads a sample finance model.
  • Already run ClickHouse or Databricks? — optionally point the engine at your own instance instead of the bundled one; see ClickHouse data modes or Databricks setup.
  • 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 Précis Finance 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.

Try the public demo

Connect a remote MCP client to https://mcp.precis.finance/mcp to explore Précis Finance MCP without installing anything or creating an account. The shared server exposes read-only tools over a synthetic finance dataset; it does not contain your financial data. No API key or sign-in is required.

For Claude Code:

sh
claude mcp add --transport http precis-demo https://mcp.precis.finance/mcp

Then ask precis_orientation what the demo supports, or request a P&L with comparatives. See the public demo connection guide for other MCP clients and the limits of this shared instance.

Quickstart — single-user local trial

sh
export MCP_DEV_KEY=$(openssl rand -hex 32)export ARTIFACT_SIGNING_KEY=$(openssl rand -hex 32)docker compose -f deploy/docker-compose.local.yml up -d --builddocker 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 ClickHouse, Postgres and Valkey — 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:

sh
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 Précis Finance MCP up against their own warehouse — precis.finance or [email protected].

Multi-user deployment

deploy/docker-compose.yml runs the multi-user stack — the open server, PostgreSQL, ClickHouse (if using the bundled deployment), Valkey, artifact storage, and OAuth 2.1 + PKCE sign-in. Deployment is modular along independent axes:

  • Data — bundled ClickHouse (empty or with sample data), your own ClickHouse instance, or Databricks: ClickHouse data modes · Databricks setup
  • 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. For Databricks, see the Databricks schema contract. 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 — the agent requests defined metrics; Précis calculates and returns them using the agreed financial rules. Ask for utilisation by department and you get each department’s utilisation, with a total calculated using the same governed definition. Other agentic analytics approaches rely on agents writing SQL. When an agent writes SQL for each question, it must interpret how the measure should be calculated and aggregated, introducing opportunities for errors. Précis defines that logic once in the reporting engine and applies it consistently as the conversation develops. The agent retrieves the figures and narrates the results.
  • 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 — Précis Finance MCP is designed to expose governed read operations; you still deploy and operate it under your own security model. Disclosure policy: SECURITY.md.

FP&A and financial reporting on Databricks

Use your existing Databricks environment as the analytical backend for Précis Finance MCP. Keep your financial data and pipelines in place, without copying the inputs into another analytical database.

Map your data to reporting views and agree the metric and statement definitions; finance can then request a monthly P&L, compare actuals with budget or drill into the drivers of a variance through a compatible MCP client.

What Précis adds alongside Databricks Genie: consistent financial calculations and presentation. Your agreed aggregation rules, statement layouts, comparison columns and number formats carry through each report. The agent requests established financial operations from the reporting engine, reducing repeated query generation and the scope for calculation errors as the investigation develops.

Our FP&A case study: Précis and Databricks Genie compares five financial requests against the same Databricks data, showing the differences in calculation fidelity, financial presentation and waiting time. Précis completed responses in 16–35 seconds, compared with 73–108 seconds for Genie in that session. The study compares the full Précis workspace with the native Genie interface; Finance MCP uses the same reporting engine, while response times depend on the connected client and deployment.

Read the Databricks product update for the broader platform benefits, including approved planning writeback. Précis Finance MCP remains read-only.

Documentation

Full documentation: docs.precis.finance.

Précis Finance 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 Précis Finance 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 [email protected].

Support and services

Précis Finance 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 [email protected]. 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.

來源:README.md,提交 f536a5c

工具

20

precis_orientation

Call this first. Returns how to use Précis over this connector: the data model (scenarios, metrics, statements, dimensions), the reporting-tool variants, and how to build charts. Read it before composing queries.

無需輸入參數。

list_scenarios

List the available planning scenarios and their status.

無需輸入參數。

list_kpis

Browse the metric catalogue — metric keys, formats, domains, and the dimensions available per metric.

無需輸入參數。

list_inspection_sources

List the row-level sources available for inspection.

無需輸入參數。

get_inspection_schema

Get the column schema for an inspection source.

輸入參數source_key必填

inspect_rows

Inspect the row-level detail behind a figure, from an enabled inspection source. Returns a capped sample for reasoning plus a grid for the user.

輸入參數limitcolumnsfiltersperiod_endsource_key必填scenario_id必填period_start

run_statement

Run a financial statement — P&L, variance report, or executive summary. Rows are statement lines (Revenue, Direct Cost, Gross Margin, …); columns are scenarios. Supports an optional dimension breakdown (e.g. by period or cost centre). For an unspecified general P&L, prefer `full_pnl` when it is listed by precis_orientation. Give every scenario a concise, user-facing `alias` such as Actuals, Budget, Variance, or Var %. Returns a formatted table with structured data. The widget already displays this table to the user. Add useful interpretation; do not reproduce the table or restate all its rows in Markdown unless the user explicitly requests it or the widget is unavailable.

輸入參數scalefiltersdecimalsscenariosstatementdimensionsperiod_endperiod_start

run_statement_data

Run a financial statement — P&L, variance report, or executive summary. Rows are statement lines (Revenue, Direct Cost, Gross Margin, …); columns are scenarios. Supports an optional dimension breakdown (e.g. by period or cost centre). For an unspecified general P&L, prefer `full_pnl` when it is listed by precis_orientation. Give every scenario a concise, user-facing `alias` such as Actuals, Budget, Variance, or Var %. Returns the raw figures (and a `data_ref`) for your own analysis or to build a chart — pass `[data_ref]` as `data_refs` to eval_chart_transform. Does not show the user a table.

輸入參數scalefiltersdecimalsscenariosstatementdimensionsperiod_endperiod_start

run_metric

Break one or more metrics down by a dimension — revenue by project, utilisation by employee, headcount trends, GL account drill-down. Rows are the dimension; columns are metrics × scenarios. Pass `scenarios` explicitly and give every scenario a concise, user-facing `alias` such as Actuals, Budget, Variance, or Var %. Returns a formatted table with structured data. The widget already displays this table to the user. Add useful interpretation; do not reproduce the table or restate all its rows in Markdown unless the user explicitly requests it or the widget is unavailable.

輸入參數scalefiltersmetrics必填decimalsscenariosdimensionsperiod_endperiod_start

run_metric_data

Break one or more metrics down by a dimension — revenue by project, utilisation by employee, headcount trends, GL account drill-down. Rows are the dimension; columns are metrics × scenarios. Pass `scenarios` explicitly and give every scenario a concise, user-facing `alias` such as Actuals, Budget, Variance, or Var %. Returns the raw figures (and a `data_ref`) for your own analysis or to build a chart — pass `[data_ref]` as `data_refs` to eval_chart_transform. Does not show the user a table.

輸入參數scalefiltersmetrics必填decimalsscenariosdimensionsperiod_endperiod_start

search_hierarchy

Search the dimension hierarchies (cost centres, accounts, …) to find valid codes and ids before composing a query.

輸入參數limitquerydimension

list_dimensions

List the dimensions defined in the model — keys, labels, and kinds (leaf / derived / ragged hierarchy). Catalogue metadata only; use search_hierarchy to list a dimension's members.

無需輸入參數。

list_variants

List the what-if variants of a scenario.

輸入參數scenario_id必填

eval_chart_transform

Create a chart from data_refs (an array of snapshot IDs), a bounded JavaScript function, and chart_spec. Supports line, bar, area, waterfall, scatter, horizontal_bar, forecast_line, cohort_heatmap and sparkline_row. Query first and inspect rows; the transform takes one result per ref and returns flat rows. Cached values are already scaled: scale 3 means non-exempt metrics are in thousands; scale 0 means units. Percentages (75 means 75%), FTEs and other scale-exempt metrics retain their units. Do not scale again; y_scale is forced to 0. For multiple sources, inspect each scale and format; re-query same-unit series at a common scale, and use separately labelled axes for different units (line/bar/area) or separate charts. Conflicting nonempty caption scale labels are omitted; unlabelled sources leave other labels intact. Set axis unit labels explicitly.

輸入參數data_refs必填chart_spec必填transform_code必填

export_dataset

Export a previously returned data_ref to json or xlsx without rerunning the query. Use this for standard Excel exports of reports already shown, rather than rebuilding their JSON with Python. Financial XLSX uses shared server formatting and retains source/region metadata for add-in conversion. Returns a temporary file/download link; an expired snapshot requires a fresh authorized query, whose values may change.

輸入參數format必填data_ref必填

get_file_download

Renew a download capability for an available, owned artifact.

輸入參數file_id必填

list_load_history

List data-load attempts from the ingestion audit trail — when each dataset landed, with what status. Answers "is April in yet?" / "when was this data last loaded?".

輸入參數limitperiodstatusbinding_iddataset_id

get_load_status

Fetch one data load's full detail by load_id — timestamps, status, rows landed, and any error message.

輸入參數load_id必填

list_bindings

List the configured data feeds (ingestion bindings) with their schedule — which datasets load, from where, how often.

輸入參數targetsource_id

get_binding

Fetch one data feed's full configuration: source, target dataset, schedule, and extract parameters.

輸入參數binding_id必填

版本歷史

4
  1. v0.4.0最新Nov 5, 2026
  2. v0.3.0Oct 9, 2026
  3. v0.2.6Sep 24, 2026
  4. v0.2.5Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Finance 整合