nachamcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91c55a8e53877dc381de05f12bd267aa2a437d1c6909b870acd902c7f5aec829
4
- data.tar.gz: 27aa5324121e68f8ead8f37ad765ab8e6a60d4a3613731983f4212f0c834fd44
3
+ metadata.gz: 013224a9f645ec9d33ba4cd6111037ea73717211c30e32cb96841bbe8d26d6b6
4
+ data.tar.gz: 0f8f3923d7319f629595a6cfa9a607f73153d25aa7901db531c4c85c4af3eafa
5
5
  SHA512:
6
- metadata.gz: 259c6af34a27b0817871bf80f3694de6afe6e23f0c31967e5da54e14c0fa191764cae1730d6b47261f5903e4b6a552920435c834ca84bacab6f4d47efbfecbb4
7
- data.tar.gz: 44b99c5ed38135aec8b1ccc596e29079e4b8cdff80e445845517ba5bb1500947069acd5753b740f670c64245d326a19575b6c5506543b3aa9a6b6bda2f24773b
6
+ metadata.gz: 43b5d54257be4a93cb8ea252df82775c9d7c24a34edff57c423ded46adf370da2675149fe98be959b1a270c9ebc5f4bafaf84f5d6bea7050c05309cfea1c07ae
7
+ data.tar.gz: 50798abe2e1d5cfa79281e2a16be43132a3e858405243117882d012fd6fcd350c9910402e2c30093bf1ac5eee94f55ff3418ed664cf0bac52046df74c3041a01
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.1] - 2025-08-01
4
+
5
+ - support nacha 0.2.1
6
+
3
7
  ## [0.1.0] - 2025-07-27
4
8
 
5
9
  - Initial release
data/README.md CHANGED
@@ -1,28 +1,74 @@
1
1
  # Nachamcp
2
2
 
3
- TODO: Delete this and the text below, and describe your gem
4
-
5
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/nachamcp`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ NachaMCP is an MCP Server to allow LLMs to reason about ACH records. NachaMCP will
4
+ parse ach records into JSON or Markdown, as requested by the LLM.
6
5
 
7
6
  ## Installation
8
7
 
9
- TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
10
-
11
- Install the gem and add to the application's Gemfile by executing:
12
8
 
13
9
  ```bash
14
- bundle add UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG
10
+ gem install nachamcp
11
+ ```
12
+ To enable for Gemini CLI (`.gemini/settings.json`):
13
+ ```json
14
+ {
15
+ "mcpServers": {
16
+ "nachamcp": {
17
+ "command": "nachamcp"
18
+ }
19
+ }
20
+ }
15
21
  ```
16
22
 
17
- If bundler is not being used to manage dependencies, install the gem by executing:
23
+ ## Usage
18
24
 
19
- ```bash
20
- gem install UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG
25
+ Give me a detailed count of the record types in these ach records
26
+ ```
27
+ 101 02601507911223344552006011330A094101GS BANK USA YOUR COMPANY NAME REF123AB
28
+ 5220ALPHA COMPANY 1234567890CCDPAYROLL JUN 20200701 1026015070000001
29
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000001
30
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000002
31
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000003
32
+ 822000000300333366660000000000000000003000001234567890 026015070000001
33
+ 5220ALPHA COMPANY 1234567890PPDPAYROLL JUN 20200701 1026015070000002
34
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000011
35
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000012
36
+ 822000000200222244440000000000000000002000001234567890 026015070000002
37
+ 5220ALPHA COMPANY 1234567890PPDPAYROLL JUN 20200701 1026015070000003
38
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000101
39
+ 632111122223123456789 0000100000AB156325 JACK SMITH 0026015070000102
40
+ 822000000200222244440000000000000000002000001234567890 026015070000003
41
+ 9000003000002000000070077785554000000000000000000700000
21
42
  ```
22
43
 
23
- ## Usage
44
+ ### Without NachaMCP:
45
+ ```
46
+ Of course. Here is a detailed breakdown of the record types in the data you provided:
47
+
48
+ ┌──────────────────┬──────────────────┬───────┐
49
+ │ Record Type Code │ Record Type Name │ Count │
50
+ ├──────────────────┼──────────────────┼───────┤
51
+ │ 101 │ File Header │ 1 │
52
+ │ 5220 │ Batch Header │ 3 │
53
+ │ 632 │ Entry Detail │ 6 │
54
+ │ 8220 │ Batch Control │ 3 │
55
+ │ 900 │ File Control │ 1 │
56
+ │ Total │ │ 14 │
57
+ └──────────────────┴──────────────────┴───────┘
58
+ ```
24
59
 
25
- TODO: Write usage instructions here
60
+ ### With NachaMcp
61
+
62
+ ```
63
+ Of course. Here is a detailed count of the record types in the ACH records you provided:
64
+
65
+ * file_header: 1
66
+ * batch_header: 3
67
+ * ccd_entry_detail: 3
68
+ * ppd_entry_detail: 4
69
+ * batch_control: 3
70
+ * file_control: 1
71
+ ```
26
72
 
27
73
  ## Development
28
74
 
data/exe/nachamcp CHANGED
@@ -52,10 +52,17 @@ class AchParserTool < FastMcp::Tool
52
52
  end
53
53
 
54
54
  def call(ach_text:, output_format: "json")
55
- ach_records = Nacha.parse(ach_text)
55
+ ach_file = Nacha.parse(ach_text)
56
56
  format = output_formatter(output_format)
57
- # Convert records to output format
58
- Nacha::Formatter::FormatterFactory.get(format, ach_records, formatter_options(ach_text, ach_records)).format
57
+
58
+ case format
59
+ when :json
60
+ ach_file.to_json
61
+ when :markdown
62
+ ach_file.to_markdown
63
+ else
64
+ raise ArgumentError, "Unsupported output format: #{format}"
65
+ end
59
66
  rescue StandardError
60
67
  { error: "No ACH records found in the provided text." }.to_json
61
68
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nachamcp
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nachamcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David H. Wilkins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-30 00:00:00.000000000 Z
11
+ date: 2025-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast-mcp-annotations
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.19
33
+ version: 0.2.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.19
40
+ version: 0.2.1
41
41
  description: MCP Server to parse ACH records into json or markdown.
42
42
  email:
43
43
  - dwilkins@conecuh.com