@dizzlkheinz/ynab-mcpb 0.16.0 → 0.17.0
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.
- package/.code/agents/0098661e-0fa3-4990-beb9-c0cbf3f123aa/status.txt +1 -0
- package/.code/agents/1324/exec-call_tIpx9uV1TpARbAMZonRQm8AO.txt +757 -0
- package/.code/agents/1572/exec-call_GjVFBFOWcY7lE0idc5nWlLNh.txt +781 -0
- package/.code/agents/1846/exec-call_1YNAVD18RjrMN7JnfkkQhUP3.txt +766 -0
- package/.code/agents/1846/exec-call_lh3lDzE4WJAh1lFiomiiZ73D.txt +766 -0
- package/.code/agents/2038/exec-call_DYwOukaYsL8VCONWmV2rUW5u.txt +766 -0
- package/.code/agents/2038/exec-call_c7fOQ7UrpVcTtvdfGBRM146V.txt +652 -0
- package/.code/agents/2038/exec-call_ySNyq9Mm55jWE480s54r5QcA.txt +766 -0
- package/.code/agents/2256/exec-call_AtPcRWPmFPMcmX6qOFm1fCEY.txt +766 -0
- package/.code/agents/2454/exec-call_aFJpupwjfZeOBm7ixI5Vc8z2.txt +766 -0
- package/.code/agents/2454/exec-call_wogZ4HfXTodTEXvdgXlVUBpv.txt +766 -0
- package/.code/agents/2e905864-aa07-4314-bcf9-c5b32277e4ac/result.txt +36 -0
- package/.code/agents/3073/exec-call_Peeagc9DxGYLgE6pNdMZhqIE.txt +766 -0
- package/.code/agents/3073/exec-call_d2YSE3hXF08KRSoUM3qd8Z3x.txt +766 -0
- package/.code/agents/335aa031-466d-4fb7-925f-3cd864e264d0/result.txt +191 -0
- package/.code/agents/3364/exec-call_NbhIrsM5HhyDZDmJZG5CuCYL.txt +766 -0
- package/.code/agents/3364/exec-call_cKtJg0NrXiwXEFwlsE3uPZRA.txt +766 -0
- package/.code/agents/36d98414-5cde-4d9d-9a67-a240a18c1f07/result.txt +189 -0
- package/.code/agents/4604e866-b7b8-44f5-992f-2f683b0a523b/status.txt +1 -0
- package/.code/agents/5f8dc01c-47b3-4163-b0b3-aa31be89fcdc/status.txt +1 -0
- package/.code/agents/7/exec-call_HltHpkDox0Zm1vGEjdksUgpE.txt +1120 -0
- package/.code/agents/7/exec-call_LCATrOPPAgbxW9Q1z0XaVi2E.txt +2646 -0
- package/.code/agents/7/exec-call_W8DeRfNG9hvbgVFvf0clBf6R.txt +2646 -0
- package/.code/agents/94a0ddf3-a304-4ec3-913e-3cceef509948/error.txt +1 -0
- package/.code/agents/e2c752b7-711d-423a-af57-f53c809deb84/result.txt +160 -0
- package/.code/agents/e6601719-c31f-4a0e-8c71-d70787d0ab71/status.txt +1 -0
- package/.code/agents/f250b7ed-5bd5-4036-aa8c-ce63caee7d61/result.txt +20 -0
- package/AGENTS.md +1 -36
- package/CLAUDE.md +131 -51
- package/NUL +0 -1
- package/README.md +27 -14
- package/dist/bundle/index.cjs +41 -41
- package/dist/server/YNABMCPServer.js +28 -381
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.js +1 -0
- package/dist/tools/accountTools.d.ts +2 -0
- package/dist/tools/accountTools.js +45 -0
- package/dist/tools/adapters.d.ts +12 -0
- package/dist/tools/adapters.js +25 -0
- package/dist/tools/budgetTools.d.ts +2 -0
- package/dist/tools/budgetTools.js +30 -0
- package/dist/tools/categoryTools.d.ts +2 -0
- package/dist/tools/categoryTools.js +45 -0
- package/dist/tools/monthTools.d.ts +2 -0
- package/dist/tools/monthTools.js +32 -0
- package/dist/tools/payeeTools.d.ts +2 -0
- package/dist/tools/payeeTools.js +32 -0
- package/dist/tools/reconciliation/index.d.ts +2 -0
- package/dist/tools/reconciliation/index.js +33 -0
- package/dist/tools/schemas/common.d.ts +3 -0
- package/dist/tools/schemas/common.js +3 -0
- package/dist/tools/schemas/outputs/comparisonOutputs.d.ts +1 -1
- package/dist/tools/transactionTools.d.ts +2 -0
- package/dist/tools/transactionTools.js +129 -0
- package/dist/tools/utilityTools.d.ts +3 -1
- package/dist/tools/utilityTools.js +32 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/toolRegistration.d.ts +27 -0
- package/dist/types/toolRegistration.js +1 -0
- package/package.json +2 -2
- package/scripts/run-domain-integration-tests.js +4 -1
- package/src/__tests__/workflows.e2e.test.ts +1 -7
- package/src/server/YNABMCPServer.ts +33 -519
- package/src/server/__tests__/toolRegistration.test.ts +236 -0
- package/src/server/config.ts +1 -0
- package/src/tools/__tests__/adapters.test.ts +113 -0
- package/src/tools/__tests__/transactionTools.test.ts +90 -17
- package/src/tools/__tests__/utilityTools.test.ts +7 -7
- package/src/tools/accountTools.ts +53 -0
- package/src/tools/adapters.ts +74 -0
- package/src/tools/budgetTools.ts +37 -0
- package/src/tools/categoryTools.ts +53 -0
- package/src/tools/monthTools.ts +39 -0
- package/src/tools/payeeTools.ts +39 -0
- package/src/tools/reconciliation/index.ts +45 -0
- package/src/tools/schemas/common.ts +18 -0
- package/src/tools/transactionTools.ts +150 -0
- package/src/tools/utilityTools.ts +42 -2
- package/src/types/index.ts +3 -0
- package/src/types/toolRegistration.ts +88 -0
- package/.dxtignore +0 -57
- package/.github/workflows/pr-description-check.yml +0 -88
- package/CODEREVIEW_RESPONSE.md +0 -128
- package/SCHEMA_IMPROVEMENT_SUMMARY.md +0 -120
- package/TESTING_NOTES.md +0 -217
- package/accountactivity-merged.csv +0 -149
- package/bundle-analysis.html +0 -13110
- package/docs/README.md +0 -72
- package/docs/getting-started/CONFIGURATION.md +0 -175
- package/docs/getting-started/INSTALLATION.md +0 -333
- package/docs/getting-started/QUICKSTART.md +0 -282
- package/docs/guides/ARCHITECTURE.md +0 -533
- package/docs/guides/DEPLOYMENT.md +0 -189
- package/docs/guides/INTEGRATION_TESTING.md +0 -730
- package/docs/guides/TESTING.md +0 -591
- package/docs/plans/2025-11-20-reloadable-config-token-validation.md +0 -93
- package/docs/plans/2025-11-21-fix-transaction-cached-property.md +0 -362
- package/docs/plans/2025-11-21-reconciliation-error-handling.md +0 -90
- package/docs/plans/2025-11-21-v014-hardening.md +0 -153
- package/docs/plans/reconciliation-v2-redesign.md +0 -1571
- package/docs/reconciliation-flow.md +0 -83
- package/docs/reference/EXAMPLES.md +0 -946
- package/docs/reference/TOOLS.md +0 -348
- package/docs/reference/TROUBLESHOOTING.md +0 -481
- package/fix-types.sh +0 -17
- package/test-csv-sample.csv +0 -28
- package/test-exports/sample_bank_statement.csv +0 -7
- package/test-reconcile-autodetect.js +0 -40
- package/test-reconcile-tool.js +0 -152
- package/test-reconcile-with-csv.cjs +0 -89
- package/test-statement.csv +0 -8
- package/test_debug.js +0 -47
- package/test_mcp_tools.mjs +0 -75
- package/test_simple.mjs +0 -16
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Now I have a complete picture. Let me compile the comprehensive catalogue report.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## MCP Tool Registration Catalogue Report
|
|
6
|
+
|
|
7
|
+
### Summary Statistics
|
|
8
|
+
|
|
9
|
+
| Metric | Count |
|
|
10
|
+
|--------|-------|
|
|
11
|
+
| **Total Tools** | 30 |
|
|
12
|
+
| **Domain Groups** | 8 |
|
|
13
|
+
| **Adapter Types** | 5 |
|
|
14
|
+
| **Inline Input Schemas** | 5 |
|
|
15
|
+
| **External Input Schemas** | 22 |
|
|
16
|
+
| **Output Schemas (typed)** | 17 |
|
|
17
|
+
| **Output Schemas (loose)** | 13 |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
### Tools by Domain Group
|
|
22
|
+
|
|
23
|
+
#### 1. Budget Tools (3 tools)
|
|
24
|
+
|
|
25
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
26
|
+
|------|---------|--------------|---------------|-----------------|
|
|
27
|
+
| `list_budgets` | `adaptWithDelta` | `emptyObjectSchema` | `ListBudgetsOutputSchema` | **Inline** (server) |
|
|
28
|
+
| `get_budget` | `adapt` | `GetBudgetSchema` | `GetBudgetOutputSchema` | budgetTools.ts |
|
|
29
|
+
| `set_default_budget` | inline handler | `setDefaultBudgetSchema` | `SetDefaultBudgetOutputSchema` | **Inline** (server) |
|
|
30
|
+
|
|
31
|
+
#### 2. Account Tools (3 tools)
|
|
32
|
+
|
|
33
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
34
|
+
|------|---------|--------------|---------------|-----------------|
|
|
35
|
+
| `list_accounts` | `adaptWithDelta` | `ListAccountsSchema` | `ListAccountsOutputSchema` | accountTools.ts |
|
|
36
|
+
| `get_account` | `adapt` | `GetAccountSchema` | `GetAccountOutputSchema` | accountTools.ts |
|
|
37
|
+
| `create_account` | `adaptWrite` | `CreateAccountSchema` | `LooseObjectSchema` | accountTools.ts |
|
|
38
|
+
|
|
39
|
+
#### 3. Transaction Tools (9 tools)
|
|
40
|
+
|
|
41
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
42
|
+
|------|---------|--------------|---------------|-----------------|
|
|
43
|
+
| `list_transactions` | `adaptWithDelta` | `ListTransactionsSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
44
|
+
| `get_transaction` | `adapt` | `GetTransactionSchema` | `GetTransactionOutputSchema` | transactionTools.ts |
|
|
45
|
+
| `create_transaction` | `adaptWrite` | `CreateTransactionSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
46
|
+
| `create_transactions` | `adaptWrite` | `CreateTransactionsSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
47
|
+
| `create_receipt_split_transaction` | `adaptWrite` | `CreateReceiptSplitTransactionSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
48
|
+
| `update_transaction` | `adaptWrite` | `UpdateTransactionSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
49
|
+
| `update_transactions` | `adaptWrite` | `UpdateTransactionsSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
50
|
+
| `delete_transaction` | `adaptWrite` | `DeleteTransactionSchema` | `LooseObjectSchema` | transactionTools.ts |
|
|
51
|
+
| `export_transactions` | `adapt` | `ExportTransactionsSchema` | `ExportTransactionsOutputSchema` | exportTransactions.ts |
|
|
52
|
+
|
|
53
|
+
#### 4. Category Tools (3 tools)
|
|
54
|
+
|
|
55
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
56
|
+
|------|---------|--------------|---------------|-----------------|
|
|
57
|
+
| `list_categories` | `adaptWithDelta` | `ListCategoriesSchema` | `ListCategoriesOutputSchema` | categoryTools.ts |
|
|
58
|
+
| `get_category` | `adapt` | `GetCategorySchema` | `GetCategoryOutputSchema` | categoryTools.ts |
|
|
59
|
+
| `update_category` | `adaptWrite` | `UpdateCategorySchema` | `LooseObjectSchema` | categoryTools.ts |
|
|
60
|
+
|
|
61
|
+
#### 5. Payee Tools (2 tools)
|
|
62
|
+
|
|
63
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
64
|
+
|------|---------|--------------|---------------|-----------------|
|
|
65
|
+
| `list_payees` | `adaptWithDelta` | `ListPayeesSchema` | `ListPayeesOutputSchema` | payeeTools.ts |
|
|
66
|
+
| `get_payee` | `adapt` | `GetPayeeSchema` | `GetPayeeOutputSchema` | payeeTools.ts |
|
|
67
|
+
|
|
68
|
+
#### 6. Month Tools (2 tools)
|
|
69
|
+
|
|
70
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
71
|
+
|------|---------|--------------|---------------|-----------------|
|
|
72
|
+
| `list_months` | `adaptWithDelta` | `ListMonthsSchema` | `ListMonthsOutputSchema` | monthTools.ts |
|
|
73
|
+
| `get_month` | `adapt` | `GetMonthSchema` | `GetMonthOutputSchema` | monthTools.ts |
|
|
74
|
+
|
|
75
|
+
#### 7. Utility Tools (6 tools)
|
|
76
|
+
|
|
77
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
78
|
+
|------|---------|--------------|---------------|-----------------|
|
|
79
|
+
| `get_default_budget` | inline handler | `emptyObjectSchema` | `GetDefaultBudgetOutputSchema` | **Inline** (server) |
|
|
80
|
+
| `get_user` | `adaptNoInput` | `emptyObjectSchema` | `GetUserOutputSchema` | **Inline** (server) |
|
|
81
|
+
| `convert_amount` | inline handler | `ConvertAmountSchema` | `ConvertAmountOutputSchema` | utilityTools.ts |
|
|
82
|
+
| `diagnostic_info` | inline handler | `diagnosticInfoSchema` | `DiagnosticInfoOutputSchema` | **Inline** (server) |
|
|
83
|
+
| `clear_cache` | inline handler | `emptyObjectSchema` | `ClearCacheOutputSchema` | **Inline** (server) |
|
|
84
|
+
| `set_output_format` | inline handler | `setOutputFormatSchema` | `SetOutputFormatOutputSchema` | **Inline** (server) |
|
|
85
|
+
|
|
86
|
+
#### 8. Advanced Tools (2 tools)
|
|
87
|
+
|
|
88
|
+
| Tool | Adapter | Input Schema | Output Schema | Schema Location |
|
|
89
|
+
|------|---------|--------------|---------------|-----------------|
|
|
90
|
+
| `compare_transactions` | `adapt` | `CompareTransactionsSchema` | `CompareTransactionsOutputSchema` | compareTransactions/index.ts |
|
|
91
|
+
| `reconcile_account` | `adaptWithDelta` | `ReconcileAccountSchema` | `LooseObjectSchema` | reconciliation/index.ts |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### Adapter Type Summary
|
|
96
|
+
|
|
97
|
+
| Adapter Type | Purpose | Tool Count | Tools |
|
|
98
|
+
|--------------|---------|------------|-------|
|
|
99
|
+
| **`adapt`** | Standard read ops | 8 | get_budget, get_account, get_transaction, get_category, get_payee, get_month, export_transactions, compare_transactions |
|
|
100
|
+
| **`adaptWithDelta`** | Read ops with delta caching | 8 | list_budgets, list_accounts, list_transactions, list_categories, list_payees, list_months, reconcile_account |
|
|
101
|
+
| **`adaptWrite`** | Write ops with cache invalidation | 8 | create_account, create_transaction, create_transactions, create_receipt_split_transaction, update_transaction, update_transactions, update_category, delete_transaction |
|
|
102
|
+
| **`adaptNoInput`** | Read ops without input params | 1 | get_user |
|
|
103
|
+
| **inline handler** | Server-owned local ops | 5 | set_default_budget, get_default_budget, diagnostic_info, clear_cache, set_output_format |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### Schema Migration Analysis
|
|
108
|
+
|
|
109
|
+
#### Inline Schemas in YNABMCPServer.ts (5 schemas)
|
|
110
|
+
|
|
111
|
+
| Schema | Current Location | Migration Recommendation |
|
|
112
|
+
|--------|------------------|--------------------------|
|
|
113
|
+
| `emptyObjectSchema` | Line 446 | **MOVE** → `src/tools/schemas/shared/commonInputs.ts` - Reused by 4 tools |
|
|
114
|
+
| `setDefaultBudgetSchema` | Line 447 | **MOVE** → `src/tools/schemas/inputs/budgetInputs.ts` |
|
|
115
|
+
| `diagnosticInfoSchema` | Lines 448-457 | **KEEP INLINE** - Server-specific config, tightly coupled to DiagnosticManager |
|
|
116
|
+
| `setOutputFormatSchema` | Lines 458-463 | **KEEP INLINE** - Server-specific config, tightly coupled to responseFormatter |
|
|
117
|
+
| `LooseObjectSchema` | Line 465 | **MOVE** → `src/tools/schemas/shared/commonOutputs.ts` - Already exists at that location, just import it |
|
|
118
|
+
|
|
119
|
+
#### Schemas That Must Stay Inline (Server-Owned)
|
|
120
|
+
|
|
121
|
+
These schemas are tightly coupled to server internals and should remain in YNABMCPServer.ts:
|
|
122
|
+
|
|
123
|
+
1. **`diagnosticInfoSchema`** - Controls DiagnosticManager options (memory, cache, delta flags)
|
|
124
|
+
2. **`setOutputFormatSchema`** - Controls responseFormatter configuration
|
|
125
|
+
|
|
126
|
+
#### Schemas Recommended for Migration
|
|
127
|
+
|
|
128
|
+
| Schema | Target Location | Rationale |
|
|
129
|
+
|--------|-----------------|-----------|
|
|
130
|
+
| `emptyObjectSchema` | `schemas/shared/commonInputs.ts` | Reusable pattern for no-input tools (list_budgets, get_default_budget, clear_cache, get_user) |
|
|
131
|
+
| `setDefaultBudgetSchema` | `schemas/inputs/budgetInputs.ts` | Domain-specific, belongs with budget schemas |
|
|
132
|
+
| `LooseObjectSchema` | Import from `schemas/shared/commonOutputs.ts` | Already exists; just needs import instead of inline definition |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Current Schema Module Structure
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
src/tools/schemas/
|
|
140
|
+
├── outputs/ # Output schemas (well-organized)
|
|
141
|
+
│ ├── index.ts # Central export
|
|
142
|
+
│ ├── utilityOutputs.ts
|
|
143
|
+
│ ├── budgetOutputs.ts
|
|
144
|
+
│ ├── accountOutputs.ts
|
|
145
|
+
│ ├── transactionOutputs.ts
|
|
146
|
+
│ ├── transactionMutationOutputs.ts
|
|
147
|
+
│ ├── categoryOutputs.ts
|
|
148
|
+
│ ├── payeeOutputs.ts
|
|
149
|
+
│ ├── monthOutputs.ts
|
|
150
|
+
│ ├── comparisonOutputs.ts
|
|
151
|
+
│ ├── reconciliationOutputs.ts
|
|
152
|
+
│ └── __tests__/ # Output schema tests
|
|
153
|
+
└── shared/
|
|
154
|
+
└── commonOutputs.ts # LooseObjectSchema already here
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Proposed Addition
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
src/tools/schemas/
|
|
161
|
+
├── inputs/ # NEW: Input schemas (to mirror outputs)
|
|
162
|
+
│ ├── index.ts # Central export
|
|
163
|
+
│ ├── budgetInputs.ts # GetBudgetSchema, SetDefaultBudgetSchema
|
|
164
|
+
│ └── commonInputs.ts # emptyObjectSchema
|
|
165
|
+
└── shared/
|
|
166
|
+
└── commonInputs.ts # Alternative location for emptyObjectSchema
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### Key Findings
|
|
172
|
+
|
|
173
|
+
1. **Output schemas are well-organized** - All centralized in `src/tools/schemas/outputs/` with proper exports
|
|
174
|
+
2. **Input schemas are scattered** - Defined in individual tool files (acceptable but inconsistent with outputs)
|
|
175
|
+
3. **5 inline schemas in server** - 3 should migrate, 2 must stay (server-specific)
|
|
176
|
+
4. **LooseObjectSchema duplication** - Defined inline but already exists in commonOutputs.ts
|
|
177
|
+
5. **13 tools use LooseObjectSchema** - All write operations, plus list_transactions and reconcile_account
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### Migration Priority
|
|
182
|
+
|
|
183
|
+
| Priority | Schema | Effort | Impact |
|
|
184
|
+
|----------|--------|--------|--------|
|
|
185
|
+
| **High** | `LooseObjectSchema` | Low | Remove duplication - just change to import |
|
|
186
|
+
| **Medium** | `emptyObjectSchema` | Low | Improve reusability across 4 tools |
|
|
187
|
+
| **Low** | `setDefaultBudgetSchema` | Low | Consistency with domain pattern |
|
|
188
|
+
| **None** | `diagnosticInfoSchema` | N/A | Keep inline - server-specific |
|
|
189
|
+
| **None** | `setOutputFormatSchema` | N/A | Keep inline - server-specific |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Agent cancelled
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Agent cancelled
|