
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.
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.
Installation
In SourceWeft
- Open Achlens in the dashboard and add it to a workspace.
- 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
In Windows PowerShell, use an explicit ASCII encoding because PowerShell's
default > redirection can write UTF-16 output that is not valid ACH text:
Run the MCP server over stdio:
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:
Claude Desktop
Add the following entry to the mcpServers object in Claude Desktop's MCP
configuration:
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.
Without uv
The CLI and test suite also work with plain pip:
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
0Version history
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.