# Précis Finance MCP

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

- name: io.github.precis-finance/precis-finance-mcp
- version: 0.3.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 80/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.precis-finance%2Fprecis-finance-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.precis-finance%2Fprecis-finance-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

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


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-12d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 80/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 19 of 20 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_inspection_schema (idempotentHint); list_kpis (idempotentHint); inspect_rows (idempotentHint); …
- pass `tools.token_cost`: about 3,302 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 19 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 20, about 3,302 tokens to load them all
- tool set hash: 64c306c2c51ecc8a57bbdafc16266fba
- tools last changed: 2026-10-09T17:57:08.212Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.precis-finance/precis-finance-mcp.svg)](https://protogrid.dev/servers/io.github.precis-finance/precis-finance-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-09 `get_binding` changed (annotations)
- 2026-10-09 `list_bindings` changed (annotations)
- 2026-10-09 `get_load_status` changed (annotations)
- 2026-10-09 `list_load_history` changed (annotations)
- 2026-10-09 `get_file_download` added
  - Renew a download capability for an available, owned artifact.
- 2026-10-09 `export_dataset` added
  - Export a cached data_ref to json or xlsx without rerunning the query; returns a temporary file and download link.
- 2026-10-09 `eval_chart_transform` added
  - 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.
- 2026-10-09 `list_variants` changed (annotations)
- 2026-10-09 `list_dimensions` changed (annotations)
- 2026-10-09 `search_hierarchy` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/io.github.precis-finance%2Fprecis-finance-mcp/changes

## Remotes

- https://mcp.precis.finance/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (20)

- `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.
- `export_dataset`: Export a cached data_ref to json or xlsx without rerunning the query; returns a temporary file and download link.
- `get_binding`: Fetch one data feed's full configuration: source, target dataset, schedule, and extract parameters.
- `get_file_download`: Renew a download capability for an available, owned artifact.
- `get_inspection_schema`: Get the column schema for an inspection source.
- `get_load_status`: Fetch one data load's full detail by load_id — timestamps, status, rows landed, and any error message.
- `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.
- `list_bindings`: List the configured data feeds (ingestion bindings) with their schedule — which datasets load, from where, how often.
- `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_inspection_sources`: List the row-level sources available for inspection.
- `list_kpis`: Browse the metric catalogue — metric keys, formats, domains, and the dimensions available per metric.
- `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?".
- `list_scenarios`: List the available planning scenarios and their status.
- `list_variants`: List the what-if variants of a scenario.
- `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.
- `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.
- `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.
- `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.
- `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.
- `search_hierarchy`: Search the dimension hierarchies (cost centres, accounts, …) to find valid codes and ids before composing a query.
