@dizzlkheinz/ynab-mcpb 0.18.1 → 0.18.3
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/CHANGELOG.md +24 -0
- package/README.md +30 -136
- package/dist/bundle/index.cjs +40 -40
- package/dist/tools/deltaSupport.js +13 -0
- package/dist/tools/transactionTools.js +267 -50
- package/docs/technical/receipt-itemization-spec.md +181 -0
- package/package.json +1 -1
- package/src/tools/__tests__/transactionTools.integration.test.ts +11 -1
- package/src/tools/__tests__/transactionTools.test.ts +730 -0
- package/src/tools/deltaSupport.ts +18 -0
- package/src/tools/transactionTools.ts +404 -57
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.18.3] - 2025-12-24
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Receipt Itemization** - Truncate long item names to 150 characters in memos
|
|
15
|
+
- Itemized mode: truncates name with "..." suffix
|
|
16
|
+
- Collapsed mode: truncates name while preserving amount (e.g., "AAA... $10.00")
|
|
17
|
+
|
|
18
|
+
## [0.18.2] - 2025-12-24
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- **Smart Collapse Logic** - Intelligent receipt itemization based on item count
|
|
23
|
+
- Items >= 5: collapse into category-grouped subtransactions
|
|
24
|
+
- Big ticket items (>$50): always shown separately
|
|
25
|
+
- Returns/discounts: preserved as individual line items
|
|
26
|
+
- Tax allocation: proportional distribution across positive categories
|
|
27
|
+
|
|
28
|
+
## [0.18.1] - 2025-12-23
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **Reconciliation** - Remove import_id from reconciliation to enable bank matching
|
|
33
|
+
|
|
10
34
|
## [0.18.0] - 2025-12-21
|
|
11
35
|
|
|
12
36
|
### Added
|
package/README.md
CHANGED
|
@@ -1,33 +1,18 @@
|
|
|
1
1
|
# YNAB MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@dizzlkheinz/ynab-mcpb)
|
|
6
|
-
|
|
7
|
-
[](https://github.com/dizzlkheinz/ynab-mcpb/releases/latest)
|
|
8
|
-
[](https://github.com/dizzlkheinz/ynab-mcpb/actions/workflows/release.yml)
|
|
9
|
-
[](https://github.com/dizzlkheinz/ynab-mcpb/releases)
|
|
3
|
+
[](https://github.com/dizzlkheinz/ynab-mcpb/releases/latest)
|
|
4
|
+
[](https://www.npmjs.com/package/@dizzlkheinz/ynab-mcpb)
|
|
10
5
|
[](LICENSE)
|
|
11
|
-
[](https://prettier.io)
|
|
12
|
-
[](https://eslint.org)
|
|
13
|
-
[](#)
|
|
14
|
-
[](https://www.typescriptlang.org)
|
|
15
|
-
[](https://semver.org/)
|
|
16
|
-
[](https://github.com/dizzlkheinz/ynab-mcpb/issues)
|
|
17
|
-
[](https://github.com/dizzlkheinz/ynab-mcpb/pulls)
|
|
18
6
|
|
|
19
|
-
Connect your YNAB budget to Claude Desktop
|
|
7
|
+
Connect your YNAB budget to Claude Desktop (or any MCP client) and manage your finances with natural language.
|
|
8
|
+
|
|
9
|
+
### Highlights
|
|
20
10
|
|
|
21
|
-
|
|
11
|
+
**Receipt Itemization** — Paste a receipt, get split transactions with tax allocated across items. No more manual entry for Costco runs.
|
|
22
12
|
|
|
23
|
-
|
|
24
|
-
- **Manage Transactions**: Create, update, or delete transactions without opening YNAB
|
|
25
|
-
- **Split Receipts**: Create itemized transactions from receipts with automatic tax allocation across items
|
|
26
|
-
- **Reconcile Accounts**: Import and compare bank statements to find missing transactions
|
|
27
|
-
- **Analyze Spending**: Get insights into spending patterns and budget performance
|
|
28
|
-
- **Set Budgets**: Adjust category budgets and move money between categories
|
|
13
|
+
**Bank Reconciliation** _(beta)_ — Import a CSV from your bank, fuzzy-match against YNAB, find discrepancies. Presets for TD, RBC, Scotiabank, Wealthsimple, Tangerine. _This is the most ambitious feature—it works well but has rough edges. [Bug reports welcome!](https://github.com/dizzlkheinz/ynab-mcpb/issues)_
|
|
29
14
|
|
|
30
|
-
|
|
15
|
+
**Everything Else** — Check balances, create transactions, analyze spending, adjust budgets. Just ask.
|
|
31
16
|
|
|
32
17
|
## Quick Start
|
|
33
18
|
|
|
@@ -118,8 +103,6 @@ For any MCP-compatible client, configure the server with:
|
|
|
118
103
|
|
|
119
104
|
- `YNAB_ACCESS_TOKEN`: Your YNAB Personal Access Token
|
|
120
105
|
|
|
121
|
-
Refer to your MCP client's documentation for specific configuration steps.
|
|
122
|
-
|
|
123
106
|
</details>
|
|
124
107
|
|
|
125
108
|
### Step 3: Start Using It
|
|
@@ -133,134 +116,45 @@ Ask your AI assistant questions like:
|
|
|
133
116
|
|
|
134
117
|
That's it! You're ready to manage your budget with AI.
|
|
135
118
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Most users won't need to change these settings, but they're available if you need them:
|
|
139
|
-
|
|
140
|
-
**Export Location:**
|
|
141
|
-
|
|
142
|
-
- `YNAB_EXPORT_PATH` — Where to save exported transaction files (defaults to Downloads folder)
|
|
143
|
-
|
|
144
|
-
Example:
|
|
145
|
-
|
|
146
|
-
```json
|
|
147
|
-
{
|
|
148
|
-
"mcpServers": {
|
|
149
|
-
"ynab": {
|
|
150
|
-
"command": "npx",
|
|
151
|
-
"args": ["-y", "@dizzlkheinz/ynab-mcpb@latest"],
|
|
152
|
-
"env": {
|
|
153
|
-
"YNAB_ACCESS_TOKEN": "your-token-here",
|
|
154
|
-
"YNAB_EXPORT_PATH": "C:\\Users\\YourName\\Documents"
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
For advanced configuration options (caching, output formatting), see the `.env.example` file in the repository.
|
|
162
|
-
|
|
163
|
-
## What's Available
|
|
164
|
-
|
|
165
|
-
The server gives Claude access to 29 tools organized by function. You don't need to know the tool names - just ask Claude in natural language and it will use the right tools.
|
|
166
|
-
|
|
167
|
-
**Budget & Account Info**
|
|
168
|
-
|
|
169
|
-
- View budgets, accounts, categories, payees
|
|
170
|
-
- Check balances and category budgets
|
|
171
|
-
- See monthly spending summaries
|
|
172
|
-
|
|
173
|
-
**Transactions**
|
|
174
|
-
|
|
175
|
-
- List, create, update, or delete transactions
|
|
176
|
-
- Import and reconcile bank statements
|
|
177
|
-
- Export transactions to files
|
|
178
|
-
- Create split transactions from receipts
|
|
179
|
-
|
|
180
|
-
**Analysis**
|
|
119
|
+
<details>
|
|
120
|
+
<summary><b>Optional Configuration</b></summary>
|
|
181
121
|
|
|
182
|
-
-
|
|
183
|
-
- Find missing transactions
|
|
184
|
-
- Track budget performance
|
|
122
|
+
- `YNAB_EXPORT_PATH` — Directory for exported files (default: Downloads)
|
|
185
123
|
|
|
186
|
-
|
|
124
|
+
See `.env.example` for caching and output options.
|
|
187
125
|
|
|
188
|
-
|
|
189
|
-
- Static resources: `ynab://budgets`, `ynab://user`
|
|
126
|
+
</details>
|
|
190
127
|
|
|
191
|
-
|
|
128
|
+
## Available Tools
|
|
192
129
|
|
|
193
|
-
|
|
130
|
+
29 tools for budgets, accounts, transactions, categories, payees, and analysis. Just ask in natural language.
|
|
194
131
|
|
|
195
|
-
|
|
196
|
-
- **Progress Notifications**: Long-running operations (notably reconciliation) emit progress updates when the client provides a progress token.
|
|
132
|
+
For the complete list, see the [API Reference](docs/reference/API.md).
|
|
197
133
|
|
|
198
134
|
## Need Help?
|
|
199
135
|
|
|
200
|
-
|
|
201
|
-
- **[GitHub Issues](https://github.com/dizzlkheinz/ynab-mcpb/issues)** - Report bugs or request features
|
|
202
|
-
|
|
203
|
-
## For Developers
|
|
204
|
-
|
|
205
|
-
Want to contribute or build from source?
|
|
206
|
-
|
|
207
|
-
### Development Setup
|
|
208
|
-
|
|
209
|
-
1. **Clone the repository:**
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
git clone https://github.com/dizzlkheinz/ynab-mcpb.git
|
|
213
|
-
cd ynab-mcpb
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
2. **Install dependencies:**
|
|
136
|
+
[API Reference](docs/reference/API.md) · [Issues](https://github.com/dizzlkheinz/ynab-mcpb/issues)
|
|
217
137
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
3. **Create your environment file:**
|
|
223
|
-
Copy the example environment file to a new `.env` file:
|
|
224
|
-
|
|
225
|
-
```bash
|
|
226
|
-
cp .env.example .env
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
Open the `.env` file and add your YNAB Personal Access Token:
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
YNAB_ACCESS_TOKEN="your-token-here"
|
|
233
|
-
```
|
|
138
|
+
<details>
|
|
139
|
+
<summary><b>For Developers</b></summary>
|
|
234
140
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/dizzlkheinz/ynab-mcpb.git && cd ynab-mcpb
|
|
143
|
+
npm install
|
|
144
|
+
cp .env.example .env # add your YNAB_ACCESS_TOKEN
|
|
145
|
+
npm run build && npm test
|
|
146
|
+
```
|
|
240
147
|
|
|
241
|
-
|
|
148
|
+
See `CLAUDE.md` for architecture details.
|
|
242
149
|
|
|
243
|
-
|
|
150
|
+
</details>
|
|
244
151
|
|
|
245
152
|
## Contributing
|
|
246
153
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
1. [Open an issue](https://github.com/dizzlkheinz/ynab-mcpb/issues) to discuss your idea
|
|
250
|
-
2. Fork the repository and make your changes
|
|
251
|
-
3. Add tests for new features
|
|
252
|
-
4. Submit a pull request
|
|
154
|
+
**Bug reports are especially valuable** — particularly for the reconciliation tool. If your bank's CSV doesn't parse right or matching behaves unexpectedly, [open an issue](https://github.com/dizzlkheinz/ynab-mcpb/issues) with sample data (anonymized) and I'll fix it.
|
|
253
155
|
|
|
254
|
-
See `CLAUDE.md` for
|
|
156
|
+
PRs welcome too. See `CLAUDE.md` for architecture.
|
|
255
157
|
|
|
256
158
|
## License
|
|
257
159
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
Built with:
|
|
263
|
-
|
|
264
|
-
- [YNAB API](https://api.youneedabudget.com/) - Official YNAB REST API
|
|
265
|
-
- [Model Context Protocol](https://modelcontextprotocol.io/) - AI integration standard
|
|
266
|
-
- [Claude Desktop](https://claude.ai/download) - AI assistant with MCP support
|
|
160
|
+
[AGPL-3.0](LICENSE) — Free to use; derivative works must be open source.
|