Achlens

io.github.mscott9160-webPublished by GitHub account mscott9160-webv0.1.2Updated Oct 24, 2026

Local-first MCP server and CLI for validating and generating synthetic ACH files.

VerifiedSTDIODesktop onlyFinanceDeveloper Tools

Overview

AI-generated overview

Local-first MCP server and CLI that validates, explains, masks and generates synthetic ACH payment files without any bank or network calls.

What you can do
  • Validate ACH files and summarize their contents
  • Page through parsed fixed-width records and explain control totals and routing checks
  • Look up ACH codes and mask sensitive fields by default
  • Generate deterministic synthetic ACH test files from a seed
  • Repair derived control values in existing files
When to use it
Useful when you work with ACH payment file formats and want an assistant to check structure and control totals, explain findings, or produce reproducible synthetic test fixtures. It is aimed at development and testing, not at real payment processing.
Requirements
Runs as a local Python process over stdio, installed from PyPI with uvx (or pip). No accounts, API keys or environment variables are declared. To let the server read files by path, set ACHLENS_ALLOWED_ROOTS; otherwise file content must be passed directly.
Before you install
Intended for synthetic data only; the project states it is not a bank gateway, compliance advisor or transmission system. Sensitive fields are masked by default, but avoid feeding real account numbers or payment data. Control repair and generation write file content, so review outputs before use. Path access is gated by ACHLENS_ALLOWED_ROOTS.

Installation

In SourceWeft

  1. Open Achlens in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

text
uv syncuv run achlens --helpuv run achlens validate tests/fixtures/golden/sample_valid.achuv 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:

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

Run the MCP server over stdio:

text
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:

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

Claude Desktop

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

json
{  "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.

text
uv syncuv run achlens --helpPYTHONPATH=. uv run pytest -quv 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:

text
pip install -e . pytestachlens --helpachlens validate tests/fixtures/golden/sample_valid.achachlens generate --sec PPD --entries 5 --seed 7PYTHONPATH=. 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.

Source: README.md at commit 2887fbd

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.