Skip to main content
Glama
Alpha-Park

genpark-complex-financial-formula-audit-validator-skill

Official

genpark-financial-audit

Arithmetic consistency checks for supplied financial statement data.

This checks supplied numbers and a simplified income-statement model. It does not extract PDFs, verify source authenticity, check accounting compliance, or provide an audit opinion. Monetary values must use consistent units; tolerance defaults to 0.5 of those units.

Install from the GitHub release

Python 3.9 or newer. The library and stdio MCP server have no runtime dependencies.

python -m pip install https://github.com/Alpha-Park/genpark-complex-financial-formula-audit-validator-skill/releases/download/v1.0.1/genpark_financial_audit-1.0.1-py3-none-any.whl

PyPI publication is pending account setup. The intended PyPI project is genpark-financial-audit; do not assume pip install genpark-financial-audit is available until the project is published.

Related MCP server: genpark-hybrid-bounding-box-ocr-table-reconstructor-skill

Python usage

from genpark_financial_audit import FinancialFormulaAuditValidator
client = FinancialFormulaAuditValidator()
print(client.run_benchmark_financial_audit())

MCP stdio configuration

After installing the wheel, configure your MCP client with the installed command:

{
  "mcpServers": {
    "genpark-financial-audit": {
      "command": "genpark-financial-audit",
      "args": []
    }
  }
}

If the command is not on PATH, use its absolute path or python -m genpark_financial_audit with the same interpreter where you installed the wheel. The GitHub release also contains a .mcpb bundle for clients supporting desktop extensions. That bundle requires a Python 3.9+ interpreter on PATH; it bundles the server source.

Available tools: audit_balance_sheet, audit_income_statement, audit_cross_footing, run_benchmark_financial_audit. tools/list returns required arguments and JSON schemas. Each MCP process holds its own state. Benchmark tools use isolated instances.

Development

python -m unittest discover -s tests
python -m pip install mcp
python tests/check_mcp.py
python -m pip install build twine
python -m build
python -m twine check dist/*

python mcp_server.py --test runs the deterministic example; it is not a protocol conformance test. The MCP client check exercises initialize, tools/list, tools/call and ping over stdio.

Distribution

GitHub source and release artifacts are the primary distribution until PyPI is configured. Registry submissions are tracked separately; a manifest is not proof of registry acceptance. See PUBLISHING.md for the repeatable PyPI workflow.

MIT license. Maintained by GenPark.

Available Tools

4 tools
audit_balance_sheetD

audit balance sheet

ParametersJSON Schema
NameRequiredDescriptionDefault
balance_sheet_dictYes

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, and it discloses nothing: not whether the check is a read-only validation, what rules are applied, what errors or flags result, or what happens with malformed input. An agent cannot predict behavior at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The three-word phrase is terse but this is under-specification rather than conciseness; there is no front-loaded purpose or scope to anchor the call. Brevity here costs rather than earns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a nested-object parameter with zero schema coverage, no annotations, and no output schema, the description needs to explain input shape and audit behavior and does none of it. It is wholly inadequate for even the minimum viable call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter is a nested object keyed by string with numeric values, which is entirely undocumented. The description adds no meaning about expected keys (e.g., account names, amounts) or structure, leaving the agent unable to construct a valid call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

'Audit balance sheet' is a bare restatement of the tool name with no elaboration. It identifies a verb and resource, but gives no hint of what an 'audit' checks, what the balance_sheet_dict should contain, or how it differs from siblings like audit_income_statement or audit_cross_footing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this tool versus audit_income_statement, audit_cross_footing, or run_benchmark_financial_audit. No prerequisites, no input format expectations, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_cross_footingB

Validates that row sums and column sums align (footing and cross-footing). matrix_rows is a 2D float list where the last column is row total and last row is col total.

ParametersJSON Schema
NameRequiredDescriptionDefault
matrix_rowsYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It usefully discloses the matrix contract (last column = row total, last row = column total), but says nothing about failure behavior, tolerance thresholds, or what the caller receives on a mismatch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the purpose comes first, the input contract second, with no filler. Slightly telegraphic but front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers the input contract but never indicates the return shape (boolean, list of mismatched cells, error) or how failures are reported. Adequate but leaves a real gap for the calling agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates by defining matrix_rows as a 2D float list with the total column and total row in fixed positions. It stops short of clarifying whether the corner cell is included or whether the totals are validated as data, leaving minor ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (validates) and a specific check (row sums/column sums alignment, footing and cross-footing), so an agent can tell it is a numeric consistency validator. It does not explicitly distinguish itself from the audit siblings, which is the only gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to prefer this over audit_balance_sheet, audit_income_statement, or run_benchmark_financial_audit, nor any prerequisites. Usage is only inferable from the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_income_statementD

audit income statement

ParametersJSON Schema
NameRequiredDescriptionDefault
income_stmt_dictYes

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but provides none. It doesn't state whether this is a read-only operation, what output to expect, whether it modifies data, or any error conditions. For a tool that likely performs complex financial analysis, this is severely inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely terse at just three words, which fails to provide necessary information rather than being efficiently concise. It is essentially a tautology that adds no value beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of financial auditing, nested object parameter, lack of output schema, and no annotations, the description is completely incomplete. It provides no information about the audit process, expected inputs, outputs, or how it relates to other financial audit tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter 'income_stmt_dict' with 0% description coverage. The description doesn't explain what this dictionary should contain, its expected structure, or any constraints. While the parameter name is somewhat self-explanatory, the tool provides no additional semantic guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply restates the tool name without adding any detail about what auditing an income statement entails, what checks are performed, or what compliance standards are applied. It doesn't distinguish this tool from sibling tools like audit_balance_sheet, leaving the user guessing about its specific functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are no guidelines for when to use this tool versus alternatives such as audit_balance_sheet, audit_cross_footing, or run_benchmark_financial_audit. The description provides zero context about appropriate scenarios, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_benchmark_financial_auditC

run benchmark financial audit

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure burden. It reveals nothing about what the benchmark audits, what data source is used, whether it's read-only or mutating, or what it returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It's very short — only four words — but that's under-specification, not conciseness. The single phrase is front-loaded but leaves the agent with nothing actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no annotations and no output schema, the description is the only source of information, and it provides none. An agent cannot know what this does, when to call it, or what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so there are no parameter semantics to document. Baseline 4 applies for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the tool name as a lowercase phrase, providing no additional specificity. It doesn't clearly distinguish from siblings like audit_balance_sheet or audit_income_statement — 'financial audit' is too broad to separate it from those targeted audits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no context, no alternatives mentioned. With siblings performing specific audits, an agent has no basis for choosing this tool over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.1
    • First observedaudit_balance_sheet
    • First observedaudit_cross_footing
    • First observedaudit_income_statement
    • First observedrun_benchmark_financial_audit

TDQS

C2.4/5.0

Scored across 4 tools

Disambiguation4/5

Balance sheet, income statement, and cross-footing audits are clearly distinct targets. run_benchmark_financial_audit is a meta/benchmark tool that could be confused with the specific audits, but its description separates it adequately.

Naming Consistency4/5

Three tools use the audit_ prefix and one uses run_benchmark_, all in snake_case with a verb_noun structure. The verb choice deviates slightly but the pattern remains readable and predictable.

Tool Count4/5

Four tools is well-scoped for a focused financial audit validator, with each tool targeting a distinct audit operation. It is neither bloated nor trivially thin for the stated purpose.

Completeness3/5

The set covers balance sheet, income statement, and cross-footing checks, but omits other core financial statements such as cash flow and equity/retained earnings. The benchmark tool is meta-level rather than filling a domain gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for deterministic numeric verification and spreadsheet auditing. Enables AI agents to verify math/finance claims, audit rows, and evaluate covenant rules with signed, independently checkable receipts.
    4
    15 PyPI
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables deterministic reconstruction of complex tables from OCR bounding-box payloads, recovering multi-column layouts, merged headers, and grid hierarchies. It also supports formula consistency auditing and sensitive PII redaction for document processing pipelines.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Audits extracted balance sheets, income statements, and cash flow reports for mathematical consistency and formula balancing, reconstructing complex financial tables and resolving cross-references from document or OCR payloads. Also performs spatial layout parsing and PII redaction, returning structured matrices and validation telemetry over MCP.
    7
    MIT