Skip to main content

MCP server for finvariant: deterministic financial-statement integrity checks for AI agents.

Project description

finvariant-mcp

CI PyPI License: MIT

An MCP server that exposes finvariant, the deterministic financial-statement integrity checker for Python, as a tool for AI agents: hand it income statement, balance sheet and cash flow data and it verifies that the balance sheet balances, the cash flow ties to the balance sheet, subtotals foot, and the three statements articulate.

Agents asked to build, read or summarise financial statements tend to produce the numbers themselves: a balance sheet that does not balance, a cash flow that does not tie, a retained-earnings figure that does not roll forward. Generated financial statements fail silently. The check belongs in a deterministic, versioned, validated library that the agent calls; the agent chooses what to verify and explains the verdict.

Tools

Tool Purpose
check_statements Verify statements against the accounting invariants; return a verdict, the failing checks with expected vs actual, counts, provenance and a plain-language summary.
describe_schema The canonical field names by statement, the sign convention, and the invariants checked; call it first to format the input.

Both tools are read-only and return finvariant's JSON-safe payload, so a client can present and auto-run them safely.

Installation

Run it with uv (no install needed):

uvx finvariant-mcp

or install from PyPI:

pip install finvariant-mcp

Configuration

Add it to your MCP client. For example:

{
  "mcpServers": {
    "finvariant": {
      "command": "uvx",
      "args": ["finvariant-mcp"]
    }
  }
}

If you installed with pip, use "command": "finvariant-mcp" with no args.

Example

An agent verifying a model it just built:

describe_schema()
  -> the field names, sign convention and the four invariant groups

check_statements(
  periods=["FY2024"],
  balance_sheet={"FY2024": {
    "total_assets": 540, "total_liabilities": 158, "total_equity": 380
  }},
)
  -> { "ok": false,
       "verdict": "FAIL - statements do not tie out",
       "findings": [ { "rule_id": "EQ.accounting_equation",
                       "expected": 538, "actual": 540, "difference": 2 } ],
       "summary": "finvariant audit - ...\n  Verdict: FAIL ..." }

Design

The server is a thin, stateless wrapper. All accounting logic lives in the finvariant library, which computes the invariants from their definitions and is validated against the published statements of several real companies. The server adds the tool schema, read-only annotations and an input-schema helper so an agent can format the input and act on the result.

Related

License

MIT. Written and maintained by Atakan Arikan, MSc Student at Tsinghua University and Politecnico di Milano.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finvariant_mcp-0.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finvariant_mcp-0.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file finvariant_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: finvariant_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for finvariant_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 85413c37d10bab9d9ebc308986b10f2d899ad57f8972c77f700de3d4f8b27b6d
MD5 9ee7354296aef6acfe05aca396a959b0
BLAKE2b-256 34944dc35ea5e6d457a59f90b3343d778a3e03e7ce5c6d597280acbe7b688030

See more details on using hashes here.

Provenance

The following attestation bundles were made for finvariant_mcp-0.1.0.tar.gz:

Publisher: release.yml on arikanatakan/finvariant-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file finvariant_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: finvariant_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for finvariant_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bab4181e87e4fd4a06dce011a2a094a0fdbb9d07c5242368c293def3b3622fe2
MD5 1c902d328027193efacbba935129b0b3
BLAKE2b-256 f3c6d08d709d4f4b7e5b309b0ed4813f8ae885d385376a7f63fa8b3cbc088778

See more details on using hashes here.

Provenance

The following attestation bundles were made for finvariant_mcp-0.1.0-py3-none-any.whl:

Publisher: release.yml on arikanatakan/finvariant-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page