@dizzlkheinz/ynab-mcpb 0.16.1 → 0.17.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.
Files changed (169) hide show
  1. package/.env.example +33 -33
  2. package/.github/workflows/ci-tests.yml +45 -45
  3. package/.github/workflows/claude-code-review.yml +57 -57
  4. package/.github/workflows/claude.yml +50 -50
  5. package/.github/workflows/full-integration.yml +22 -22
  6. package/.github/workflows/publish.yml +11 -2
  7. package/CLAUDE.md +33 -47
  8. package/README.md +8 -10
  9. package/dist/bundle/index.cjs +54 -54
  10. package/dist/server/YNABMCPServer.d.ts +120 -54
  11. package/dist/server/YNABMCPServer.js +28 -381
  12. package/dist/server/config.d.ts +2 -0
  13. package/dist/server/config.js +1 -0
  14. package/dist/server/securityMiddleware.d.ts +37 -8
  15. package/dist/tools/accountTools.d.ts +2 -0
  16. package/dist/tools/accountTools.js +45 -0
  17. package/dist/tools/adapters.d.ts +12 -0
  18. package/dist/tools/adapters.js +25 -0
  19. package/dist/tools/budgetTools.d.ts +2 -0
  20. package/dist/tools/budgetTools.js +30 -0
  21. package/dist/tools/categoryTools.d.ts +2 -0
  22. package/dist/tools/categoryTools.js +45 -0
  23. package/dist/tools/monthTools.d.ts +2 -0
  24. package/dist/tools/monthTools.js +32 -0
  25. package/dist/tools/payeeTools.d.ts +2 -0
  26. package/dist/tools/payeeTools.js +32 -0
  27. package/dist/tools/reconciliation/index.d.ts +2 -0
  28. package/dist/tools/reconciliation/index.js +33 -0
  29. package/dist/tools/schemas/common.d.ts +3 -0
  30. package/dist/tools/schemas/common.js +3 -0
  31. package/dist/tools/schemas/outputs/comparisonOutputs.d.ts +1 -1
  32. package/dist/tools/schemas/outputs/index.d.ts +2 -2
  33. package/dist/tools/schemas/outputs/index.js +2 -2
  34. package/dist/tools/schemas/outputs/utilityOutputs.d.ts +0 -15
  35. package/dist/tools/schemas/outputs/utilityOutputs.js +0 -9
  36. package/dist/tools/transactionTools.d.ts +2 -0
  37. package/dist/tools/transactionTools.js +124 -0
  38. package/dist/tools/utilityTools.d.ts +2 -7
  39. package/dist/tools/utilityTools.js +19 -38
  40. package/dist/types/index.d.ts +1 -0
  41. package/dist/types/toolRegistration.d.ts +27 -0
  42. package/dist/types/toolRegistration.js +1 -0
  43. package/docs/maintainers/npm-publishing.md +27 -0
  44. package/docs/reference/API.md +15 -70
  45. package/docs/technical/reconciliation-system-architecture.md +2251 -2251
  46. package/package.json +6 -6
  47. package/scripts/analyze-bundle.mjs +41 -41
  48. package/scripts/generate-mcpb.ps1 +95 -95
  49. package/scripts/run-domain-integration-tests.js +4 -1
  50. package/scripts/watch-and-restart.ps1 +49 -49
  51. package/src/__tests__/comprehensive.integration.test.ts +0 -28
  52. package/src/__tests__/performance.test.ts +4 -12
  53. package/src/__tests__/setup.ts +45 -14
  54. package/src/__tests__/workflows.e2e.test.ts +1 -51
  55. package/src/server/YNABMCPServer.ts +33 -519
  56. package/src/server/__tests__/YNABMCPServer.test.ts +0 -1
  57. package/src/server/__tests__/toolRegistration.test.ts +236 -0
  58. package/src/server/config.ts +1 -0
  59. package/src/tools/__tests__/adapters.test.ts +113 -0
  60. package/src/tools/__tests__/transactionTools.integration.test.ts +63 -3
  61. package/src/tools/__tests__/utilityTools.integration.test.ts +1 -85
  62. package/src/tools/__tests__/utilityTools.test.ts +1 -123
  63. package/src/tools/accountTools.ts +53 -0
  64. package/src/tools/adapters.ts +74 -0
  65. package/src/tools/budgetTools.ts +37 -0
  66. package/src/tools/categoryTools.ts +53 -0
  67. package/src/tools/monthTools.ts +39 -0
  68. package/src/tools/payeeTools.ts +39 -0
  69. package/src/tools/reconciliation/index.ts +45 -0
  70. package/src/tools/schemas/common.ts +18 -0
  71. package/src/tools/schemas/outputs/index.ts +0 -3
  72. package/src/tools/schemas/outputs/utilityOutputs.ts +2 -43
  73. package/src/tools/toolCategories.ts +0 -1
  74. package/src/tools/transactionTools.ts +140 -0
  75. package/src/tools/utilityTools.ts +24 -55
  76. package/src/types/index.ts +3 -0
  77. package/src/types/toolRegistration.ts +88 -0
  78. package/vitest.config.ts +2 -1
  79. package/.chunkhound.json +0 -11
  80. package/.code/agents/01a13ef4-3f23-4f52-b33b-3585b73cfa60/error.txt +0 -3
  81. package/.code/agents/084fd32f-e298-4728-9103-a78d7dc39613/error.txt +0 -3
  82. package/.code/agents/0fed51e1-a943-4b97-a2a8-a6f0f27c844d/status.txt +0 -1
  83. package/.code/agents/1059b6bd-5ccd-4d83-a12c-7c9d89137399/error.txt +0 -5
  84. package/.code/agents/110/exec-call_F9BDNG7JfxKkq7Vc8ESAvdft.txt +0 -1569
  85. package/.code/agents/11ebcef3-b13f-4e44-ad80-d94a866804b7/error.txt +0 -3
  86. package/.code/agents/1398/exec-call_CjItcWMU1G6JoPshX62QvpaR.txt +0 -2832
  87. package/.code/agents/1398/exec-call_SUVq2ivmONQ5LMCmd7ngmOqr.txt +0 -2709
  88. package/.code/agents/1398/exec-call_SdNY4NOffdcC5pRYjVXHjPCK.txt +0 -2832
  89. package/.code/agents/1398/exec-call_qblJo9et1gsFFB63TtLOiji2.txt +0 -2832
  90. package/.code/agents/1398/exec-call_zaRrzlGz7GJcNzVfkAmML7Zg.txt +0 -2709
  91. package/.code/agents/171834fd-5905-42fc-bbcc-2c755145b0fc/status.txt +0 -1
  92. package/.code/agents/1724/exec-call_HvHQe0w5CCG3T7Q3ULT6MO3g.txt +0 -5217
  93. package/.code/agents/1724/exec-call_QwUNESVzfxxk78K1frh1Vahb.txt +0 -2594
  94. package/.code/agents/1724/exec-call_aJ1Xwz71XmIpD4SBxSHERzLe.txt +0 -2594
  95. package/.code/agents/1d7d7ab7-7473-4b69-8b97-6e914f56056a/result.txt +0 -231
  96. package/.code/agents/210/exec-call_0tQCsKNJ1WTuIchb8wlcFJpW.txt +0 -2590
  97. package/.code/agents/210/exec-call_8ZlY9cUc8Ft1twi4ch8UJ6IN.txt +0 -5195
  98. package/.code/agents/2188/exec-call_5HqayBxIteJtoI8oPTiLWgvJ.txt +0 -286
  99. package/.code/agents/2188/exec-call_XRbBKBq3adZe6dcppAvQtM7G.txt +0 -218
  100. package/.code/agents/2188/exec-call_ehA0SjpYtrUi6GJXmibLjp4i.txt +0 -180
  101. package/.code/agents/21902821-ecaf-4759-bb9d-222b90921af5/error.txt +0 -3
  102. package/.code/agents/232073be-aa0e-46da-b478-5b64dbf03cf5/status.txt +0 -1
  103. package/.code/agents/234ff534-2336-4771-a8d9-aa04421a63be/result.txt +0 -747
  104. package/.code/agents/253e2695-dc36-4022-b436-27655e0fc6c7/status.txt +0 -1
  105. package/.code/agents/2583/exec-call_M59I4eDjpjlBIWBiSxyS0YlJ.txt +0 -2594
  106. package/.code/agents/2583/exec-call_usLRGh7OhVHtsRBL4iUwRhjq.txt +0 -2594
  107. package/.code/agents/292aa3ff-dbab-470f-97c9-e7e8fd65e0db/result.txt +0 -144
  108. package/.code/agents/3134/exec-call_IgCAMGx19lWfuo8zfYIt5FFC.txt +0 -416
  109. package/.code/agents/3134/exec-call_IxvLR2Oo7kba2QTsI1gHVko8.txt +0 -2590
  110. package/.code/agents/3134/exec-call_jYvc8hksZChSiysbzKjl2ZbB.txt +0 -2590
  111. package/.code/agents/329/exec-call_4QdP3SfSO7HGPCwVcqZIth6s.txt +0 -2590
  112. package/.code/agents/472/exec-call_4AxzEEcWwkKhpqRB3bE8Ha4L.txt +0 -790
  113. package/.code/agents/472/exec-call_CB3LPYQA8QIZRi8I6kj4J17A.txt +0 -766
  114. package/.code/agents/472/exec-call_YeoUWvaFoktay2nqVUsa9KKX.txt +0 -790
  115. package/.code/agents/472/exec-call_jPWgKVquBBXTg0T3Lks5ZfkK.txt +0 -2594
  116. package/.code/agents/472/exec-call_qBkvunpGBDEHph2jPmTwtcsb.txt +0 -1000
  117. package/.code/agents/472/exec-call_v0ffRV1p0kTckBmJPzzHAEy0.txt +0 -3489
  118. package/.code/agents/472/exec-call_xAX5FXqWIlk02d9WubHbHWh8.txt +0 -766
  119. package/.code/agents/5346/exec-call_9q0muXUuLaucwEqI51Pt7idT.txt +0 -2594
  120. package/.code/agents/5346/exec-call_B2el3B79rVkq9LhWTI2VYlz7.txt +0 -2456
  121. package/.code/agents/5346/exec-call_BfX08f02qkZI9uJD5dvCvuoj.txt +0 -2594
  122. package/.code/agents/543328d0-61d6-4fd1-a723-bb168656e2e2/error.txt +0 -18
  123. package/.code/agents/5580c02c-1383-4d18-9cbd-cc8a06e3408d/result.txt +0 -48
  124. package/.code/agents/60ce1a22-5126-44b2-b977-1d5b56142a7b/status.txt +0 -1
  125. package/.code/agents/6215d9db-7fa9-4429-aeec-3835c3212291/error.txt +0 -1
  126. package/.code/agents/6743db55-30e5-4b4e-9366-a8214fc7f714/error.txt +0 -1
  127. package/.code/agents/6bf9591b-b9c9-422c-b0a5-e968c7d8422a/status.txt +0 -1
  128. package/.code/agents/7/exec-call_eww3GfdEiJZx61sJEQ9wNmt3.txt +0 -1271
  129. package/.code/agents/70/exec-call_owUtDMYiVgqDf8vsz1i32PFf.txt +0 -1570
  130. package/.code/agents/8/exec-call_UtrjAcLbhYLatxR4O97fZgnm.txt +0 -2590
  131. package/.code/agents/82490bc9-f34e-4b1b-8a8e-bccc2e6254f5/error.txt +0 -3
  132. package/.code/agents/841/exec-call_7nTNhSBCNjTDUIJv7py6CepO.txt +0 -3299
  133. package/.code/agents/841/exec-call_TLI0yUdUijuUAvI4o3DXEvHO.txt +0 -3299
  134. package/.code/agents/9/exec-call_XaABQT1hIlRpnKZ2uyBMWsTC.txt +0 -1882
  135. package/.code/agents/941/exec-call_GuGHRx7NNXWIDAnxUG2NEWPa.txt +0 -2594
  136. package/.code/agents/95d9fbab-19a2-48af-83f9-c792566a347f/error.txt +0 -1
  137. package/.code/agents/b0098cb8-cb32-4ada-9bc4-37c587518896/result.txt +0 -170
  138. package/.code/agents/b4fe59a4-81df-42e2-a112-0153e504faca/error.txt +0 -1
  139. package/.code/agents/bf4ce152-f623-49d7-aa52-c18631625c3c/error.txt +0 -3
  140. package/.code/agents/d7d1db75-d7eb-468e-adea-4ef4d916d187/status.txt +0 -1
  141. package/.code/agents/e2baa9c8-bac3-49e3-a39d-024333e6a990/status.txt +0 -1
  142. package/.code/agents/e350b8c3-8483-408c-b2bb-94515f492a11/error.txt +0 -3
  143. package/.code/agents/e63f9919-719f-4ad0-bccf-01b1a596e1e9/status.txt +0 -1
  144. package/.code/agents/e71695a8-3044-478d-8f12-ed13d02884c7/status.txt +0 -1
  145. package/.code/agents/f95b7464-3e25-4897-b153-c8dfd63fd605/error.txt +0 -5
  146. package/.code/agents/fa3c5ddf-cdf7-47a2-930a-b806c6363689/status.txt +0 -1
  147. package/.github/workflows/pr-description-check.yml +0 -88
  148. package/AGENTS.md +0 -36
  149. package/NUL +0 -1
  150. package/docs/README.md +0 -72
  151. package/docs/getting-started/CONFIGURATION.md +0 -175
  152. package/docs/getting-started/INSTALLATION.md +0 -333
  153. package/docs/getting-started/QUICKSTART.md +0 -282
  154. package/docs/guides/ARCHITECTURE.md +0 -533
  155. package/docs/guides/DEPLOYMENT.md +0 -189
  156. package/docs/guides/INTEGRATION_TESTING.md +0 -730
  157. package/docs/guides/TESTING.md +0 -591
  158. package/docs/reconciliation-flow.md +0 -83
  159. package/docs/reference/EXAMPLES.md +0 -946
  160. package/docs/reference/TOOLS.md +0 -348
  161. package/docs/reference/TROUBLESHOOTING.md +0 -481
  162. package/package.json.tmp +0 -105
  163. package/temp-recon.ts +0 -126
  164. package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_09-04-53.json +0 -23
  165. package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_10-37-42.json +0 -23
  166. package/test-exports/ynab_account_e9ddc2a6_minimal_4items_2025-11-19_09-02-09.json +0 -44
  167. package/test-exports/ynab_account_e9ddc2a6_minimal_6items_2025-11-19_10-37-52.json +0 -58
  168. package/test-exports/ynab_since_2025-10-16_account_53298e13_238items_2025-11-28_13-46-20.json +0 -3662
  169. package/test-exports/ynab_since_2025-11-01_account_4c18e9f0_minimal_14items_2025-11-16_10-07-10.json +0 -115
@@ -1,333 +0,0 @@
1
- # Installation Guide
2
-
3
- Complete installation instructions for the YNAB MCP Server.
4
-
5
- ## Table of Contents
6
-
7
- - [Prerequisites](#prerequisites)
8
- - [Getting Your YNAB Access Token](#getting-your-ynab-access-token)
9
- - [Installation Options](#installation-options)
10
- - [Option A: From Source](#option-a-from-source)
11
- - [Option B: From Release MCPB](#option-b-from-release-mcpb)
12
- - [Claude Desktop Integration](#claude-desktop-integration)
13
- - [Verification](#verification)
14
- - [Troubleshooting](#troubleshooting)
15
-
16
- ## Prerequisites
17
-
18
- Before installing, ensure you have:
19
-
20
- - **Node.js**: Version 18.0.0 or higher ([Download](https://nodejs.org/))
21
- - **npm**: Version 8.0.0 or higher (included with Node.js)
22
- - **YNAB Account**: Active YNAB subscription with budget data
23
- - **YNAB Personal Access Token**: From YNAB developer settings
24
- - **Claude Desktop** (optional): For Claude Desktop integration
25
-
26
- ### Verify Prerequisites
27
-
28
- ```bash
29
- # Check Node.js version (should be 18+)
30
- node --version
31
-
32
- # Check npm version (should be 8+)
33
- npm --version
34
- ```
35
-
36
- ## Getting Your YNAB Access Token
37
-
38
- You need a YNAB Personal Access Token to authenticate with the YNAB API:
39
-
40
- 1. Log in to [YNAB Web App](https://app.youneedabudget.com)
41
- 2. Navigate to **Account Settings** → **Developer Settings**
42
- 3. Click **"New Token"**
43
- 4. Provide a descriptive name (e.g., "MCP Server" or "Claude Desktop")
44
- 5. **Copy the generated token immediately** (it's only shown once)
45
- 6. Store it securely - you'll need it for configuration
46
-
47
- **Important**: Treat your access token like a password. Never commit it to version control or share it publicly.
48
-
49
- ## Installation Options
50
-
51
- ### Option A: From Source
52
-
53
- Install and build the project from source code.
54
-
55
- #### 1. Clone the Repository
56
-
57
- ```bash
58
- git clone https://github.com/dizzlkheinz/mcp-for-ynab.git
59
- cd mcp-for-ynab
60
- ```
61
-
62
- #### 2. Install Dependencies
63
-
64
- ```bash
65
- npm install
66
- ```
67
-
68
- #### 3. Configure Environment
69
-
70
- Create a `.env` file in the project root:
71
-
72
- ```bash
73
- cp .env.example .env
74
- ```
75
-
76
- Edit `.env` and add your YNAB access token:
77
-
78
- ```env
79
- # Required
80
- YNAB_ACCESS_TOKEN=your_token_here
81
-
82
- # Optional Configuration
83
- YNAB_MCP_MINIFY_OUTPUT=true
84
- YNAB_MCP_PRETTY_SPACES=2
85
-
86
- # Enhanced Caching (v0.8.x)
87
- YNAB_MCP_CACHE_MAX_ENTRIES=1000
88
- YNAB_MCP_CACHE_DEFAULT_TTL_MS=1800000
89
- YNAB_MCP_CACHE_STALE_MS=120000
90
-
91
- # Export Settings
92
- YNAB_EXPORT_PATH=~/Downloads
93
- ```
94
-
95
- #### 4. Build the Project
96
-
97
- ```bash
98
- npm run build
99
- ```
100
-
101
- This will:
102
- - Compile TypeScript to JavaScript
103
- - Run linting and formatting checks
104
- - Generate the bundled output in `dist/`
105
-
106
- #### 5. Run Tests (Optional but Recommended)
107
-
108
- ```bash
109
- npm test
110
- ```
111
-
112
- #### 6. Start the Server
113
-
114
- ```bash
115
- npm start
116
- ```
117
-
118
- The server should start successfully and be ready to accept MCP connections.
119
-
120
- ### Option B: From Release MCPB
121
-
122
- Install a pre-built MCPB package from GitHub Releases (recommended for most users).
123
-
124
- #### 1. Download the MCPB
125
-
126
- Visit the [Latest Release](https://github.com/dizzlkheinz/mcp-for-ynab/releases/latest) and download the `.mcpb` file.
127
-
128
- #### 2. Install in Claude Desktop
129
-
130
- 1. Open Claude Desktop
131
- 2. Drag and drop the `.mcpb` file into the Claude Desktop window
132
- 3. Follow the installation prompts
133
- 4. The extension will be installed automatically
134
-
135
- #### 3. Configure the Extension
136
-
137
- 1. Open Claude Desktop Settings
138
- 2. Navigate to Extensions or MCP Servers
139
- 3. Find "ynab-mcp-server" in the list
140
- 4. Click settings/configure
141
- 5. Set `YNAB_ACCESS_TOKEN` to your YNAB Personal Access Token
142
- 6. Optionally configure other environment variables
143
-
144
- #### 4. Restart Claude Desktop
145
-
146
- Close and reopen Claude Desktop completely for the changes to take effect.
147
-
148
- ## Claude Desktop Integration
149
-
150
- ### Configure MCP Server (Option A - From Source)
151
-
152
- If you built from source, configure Claude Desktop to use the local installation:
153
-
154
- 1. Open Claude Desktop Settings
155
- 2. Navigate to **"Extensions"** or **"MCP Servers"** section
156
- 3. Click **"Add New Server"**
157
- 4. Configure with these settings:
158
-
159
- ```json
160
- {
161
- "name": "ynab-mcp-server",
162
- "command": "node",
163
- "args": ["dist/index.js"],
164
- "cwd": "/absolute/path/to/ynab-mcp-mcpb",
165
- "env": {
166
- "YNAB_ACCESS_TOKEN": "your_token_here"
167
- }
168
- }
169
- ```
170
-
171
- **Important**: Replace `/absolute/path/to/ynab-mcp-mcpb` with the actual absolute path to your installation directory.
172
-
173
- ### Verify Configuration
174
-
175
- After configuration, verify in Claude Desktop:
176
-
177
- 1. Check that "ynab-mcp-server" appears in the connected servers list
178
- 2. Look for a green connection indicator
179
- 3. No error messages in the logs
180
-
181
- ## Verification
182
-
183
- ### Verify Token and Connectivity
184
-
185
- Test the installation with these steps:
186
-
187
- #### 1. Check Diagnostic Info
188
-
189
- Ask Claude (if using Claude Desktop):
190
-
191
- ```
192
- Can you run the diagnostic_info tool for the YNAB MCP server?
193
- ```
194
-
195
- Expected response should include:
196
- - `authenticated: true`
197
- - User information
198
- - Server version
199
- - Cache configuration
200
-
201
- #### 2. Test Basic Functionality
202
-
203
- Ask Claude:
204
-
205
- ```
206
- Can you list my YNAB budgets using the list_budgets tool?
207
- ```
208
-
209
- Expected response should show your budget(s) with names and IDs.
210
-
211
- #### 3. Alternative: Command Line Testing
212
-
213
- If not using Claude Desktop, test directly:
214
-
215
- ```bash
216
- # Start the server
217
- npm start
218
-
219
- # In another terminal, send a test request
220
- # (requires MCP client setup)
221
- ```
222
-
223
- ### Success Indicators
224
-
225
- ✅ Server starts without errors
226
- ✅ Authentication shows as successful
227
- ✅ Budget listing returns your budgets
228
- ✅ No connection errors in logs
229
-
230
- ## Troubleshooting
231
-
232
- ### "Invalid or expired token"
233
-
234
- **Problem**: Authentication fails with invalid token error.
235
-
236
- **Solutions**:
237
- - Verify token is correctly copied (no extra spaces)
238
- - Check token in YNAB Developer Settings
239
- - Generate a new token if expired
240
- - Ensure token is set in correct location (.env or Claude Desktop settings)
241
- - Restart the server/Claude Desktop after updating
242
-
243
- ### "Command not found: node"
244
-
245
- **Problem**: Node.js is not installed or not in PATH.
246
-
247
- **Solutions**:
248
- - Install Node.js 18+ from [nodejs.org](https://nodejs.org/)
249
- - Verify installation with `node --version`
250
- - Restart terminal/command prompt after installation
251
-
252
- ### "Cannot find module" errors
253
-
254
- **Problem**: Dependencies not installed or build not completed.
255
-
256
- **Solutions**:
257
- ```bash
258
- # Reinstall dependencies
259
- rm -rf node_modules package-lock.json
260
- npm install
261
-
262
- # Rebuild the project
263
- npm run build
264
- ```
265
-
266
- ### "Port already in use"
267
-
268
- **Problem**: Another instance is already running.
269
-
270
- **Solutions**:
271
- ```bash
272
- # Find and stop the existing process
273
- # On Unix/Mac:
274
- ps aux | grep "ynab-mcp"
275
- kill <process_id>
276
-
277
- # On Windows:
278
- tasklist | findstr "node"
279
- taskkill /PID <process_id> /F
280
- ```
281
-
282
- ### Claude Desktop Connection Issues
283
-
284
- **Problem**: Claude Desktop can't connect to the server.
285
-
286
- **Solutions**:
287
- - Verify `dist/index.js` exists (run `npm run build` if not)
288
- - Check working directory path is absolute (not relative)
289
- - Ensure YNAB_ACCESS_TOKEN is set in extension settings
290
- - Check Claude Desktop logs for specific error messages
291
- - Restart Claude Desktop completely
292
- - Try removing and re-adding the server configuration
293
-
294
- ### Build Failures
295
-
296
- **Problem**: TypeScript compilation fails.
297
-
298
- **Solutions**:
299
- ```bash
300
- # Check for TypeScript errors
301
- npm run type-check
302
-
303
- # View detailed build output
304
- npm run build -- --verbose
305
-
306
- # Clear cache and rebuild
307
- rm -rf dist/
308
- npm run build
309
- ```
310
-
311
- ## Next Steps
312
-
313
- After successful installation:
314
-
315
- 1. **Quick Start**: Follow the [Quick Start Guide](QUICKSTART.md) to test basic functionality
316
- 2. **Configuration**: Review [Configuration Guide](CONFIGURATION.md) for advanced settings
317
- 3. **Development**: Read the [Development Guide](../guides/DEVELOPMENT.md) for usage patterns
318
- 4. **API Reference**: Explore available tools in the [API Reference](../reference/API.md)
319
-
320
- ## Getting Help
321
-
322
- If you encounter issues not covered here:
323
-
324
- - Check the [Troubleshooting Guide](../reference/TROUBLESHOOTING.md)
325
- - Review [GitHub Issues](https://github.com/dizzlkheinz/mcp-for-ynab/issues)
326
- - Open a [new issue](https://github.com/dizzlkheinz/mcp-for-ynab/issues/new) with:
327
- - Your environment (OS, Node version, Claude Desktop version)
328
- - Error messages
329
- - Steps to reproduce
330
-
331
- ---
332
-
333
- **Navigation**: [← Back to Getting Started](../README.md#getting-started) | [Configuration Guide →](CONFIGURATION.md) | [Quick Start →](QUICKSTART.md)
@@ -1,282 +0,0 @@
1
- # Quick Start: Testing YNAB MCP Server with Claude Desktop
2
-
3
- This guide provides the fastest path to test the YNAB MCP server with Claude Desktop integration.
4
-
5
- ## Prerequisites
6
-
7
- 1. **YNAB Account**: Active YNAB subscription with transaction data
8
- 2. **YNAB Token**: Personal Access Token from [YNAB developer settings](https://app.youneedabudget.com/settings/developer)
9
- 3. **Node.js**: Version 18.0.0 or higher (`node --version`)
10
- 4. **Claude Desktop**: Latest version installed
11
-
12
- ## Step 1: Environment Setup
13
-
14
- 1. Install dependencies with `npm install` if you haven’t already.
15
- 2. Create or update a `.env` file with useful testing values:
16
- - `LOG_LEVEL=debug` (surface detailed logs while validating)
17
- - `YNAB_EXPORT_PATH=./test-exports` (keep test exports in a disposable folder)
18
-
19
- ## Step 2: Build and Test
20
-
21
- ```bash
22
- # Build the project
23
- npm run build
24
-
25
- # Run tests to verify everything works
26
- npm test
27
-
28
- # Quick test of the server locally (optional)
29
- npm run start
30
- # Press Ctrl+C to stop after verifying it starts
31
- ```
32
-
33
- **Expected Results**:
34
-
35
- - Build completes without TypeScript errors
36
- - All tests pass
37
- - Server starts without connection errors
38
-
39
- ## Step 3: Claude Desktop Integration
40
-
41
- ### Option A: Local Development Server (Recommended for Testing)
42
-
43
- 1. **Configure Claude Desktop**:
44
- - Open Claude Desktop Settings
45
- - Navigate to "Extensions" or "MCP Servers" section
46
- - Add new server with these settings:
47
- - **Name**: `ynab-mcp-server`
48
- - **Command**: `node`
49
- - **Arguments**: `["dist/index.js"]`
50
- - **Working Directory**: `/path/to/ynab-mcp-mcpb`
51
- - **Environment Variables**:
52
- ```json
53
- {
54
- "YNAB_ACCESS_TOKEN": "your_actual_token_here"
55
- }
56
- ```
57
-
58
- 2. **Restart Claude Desktop** completely (close and reopen)
59
-
60
- ### Option B: MCPB Package (Alternative)
61
-
62
- ```bash
63
- # Build MCPB package
64
- npm run package:mcpb
65
-
66
- # The .mcpb file will be created in dist/
67
- # Drag and drop it into Claude Desktop
68
- # Configure YNAB_ACCESS_TOKEN in extension settings
69
- ```
70
-
71
- ## Step 4: Basic Testing (2 minutes)
72
-
73
- ### 4.1 Verify Connection
74
-
75
- **Ask Claude**:
76
-
77
- ```
78
- Can you run the diagnostic_info tool for the YNAB MCP server?
79
- ```
80
-
81
- **Expected**: Should return server status, cache configuration, and authentication details.
82
-
83
- ### 4.2 Test Budget Access
84
-
85
- **Ask Claude**:
86
-
87
- ```
88
- Can you list my YNAB budgets using the list_budgets tool?
89
- ```
90
-
91
- **Expected**: Should return your budget(s) with names and IDs.
92
-
93
- ### 4.3 Set Default Budget
94
-
95
- **Ask Claude**:
96
-
97
- ```
98
- Set my default budget to [your_budget_name] using the set_default_budget tool.
99
- ```
100
-
101
- **Expected**: Should confirm success and mention cache warming.
102
-
103
- ### 4.4 Test Cache Performance
104
-
105
- **Ask Claude**:
106
-
107
- ```
108
- List my accounts using the list_accounts tool.
109
- ```
110
-
111
- Then immediately ask again:
112
-
113
- ```
114
- List my accounts again.
115
- ```
116
-
117
- **Expected**: Second request should be noticeably faster due to caching.
118
-
119
- ## Step 5: Advanced Testing (5 minutes)
120
-
121
- ### 5.1 Financial Analysis
122
-
123
- **Ask Claude**:
124
-
125
- ```
126
- Show me all transactions for the last month.
127
- ```
128
-
129
- **Expected**: Comprehensive analysis with trends, insights, and spending patterns.
130
-
131
- ### 5.2 Transaction Management
132
-
133
- **Ask Claude**:
134
-
135
- ```
136
- Show me my recent transactions using the list_transactions tool.
137
- ```
138
-
139
- **Expected**: List of recent transactions with details.
140
-
141
- ### 5.3 Export Testing
142
-
143
- **Ask Claude**:
144
-
145
- ```
146
- Export my transactions to a file using the export_transactions tool.
147
- ```
148
-
149
- **Expected**: Creates a file in the test-exports directory.
150
-
151
- ### 5.4 Receipt Split Workflow
152
-
153
- **Ask Claude**:
154
-
155
- ```
156
- Create a receipt split transaction with these categorized items…
157
- ```
158
-
159
- Provide the categorized items and tax totals you gathered.
160
-
161
- **Expected**: Claude reviews the categorization, optionally returns a dry-run preview, and creates the split with proportional tax allocation using `create_receipt_split_transaction`.
162
-
163
- ### 5.5 CSV Comparison Testing
164
-
165
- **Ask Claude**:
166
-
167
- ```
168
- Compare the CSV file test-csv-sample.csv with my YNAB transactions using the compare_transactions tool.
169
- ```
170
-
171
- **Expected**: Analysis of matches and differences between CSV and YNAB data.
172
-
173
- ## Step 6: Performance Verification
174
-
175
- ### 6.1 Cache Testing
176
-
177
- **Ask Claude**:
178
-
179
- ```
180
- Run diagnostic_info again and show me the cache metrics.
181
- ```
182
-
183
- **Expected**: Should show cache hits, entries, and performance metrics.
184
-
185
- ### 6.2 Repeat Operations
186
-
187
- Run the same commands from Step 4 again and notice:
188
-
189
- - Faster response times
190
- - Improved cache hit ratios
191
- - Consistent data accuracy
192
-
193
- ## Step 7: Troubleshooting Common Issues
194
-
195
- ### Issue: "Invalid or expired token"
196
-
197
- **Solution**:
198
-
199
- 1. Check YNAB_ACCESS_TOKEN in .env file
200
- 2. Generate new token at [YNAB developer settings](https://app.youneedabudget.com/settings/developer)
201
- 3. Restart Claude Desktop after updating token
202
-
203
- ### Issue: "No default budget set"
204
-
205
- **Solution**:
206
-
207
- 1. Use `set_default_budget` tool first
208
- 2. Or provide budget_id parameter to tools that need it
209
-
210
- ### Issue: Connection errors
211
-
212
- **Solution**:
213
-
214
- 1. Verify Node.js version: `node --version` (should be 18+)
215
- 2. Verify build completed: check that `dist/index.js` exists
216
- 3. Check Claude Desktop logs for detailed error messages
217
- 4. Restart Claude Desktop completely
218
-
219
- ### Issue: Tools not available
220
-
221
- **Solution**:
222
-
223
- 1. Verify server appears as "connected" in Claude Desktop
224
- 2. Check MCP server configuration in Claude Desktop settings
225
- 3. Ensure working directory path is correct
226
-
227
- ## Quick Verification Commands
228
-
229
- ```bash
230
- # Check Node.js version
231
- node --version
232
-
233
- # Verify build exists
234
- ls dist/index.js
235
-
236
- # Test environment loading
237
- node -r dotenv/config -e "console.log(process.env.YNAB_ACCESS_TOKEN ? 'Token configured' : 'Token missing')"
238
-
239
- # Check test directory
240
- ls test-exports
241
- ```
242
-
243
- ## Step 8: Success Indicators
244
-
245
- You'll know the testing is successful when:
246
-
247
- ✅ **Connection**: Server shows as "connected" in Claude Desktop
248
- ✅ **Authentication**: diagnostic_info shows "authenticated: true"
249
- ✅ **Basic Functions**: Budget, account, and transaction tools work
250
- ✅ **Caching**: Repeated requests are faster (cache hits increase)
251
- ✅ **Analysis**: Financial tools provide insights and recommendations
252
- ✅ **Export**: Files are created in test-exports directory
253
- ✅ **Performance**: Response times are acceptable (< 2 seconds cached)
254
-
255
- ## Next Steps After Basic Testing
256
-
257
- 1. **Explore Transaction History**: Test list_transactions with date filters
258
- 2. **Transaction Management**: Try creating, updating, and deleting test transactions
259
- 3. **Advanced Features**: Test reconcile_account with bank statement data
260
- 4. **Performance Testing**: Run multiple concurrent requests
261
- 5. **Error Testing**: Try invalid parameters to test error handling
262
-
263
- ## Getting Help
264
-
265
- - **Test Scenarios**: See `docs/TEST_SCENARIOS.md` for detailed test cases
266
- - **Comprehensive Testing**: Use `docs/TESTING_CHECKLIST.md` for systematic validation
267
- - **Issues**: Check Claude Desktop logs and diagnostic_info output
268
- - **Performance**: Monitor cache metrics in diagnostic_info
269
-
270
- ## Safety Notes
271
-
272
- - **Test Transactions**: Remember to clean up any test transactions you create
273
- - **Export Files**: Clean up test-exports directory as needed
274
- - **Real Data**: Be careful when testing with production YNAB data
275
-
276
- ---
277
-
278
- **Estimated Time**: 10-15 minutes for complete basic testing
279
- **Prerequisites Time**: 5 minutes if environment is already set up
280
- **Success Rate**: High when following this guide step by step
281
-
282
- The YNAB MCP server v0.8.2 includes receipt-driven split creation, enhanced caching, improved performance, and comprehensive financial analysis tools. This quick start gets you testing immediately while the detailed documentation provides comprehensive validation.