Skip to content

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 24 Jun 20:16
bce99a6

Added

  • Initial release of bankstatementparser-mcp, a Model Context Protocol
    (MCP) server that exposes the
    bankstatementparser
    bank statement parsing library as tools for AI agents and assistants.
  • bankstatementparser-mcp console script that runs the FastMCP server
    over stdio.
  • Five MCP tools, all delegating to the bankstatementparser parser
    core so they behave identically to the library:
    • list_supported_formats - list every bank statement format the
      parser can read (camt, pain001, csv, ofx, qfx, mt940).
    • detect_format - detect which statement format an inline payload is.
    • parse_statement - parse a statement into structured transactions
      plus a summary, with an optional row limit.
    • validate_statement - dry-run check whether a statement parses
      cleanly, returning a structured result rather than raising.
    • summarize_statement - return only the statement summary
      (opening/closing balances and currency).
  • One resource (bankstatementparser://formats) describing each
    supported format and its file extensions, and one prompt
    (analyze_statement) guiding an agent through reading and reconciling
    a statement.
  • Tools take inline statement content plus a filename hint and
    materialise it in a private temporary file for the duration of a
    single call, so no shared filesystem is required between client and
    server.
  • Multi-stage Dockerfile - a python:3.12-slim-based image runs
    the server over stdio as a non-root mcp user
    (docker run -i --rm bankstatementparser-mcp).
  • Quality workflows - ci.yml enforces ruff, mypy, the 100% pytest
    coverage gate, and the 100% docstring gate on Python 3.10/3.11/3.12;
    security.yml runs bandit + pip-audit; codeql.yml runs GitHub's
    CodeQL Python analysis.
  • Security policy (SECURITY.md) describing the threat model and
    hardening (private temp files, no network listener, no secrets).
  • scripts/verify_versions.py - pre-release script asserting
    __version__, pyproject.toml, and CHANGELOG.md agree.
  • Python 3.10+ support; depends on bankstatementparser (>=0.0.9) and
    mcp (>=1.2).
  • Quality gates pinned at 100% from the initial release:
    • pytest --cov=bankstatementparser_mcp --cov-branch --cov-fail-under=100
      exercising every line and branch in
      bankstatementparser_mcp/server.py.
    • interrogate --fail-under=100 for module and function docstring
      coverage.
  • Runnable examples under examples/ covering every tool, the
    bankstatementparser://formats resource (formats_resource), and the
    analyze_statement prompt — each self-contained (inline fixtures, no
    network) and exercised by the test suite.
  • Documentation regression suite keeping the docs honest:
    • tests/test_docs_accuracy.py asserts the README, CHANGELOG, and
      examples/README.md match the live tool/resource/prompt registry,
      the package version, and the supported-format set.
    • tests/test_regression_examples.py runs every examples/*.py as a
      subprocess and asserts a clean exit.
    • tests/test_regression_docs.py executes every fenced python
      block in the README (and docs/*.md) so no documented example can
      silently rot.