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 集成