Serveur MCP

Précis Finance MCP

io.github.precis-finance/precis-finance-mcp

Ce que fait ce MCP

Queries synthetic financial data through metrics, dimensions, scenarios, financial statements, planning variants, data-load histories, and row-level inspections.

get_binding
Fetch one data feed's full configuration: source, target dataset, schedule, and extract parameters.
Schéma d’entrée
{'type': 'object', 'title': 'get_binding', 'required': ['binding_id'], 'properties': {'binding_id': {'type': 'string', 'title': 'Binding Id'}}, 'additionalProperties': False}
get_inspection_schema
Get the column schema for an inspection source.
Schéma d’entrée
{'type': 'object', 'title': 'get_inspection_schema', 'required': ['source_key'], 'properties': {'source_key': {'type': 'string', 'title': 'Source Key'}}, 'additionalProperties': False}
get_load_status
Fetch one data load's full detail by load_id — timestamps, status, rows landed, and any error message.
Schéma d’entrée
{'type': 'object', 'title': 'get_load_status', 'required': ['load_id'], 'properties': {'load_id': {'type': 'string', 'title': 'Load Id'}}, 'additionalProperties': False}
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.
Schéma d’entrée
{'type': 'object', 'title': 'inspect_rows', 'required': ['source_key', 'scenario_id'], 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'columns': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Columns', 'default': None}, 'filters': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Filters', 'default': None}, 'filename': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Filename', 'default': None}, 'period_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period End', 'default': None}, 'sheet_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sheet Name', 'default': None}, 'source_key': {'type': 'string', 'title': 'Source Key'}, 'scenario_id': {'type': 'string', 'title': 'Scenario Id'}, 'period_start': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period Start', 'default': None}}, 'additionalProperties': False}
list_bindings
List the configured data feeds (ingestion bindings) with their schedule — which datasets load, from where, how often.
Schéma d’entrée
{'type': 'object', 'title': 'list_bindings', 'properties': {'target': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target', 'default': None}, 'source_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Id', 'default': None}}, 'additionalProperties': False}
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.
Schéma d’entrée
{'type': 'object', 'title': 'list_dimensions', 'properties': {}, 'additionalProperties': False}
list_inspection_sources
List the row-level sources available for inspection.
Schéma d’entrée
{'type': 'object', 'title': 'list_inspection_sources', 'properties': {}, 'additionalProperties': False}
list_kpis
Browse the metric catalogue — metric keys, formats, domains, and the dimensions available per metric.
Schéma d’entrée
{'type': 'object', 'title': 'list_kpis', 'properties': {}, 'additionalProperties': False}
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?".
Schéma d’entrée
{'type': 'object', 'title': 'list_load_history', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 50}, 'period': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'binding_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Binding Id', 'default': None}, 'dataset_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dataset Id', 'default': None}}, 'additionalProperties': False}
list_scenarios
List the available planning scenarios and their status.
Schéma d’entrée
{'type': 'object', 'title': 'list_scenarios', 'properties': {}, 'additionalProperties': False}
list_variants
List the what-if variants of a scenario.
Schéma d’entrée
{'type': 'object', 'title': 'list_variants', 'required': ['scenario_id'], 'properties': {'scenario_id': {'type': 'string', 'title': 'Scenario Id'}}, 'additionalProperties': False}
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.
Schéma d’entrée
{'type': 'object', 'properties': {}}
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 %. Shows the user a formatted table.
Schéma d’entrée
{'type': 'object', 'title': 'run_metric', 'required': ['metrics'], 'properties': {'scale': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Scale', 'default': None}, 'layout': {'type': 'string', 'title': 'Layout', 'default': 'report'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target', 'default': None}, 'filters': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Filters', 'default': None}, 'metrics': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Metrics'}, 'decimals': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Decimals', 'default': None}, 'filename': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Filename', 'default': None}, 'overwrite': {'type': 'boolean', 'title': 'Overwrite', 'default': False}, 'scenarios': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Scenarios', 'default': None}, 'dimensions': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Dimensions', 'default': None}, 'period_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period End', 'default': None}, 'sheet_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sheet Name', 'default': None}, 'period_start': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period Start', 'default': None}}, 'additionalProperties': False}
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 the `data_ref` to eval_chart_transform. Does not show the user a table.
Schéma d’entrée
{'type': 'object', 'title': 'run_metric', 'required': ['metrics'], 'properties': {'scale': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Scale', 'default': None}, 'layout': {'type': 'string', 'title': 'Layout', 'default': 'report'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target', 'default': None}, 'filters': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Filters', 'default': None}, 'metrics': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Metrics'}, 'decimals': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Decimals', 'default': None}, 'filename': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Filename', 'default': None}, 'overwrite': {'type': 'boolean', 'title': 'Overwrite', 'default': False}, 'scenarios': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Scenarios', 'default': None}, 'dimensions': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Dimensions', 'default': None}, 'period_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period End', 'default': None}, 'sheet_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sheet Name', 'default': None}, 'period_start': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period Start', 'default': None}}, 'additionalProperties': False}
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 %. Shows the user a formatted table.
Schéma d’entrée
{'type': 'object', 'title': 'run_statement', 'properties': {'scale': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Scale', 'default': None}, 'layout': {'type': 'string', 'title': 'Layout', 'default': 'report'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target', 'default': None}, 'filters': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Filters', 'default': None}, 'decimals': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Decimals', 'default': None}, 'filename': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Filename', 'default': None}, 'overwrite': {'type': 'boolean', 'title': 'Overwrite', 'default': False}, 'scenarios': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Scenarios', 'default': None}, 'statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Statement', 'default': None}, 'dimensions': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Dimensions', 'default': None}, 'period_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period End', 'default': None}, 'sheet_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sheet Name', 'default': None}, 'period_start': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period Start', 'default': None}}, 'additionalProperties': False}
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 the `data_ref` to eval_chart_transform. Does not show the user a table.
Schéma d’entrée
{'type': 'object', 'title': 'run_statement', 'properties': {'scale': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Scale', 'default': None}, 'layout': {'type': 'string', 'title': 'Layout', 'default': 'report'}, 'target': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target', 'default': None}, 'filters': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Filters', 'default': None}, 'decimals': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Decimals', 'default': None}, 'filename': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Filename', 'default': None}, 'overwrite': {'type': 'boolean', 'title': 'Overwrite', 'default': False}, 'scenarios': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Scenarios', 'default': None}, 'statement': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Statement', 'default': None}, 'dimensions': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Dimensions', 'default': None}, 'period_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period End', 'default': None}, 'sheet_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sheet Name', 'default': None}, 'period_start': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Period Start', 'default': None}}, 'additionalProperties': False}
search_hierarchy
Search the dimension hierarchies (cost centres, accounts, …) to find valid codes and ids before composing a query.
Schéma d’entrée
{'type': 'object', 'title': 'search_hierarchy', 'properties': {'limit': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Limit', 'default': None}, 'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Query', 'default': None}, 'dimension': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dimension', 'default': None}}, 'additionalProperties': False}
Ajouté
get_binding
17 September 2026 12:49
Ajouté
list_bindings
17 September 2026 12:49
Ajouté
get_load_status
17 September 2026 12:49
Ajouté
list_load_history
17 September 2026 12:49
Ajouté
list_variants
17 September 2026 12:49
Ajouté
list_dimensions
17 September 2026 12:49
Ajouté
search_hierarchy
17 September 2026 12:49
Ajouté
run_metric_data
17 September 2026 12:49
Ajouté
run_metric
17 September 2026 12:49
Ajouté
run_statement_data
17 September 2026 12:49
Ajouté
run_statement
17 September 2026 12:49
Ajouté
inspect_rows
17 September 2026 12:49
Ajouté
get_inspection_schema
17 September 2026 12:49
Ajouté
list_inspection_sources
17 September 2026 12:49
Ajouté
list_kpis
17 September 2026 12:49
Ajouté
list_scenarios
17 September 2026 12:49
Ajouté
precis_orientation
17 September 2026 12:49