---
title: "MCP Server for ACH, BAI2 and X9 Files | NACHA Navigator"
description: "Connect an AI agent to the NACHA Navigator MCP server to look up NACHA, BAI2 and X9.37 record layouts and codes, and to check or build NACHA files."
canonical: https://nacha-navigator.com/mcp-server
updated: 2026-10-30
---

# NACHA Navigator MCP server

MCP server

Connect Claude, ChatGPT, Cursor or another MCP client to NACHA Navigator: look up NACHA, BAI2 and X9.37 record layouts and codes, decode a line of a NACHA file, and check or build NACHA files from JSON. Free, with no sign-in.

Last updated October 30, 2026

MCP server URL

```
https://nacha-navigator.com/mcp
```

- **Transport:** Streamable HTTP.
- **Sign-in:** none. No account, no API key.
- **Protocol:** MCP 2026-07-28, and the earlier revisions back to 2024-11-05 that start with an initialize handshake.
- **Tools:** 9, all read-only.

## What it does

The Model Context Protocol (MCP) is an open standard for connecting AI apps to tools. With this server connected, an app such as Claude or ChatGPT can look things up in NACHA Navigator’s reference instead of answering from memory: record layouts, codes and validation rules for NACHA (ACH), BAI2 and X9.37 files. It can also decode a single record of a NACHA file, and check or generate a NACHA file from JSON with the same rules as the [REST API](https://nacha-navigator.com/nacha-generator/api).

Every tool is read-only: it computes its answer from what it is sent and the reference data bundled with the server, and changes nothing. Answers link to the pages on this site they come from, so you can check them.

## Connect your AI app

Each client below needs only the server URL. Pick yours; the setup follows each client’s own documentation.

### Claude

1. In Claude, open **Customize**, then **Connectors**, and choose **Add custom connector**.
2. Enter the server URL, `https://nacha-navigator.com/mcp`. If you are asked about authentication, choose **No sign-in**. Then choose **Add**.
3. In a chat, open the **+** menu, choose **Connectors** and turn NACHA Navigator on.

The Free plan allows one custom connector. On Team and Enterprise plans, an Owner adds it under **Organization settings** › **Connectors** › **Add** › **Custom** › **Web**, and members then connect to it.

### Claude Code

Add the server from a terminal:

Terminal

```
claude mcp add --transport http nacha-navigator https://nacha-navigator.com/mcp
```

Add `--scope user` to make it available in all your projects:

Terminal

```
claude mcp add --transport http --scope user nacha-navigator https://nacha-navigator.com/mcp
```

Or share it with everyone on a project in `.mcp.json` at the project’s root. A remote server needs its `type`: an entry without one is skipped.

.mcp.json

```json
{
  "mcpServers": {
    "nacha-navigator": {
      "type": "http",
      "url": "https://nacha-navigator.com/mcp"
    }
  }
}
```

### ChatGPT

1. In ChatGPT, open **Plugins** (chatgpt.com/plugins), choose **+**, then **Add custom MCP server**.
2. Enter a name and a description. Under **Connection**, choose **Public endpoint**, enter `https://nacha-navigator.com/mcp` and choose no authentication.
3. Confirm **I understand and want to continue**, then choose **Create as a plugin**.

Your workspace’s policies decide whether custom MCP servers are allowed.

### Cursor

Add the server to `~/.cursor/mcp.json` for all projects, or to `.cursor/mcp.json` in one project:

mcp.json

```json
{
  "mcpServers": {
    "nacha-navigator": {
      "url": "https://nacha-navigator.com/mcp"
    }
  }
}
```

Or, with Cursor installed, use the install link: [Add NACHA Navigator to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=nacha-navigator&config=eyJ1cmwiOiJodHRwczovL25hY2hhLW5hdmlnYXRvci5jb20vbWNwIn0=).

### VS Code

With GitHub Copilot, run **MCP: Add Server** from the Command Palette, choose **HTTP** and enter `https://nacha-navigator.com/mcp`.

To add it by hand, use a workspace `.mcp.json` in the format shown for Claude Code, or VS Code’s own `.vscode/mcp.json`:

.vscode/mcp.json

```json
{
  "servers": {
    "nacha-navigator": {
      "type": "http",
      "url": "https://nacha-navigator.com/mcp"
    }
  }
}
```

### Devin Desktop (formerly Windsurf)

From a terminal:

Terminal

```
devin mcp add nacha-navigator https://nacha-navigator.com/mcp
```

Or add it to `~/.config/devin/mcp_config.json` for all projects, or to `.devin/mcp_config.json` in one project:

mcp_config.json

```json
{
  "mcpServers": {
    "nacha-navigator": {
      "url": "https://nacha-navigator.com/mcp",
      "transport": "http"
    }
  }
}
```

### Gemini CLI

Terminal

```
gemini mcp add --transport http nacha-navigator https://nacha-navigator.com/mcp
```

This adds it to the current project; add `-s user` to add it to `~/.gemini/settings.json` for all projects. In a settings file the entry looks like this, where `httpUrl` means Streamable HTTP:

settings.json

```json
{
  "mcpServers": {
    "nacha-navigator": {
      "httpUrl": "https://nacha-navigator.com/mcp"
    }
  }
}
```

### Antigravity

Antigravity’s CLI and editor read `~/.gemini/config/mcp_config.json` for all workspaces, or `.agents/mcp_config.json` in one workspace:

mcp_config.json

```json
{
  "mcpServers": {
    "nacha-navigator": {
      "serverUrl": "https://nacha-navigator.com/mcp"
    }
  }
}
```

### MCP Inspector

To try the server without an AI app, use the MCP Inspector’s command-line mode. List the tools:

Terminal

```
npx @modelcontextprotocol/inspector --cli --transport http --server-url https://nacha-navigator.com/mcp --method tools/list
```

Call one:

Terminal

```
npx @modelcontextprotocol/inspector --cli --transport http --server-url https://nacha-navigator.com/mcp \
  --method tools/call --tool-name lookup_nacha_code --tool-args-json '{"code":"R01"}' --format json
```

Add `--protocol-era modern` to use the 2026-07-28 revision instead of the initialize handshake:

Terminal

```
npx @modelcontextprotocol/inspector --cli --transport http --server-url https://nacha-navigator.com/mcp --protocol-era modern --method tools/list
```

## Tools

Your AI app picks the tool that fits your question. Each one is read-only and returns structured data, a text copy of it, and links to the matching pages on this site.

| Tool | What it does |
| --- | --- |
| `get_nacha_record_layout` | Lists the fields of a NACHA record type, such as the batch header or the entry detail for a given SEC code, with their positions, lengths, formats and meanings. |
| `explain_nacha_record` | Decodes one 94-character line of a NACHA file field by field and reports the problems the validator finds in that line on its own. |
| `lookup_nacha_code` | Looks up NACHA codes, such as transaction, SEC, service class, return reason and NOC codes, by code or by words in their meanings. |
| `explain_nacha_validation_rule` | Explains one of the NACHA validator’s checks by its code, such as ROUTING_CHECK_DIGIT: its severity, what it checks and the part of the Nacha Operating Rules it comes from. |
| `validate_nacha_file_request` | Checks a NACHA Generator request, the same JSON the REST API takes, and returns its errors and warnings without building the file. |
| `generate_nacha_file` | Builds a NACHA file from that JSON, with the control totals, entry hashes and block fill calculated, and returns it as text. |
| `lookup_bai2_type_code` | Looks up BAI2 type codes by code, by words in their descriptions, or by level and direction. |
| `get_bai2_record_layout` | Lists the fields of a BAI2 record type, from the 01 file header to the 99 file trailer, in order, with their meanings. |
| `get_x9_record_layout` | Lists the fields of an X9.37 record type with their positions, lengths, usage and code values, for X9.100-187 and DSTU X9.37-2003 files. |

## Privacy and limits

- **Processed in memory.** The arguments of a tool call, such as a record or a file request, are used to compute the answer and are never stored or logged. Our server keeps only anonymous counts of connections and tool calls, and an error log line with the method and path when a request fails, as the [privacy policy](https://nacha-navigator.com/privacy#mcp-server) describes.
- **Nothing goes to a bank.** `generate_nacha_file` returns the file to your AI app. It moves no money.
- **Use test data.** Prefer test or redacted values to real account numbers and names.
- **Whole files stay in your browser.** No tool reads a whole file. To check a real file privately, open it in the [NACHA Viewer](https://nacha-navigator.com/), which reads it on your device.
- **Limits.** A file request can be up to 128 KB of JSON (about 500 entries). The rate limit, counted per network address, is generous, because hosted AI apps share addresses. When it is reached, the server asks the app to wait a minute.
- **Informational.** NACHA Navigator is independent and not affiliated with or endorsed by Nacha. Answers are informational, not legal or compliance advice: the Nacha Operating Rules, and for BAI2 and X9.37 files their specifications, are authoritative. The [terms](https://nacha-navigator.com/terms) apply.

## Other files for AI agents

- [/llms.txt](https://nacha-navigator.com/llms.txt) is a short guide to the site for language models, and [/llms-full.txt](https://nacha-navigator.com/llms-full.txt) holds the Markdown versions of the pages in one file.
- The site’s pages have Markdown versions: add `.md` to a page’s address, as in [/nacha-file-format.md](https://nacha-navigator.com/nacha-file-format.md), or request the page with an `Accept: text/markdown` header.
- [/openapi.json](https://nacha-navigator.com/openapi.json) is the OpenAPI 3.1 description of the REST API’s generate and validate endpoints, which the [API documentation](https://nacha-navigator.com/nacha-generator/api) explains.
- [/.well-known/api-catalog](https://nacha-navigator.com/.well-known/api-catalog) is the site’s API catalog (RFC 9727). It links that description and the documentation.
- [/mcp/server-card](https://nacha-navigator.com/mcp/server-card) is this server’s MCP Server Card, listed in [/.well-known/ai-catalog.json](https://nacha-navigator.com/.well-known/ai-catalog.json), for directories and clients that find servers on their own.
- [Sample NACHA, BAI2 and X9.37 files](https://nacha-navigator.com/sample-files) to test with.

## Routing numbers and ACH dates

For bank lookups by routing number, ACH dates and payment codes, the sister site PayOps Kit runs its own MCP server. Add it the same way, with its URL:

PayOps Kit MCP server URL

```
https://payopskit.com/mcp
```
