Skip to main content

Achlens

PyPI Python License CI

Achlens is a local-first Python MCP server and CLI for inspecting synthetic ACH files. It parses fixed-width records, validates structure and control totals, explains findings, masks sensitive fields, repairs derived controls, and generates deterministic test files. It never transmits ACH files or makes bank/network calls.

Use synthetic data only. This project is not a bank gateway, compliance advisor, or transmission system.

Quick Start

uv sync
uv run achlens --help
uv run achlens validate tests/fixtures/golden/sample_valid.ach
uv run achlens generate --sec PPD --entries 5 --seed 7 > synthetic.ach

In Windows PowerShell, use an explicit ASCII encoding because PowerShell's default > redirection can write UTF-16 output that is not valid ACH text:

uvx achlens generate --sec PPD --entries 5 --seed 7 |
	Set-Content -Encoding ascii synthetic.ach

Run the MCP server over stdio:

uv run achlens serve

MCP Client Setup

Install the published package with uvx; it starts the server locally over stdio and does not transmit ACH files.

VS Code and Copilot

Create .vscode/mcp.json in your workspace:

{
  "servers": {
    "achlens": {
      "type": "stdio",
      "command": "uvx",
      "args": ["achlens"]
    }
  }
}

Claude Desktop

Add the following entry to the mcpServers object in Claude Desktop's MCP configuration:

{
  "achlens": {
    "command": "uvx",
    "args": ["achlens"]
  }
}

By default, MCP tools accept ACH content directly but cannot read local paths. To allow read-only access to a specific directory, set ACHLENS_ALLOWED_ROOTS in the server environment to that directory. Use synthetic ACH data only.

The MCP server exposes validation, summaries, parsed-record paging, control explanations, routing checks, code lookup, synthetic generation, and control repair. See docs/tools.md for the current tool surface.

Sensitive fields are masked by default. Configure ACHLENS_ALLOWED_ROOTS to enable MCP path inputs; otherwise provide file content directly. See SECURITY.md for the data and write boundaries.

Development

This project uses uv.

uv sync
uv run achlens --help
PYTHONPATH=. uv run pytest -q
uv run ruff check .
uv run ruff format --check .
uv run mypy --strict src

Without uv

The CLI and test suite also work with plain pip:

pip install -e . pytest
achlens --help
achlens validate tests/fixtures/golden/sample_valid.ach
achlens generate --sec PPD --entries 5 --seed 7
PYTHONPATH=. pytest

Set PYTHONPATH=. from the repository root when running tests so fixture and script imports resolve. In Windows PowerShell, use $env:PYTHONPATH = "."; pytest.

Never add real payment data, account numbers, or ACH files to this repository.

Metadata

Release files for achlens 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for achlens 0.1.7
File Size Uploaded Provenance Actions
achlens-0.1.7.tar.gz 171.0 kB With provenance Details for achlens-0.1.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for achlens 0.1.7
File Interpreter ABI Platform Actions
achlens-0.1.7-py3-none-any.whl Python 3 none any Details for achlens-0.1.7-py3-none-any.whl

Total release size: 242.4 kB

Release files / achlens-0.1.7.tar.gz

Download URL achlens-0.1.7.tar.gz
Size 171.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8e305c7fd414a04e611b0a24e60053f3ec29a36e9a6354d4b7ab8d21c5e406a2
BLAKE2b-256 checksum
How to use checksums
0e39c8a58dbf3f2a3a53cbfffb3ad3728ade7fb4fbdb7714aa2f78473aceec0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / achlens-0.1.7-py3-none-any.whl

Download URL achlens-0.1.7-py3-none-any.whl
Size 71.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
392214d06757da2c4238ba0f00b9850038950a5c9613527d12d36d0ba0e1ca51
BLAKE2b-256 checksum
How to use checksums
ba58df96c67ba3763672ba1dff1e1c8b64cf15a68d980228d316e613ad792f91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for achlens 0.1.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for achlens-0.1.7.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page