@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.
- package/.env.example +33 -33
- package/.github/workflows/ci-tests.yml +45 -45
- package/.github/workflows/claude-code-review.yml +57 -57
- package/.github/workflows/claude.yml +50 -50
- package/.github/workflows/full-integration.yml +22 -22
- package/.github/workflows/publish.yml +11 -2
- package/CLAUDE.md +33 -47
- package/README.md +8 -10
- package/dist/bundle/index.cjs +54 -54
- package/dist/server/YNABMCPServer.d.ts +120 -54
- package/dist/server/YNABMCPServer.js +28 -381
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.js +1 -0
- package/dist/server/securityMiddleware.d.ts +37 -8
- 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/schemas/outputs/index.d.ts +2 -2
- package/dist/tools/schemas/outputs/index.js +2 -2
- package/dist/tools/schemas/outputs/utilityOutputs.d.ts +0 -15
- package/dist/tools/schemas/outputs/utilityOutputs.js +0 -9
- package/dist/tools/transactionTools.d.ts +2 -0
- package/dist/tools/transactionTools.js +124 -0
- package/dist/tools/utilityTools.d.ts +2 -7
- package/dist/tools/utilityTools.js +19 -38
- package/dist/types/index.d.ts +1 -0
- package/dist/types/toolRegistration.d.ts +27 -0
- package/dist/types/toolRegistration.js +1 -0
- package/docs/maintainers/npm-publishing.md +27 -0
- package/docs/reference/API.md +15 -70
- package/docs/technical/reconciliation-system-architecture.md +2251 -2251
- package/package.json +6 -6
- package/scripts/analyze-bundle.mjs +41 -41
- package/scripts/generate-mcpb.ps1 +95 -95
- package/scripts/run-domain-integration-tests.js +4 -1
- package/scripts/watch-and-restart.ps1 +49 -49
- package/src/__tests__/comprehensive.integration.test.ts +0 -28
- package/src/__tests__/performance.test.ts +4 -12
- package/src/__tests__/setup.ts +45 -14
- package/src/__tests__/workflows.e2e.test.ts +1 -51
- package/src/server/YNABMCPServer.ts +33 -519
- package/src/server/__tests__/YNABMCPServer.test.ts +0 -1
- 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.integration.test.ts +63 -3
- package/src/tools/__tests__/utilityTools.integration.test.ts +1 -85
- package/src/tools/__tests__/utilityTools.test.ts +1 -123
- 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/schemas/outputs/index.ts +0 -3
- package/src/tools/schemas/outputs/utilityOutputs.ts +2 -43
- package/src/tools/toolCategories.ts +0 -1
- package/src/tools/transactionTools.ts +140 -0
- package/src/tools/utilityTools.ts +24 -55
- package/src/types/index.ts +3 -0
- package/src/types/toolRegistration.ts +88 -0
- package/vitest.config.ts +2 -1
- package/.chunkhound.json +0 -11
- package/.code/agents/01a13ef4-3f23-4f52-b33b-3585b73cfa60/error.txt +0 -3
- package/.code/agents/084fd32f-e298-4728-9103-a78d7dc39613/error.txt +0 -3
- package/.code/agents/0fed51e1-a943-4b97-a2a8-a6f0f27c844d/status.txt +0 -1
- package/.code/agents/1059b6bd-5ccd-4d83-a12c-7c9d89137399/error.txt +0 -5
- package/.code/agents/110/exec-call_F9BDNG7JfxKkq7Vc8ESAvdft.txt +0 -1569
- package/.code/agents/11ebcef3-b13f-4e44-ad80-d94a866804b7/error.txt +0 -3
- package/.code/agents/1398/exec-call_CjItcWMU1G6JoPshX62QvpaR.txt +0 -2832
- package/.code/agents/1398/exec-call_SUVq2ivmONQ5LMCmd7ngmOqr.txt +0 -2709
- package/.code/agents/1398/exec-call_SdNY4NOffdcC5pRYjVXHjPCK.txt +0 -2832
- package/.code/agents/1398/exec-call_qblJo9et1gsFFB63TtLOiji2.txt +0 -2832
- package/.code/agents/1398/exec-call_zaRrzlGz7GJcNzVfkAmML7Zg.txt +0 -2709
- package/.code/agents/171834fd-5905-42fc-bbcc-2c755145b0fc/status.txt +0 -1
- package/.code/agents/1724/exec-call_HvHQe0w5CCG3T7Q3ULT6MO3g.txt +0 -5217
- package/.code/agents/1724/exec-call_QwUNESVzfxxk78K1frh1Vahb.txt +0 -2594
- package/.code/agents/1724/exec-call_aJ1Xwz71XmIpD4SBxSHERzLe.txt +0 -2594
- package/.code/agents/1d7d7ab7-7473-4b69-8b97-6e914f56056a/result.txt +0 -231
- package/.code/agents/210/exec-call_0tQCsKNJ1WTuIchb8wlcFJpW.txt +0 -2590
- package/.code/agents/210/exec-call_8ZlY9cUc8Ft1twi4ch8UJ6IN.txt +0 -5195
- package/.code/agents/2188/exec-call_5HqayBxIteJtoI8oPTiLWgvJ.txt +0 -286
- package/.code/agents/2188/exec-call_XRbBKBq3adZe6dcppAvQtM7G.txt +0 -218
- package/.code/agents/2188/exec-call_ehA0SjpYtrUi6GJXmibLjp4i.txt +0 -180
- package/.code/agents/21902821-ecaf-4759-bb9d-222b90921af5/error.txt +0 -3
- package/.code/agents/232073be-aa0e-46da-b478-5b64dbf03cf5/status.txt +0 -1
- package/.code/agents/234ff534-2336-4771-a8d9-aa04421a63be/result.txt +0 -747
- package/.code/agents/253e2695-dc36-4022-b436-27655e0fc6c7/status.txt +0 -1
- package/.code/agents/2583/exec-call_M59I4eDjpjlBIWBiSxyS0YlJ.txt +0 -2594
- package/.code/agents/2583/exec-call_usLRGh7OhVHtsRBL4iUwRhjq.txt +0 -2594
- package/.code/agents/292aa3ff-dbab-470f-97c9-e7e8fd65e0db/result.txt +0 -144
- package/.code/agents/3134/exec-call_IgCAMGx19lWfuo8zfYIt5FFC.txt +0 -416
- package/.code/agents/3134/exec-call_IxvLR2Oo7kba2QTsI1gHVko8.txt +0 -2590
- package/.code/agents/3134/exec-call_jYvc8hksZChSiysbzKjl2ZbB.txt +0 -2590
- package/.code/agents/329/exec-call_4QdP3SfSO7HGPCwVcqZIth6s.txt +0 -2590
- package/.code/agents/472/exec-call_4AxzEEcWwkKhpqRB3bE8Ha4L.txt +0 -790
- package/.code/agents/472/exec-call_CB3LPYQA8QIZRi8I6kj4J17A.txt +0 -766
- package/.code/agents/472/exec-call_YeoUWvaFoktay2nqVUsa9KKX.txt +0 -790
- package/.code/agents/472/exec-call_jPWgKVquBBXTg0T3Lks5ZfkK.txt +0 -2594
- package/.code/agents/472/exec-call_qBkvunpGBDEHph2jPmTwtcsb.txt +0 -1000
- package/.code/agents/472/exec-call_v0ffRV1p0kTckBmJPzzHAEy0.txt +0 -3489
- package/.code/agents/472/exec-call_xAX5FXqWIlk02d9WubHbHWh8.txt +0 -766
- package/.code/agents/5346/exec-call_9q0muXUuLaucwEqI51Pt7idT.txt +0 -2594
- package/.code/agents/5346/exec-call_B2el3B79rVkq9LhWTI2VYlz7.txt +0 -2456
- package/.code/agents/5346/exec-call_BfX08f02qkZI9uJD5dvCvuoj.txt +0 -2594
- package/.code/agents/543328d0-61d6-4fd1-a723-bb168656e2e2/error.txt +0 -18
- package/.code/agents/5580c02c-1383-4d18-9cbd-cc8a06e3408d/result.txt +0 -48
- package/.code/agents/60ce1a22-5126-44b2-b977-1d5b56142a7b/status.txt +0 -1
- package/.code/agents/6215d9db-7fa9-4429-aeec-3835c3212291/error.txt +0 -1
- package/.code/agents/6743db55-30e5-4b4e-9366-a8214fc7f714/error.txt +0 -1
- package/.code/agents/6bf9591b-b9c9-422c-b0a5-e968c7d8422a/status.txt +0 -1
- package/.code/agents/7/exec-call_eww3GfdEiJZx61sJEQ9wNmt3.txt +0 -1271
- package/.code/agents/70/exec-call_owUtDMYiVgqDf8vsz1i32PFf.txt +0 -1570
- package/.code/agents/8/exec-call_UtrjAcLbhYLatxR4O97fZgnm.txt +0 -2590
- package/.code/agents/82490bc9-f34e-4b1b-8a8e-bccc2e6254f5/error.txt +0 -3
- package/.code/agents/841/exec-call_7nTNhSBCNjTDUIJv7py6CepO.txt +0 -3299
- package/.code/agents/841/exec-call_TLI0yUdUijuUAvI4o3DXEvHO.txt +0 -3299
- package/.code/agents/9/exec-call_XaABQT1hIlRpnKZ2uyBMWsTC.txt +0 -1882
- package/.code/agents/941/exec-call_GuGHRx7NNXWIDAnxUG2NEWPa.txt +0 -2594
- package/.code/agents/95d9fbab-19a2-48af-83f9-c792566a347f/error.txt +0 -1
- package/.code/agents/b0098cb8-cb32-4ada-9bc4-37c587518896/result.txt +0 -170
- package/.code/agents/b4fe59a4-81df-42e2-a112-0153e504faca/error.txt +0 -1
- package/.code/agents/bf4ce152-f623-49d7-aa52-c18631625c3c/error.txt +0 -3
- package/.code/agents/d7d1db75-d7eb-468e-adea-4ef4d916d187/status.txt +0 -1
- package/.code/agents/e2baa9c8-bac3-49e3-a39d-024333e6a990/status.txt +0 -1
- package/.code/agents/e350b8c3-8483-408c-b2bb-94515f492a11/error.txt +0 -3
- package/.code/agents/e63f9919-719f-4ad0-bccf-01b1a596e1e9/status.txt +0 -1
- package/.code/agents/e71695a8-3044-478d-8f12-ed13d02884c7/status.txt +0 -1
- package/.code/agents/f95b7464-3e25-4897-b153-c8dfd63fd605/error.txt +0 -5
- package/.code/agents/fa3c5ddf-cdf7-47a2-930a-b806c6363689/status.txt +0 -1
- package/.github/workflows/pr-description-check.yml +0 -88
- package/AGENTS.md +0 -36
- package/NUL +0 -1
- 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/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/package.json.tmp +0 -105
- package/temp-recon.ts +0 -126
- package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_09-04-53.json +0 -23
- package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_10-37-42.json +0 -23
- package/test-exports/ynab_account_e9ddc2a6_minimal_4items_2025-11-19_09-02-09.json +0 -44
- package/test-exports/ynab_account_e9ddc2a6_minimal_6items_2025-11-19_10-37-52.json +0 -58
- package/test-exports/ynab_since_2025-10-16_account_53298e13_238items_2025-11-28_13-46-20.json +0 -3662
- 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.
|