@daften/fireflyiii-mcp 0.2.0 → 0.2.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/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.1] - 2026-06-11
11
+
12
+ ### Added
13
+ - Test coverage reporting via `@vitest/coverage-v8`: new `npm run test:coverage` script, and CI posts a sticky coverage comment on every PR (via `vitest-coverage-report-action`, Node 22 job) in addition to the log summary.
14
+
15
+ ### Docs
16
+ - New VitePress documentation site published to GitHub Pages, with guides (stdio, HTTP/OAuth, Docker, git checkout), reference pages (tools, filtering, autocomplete, env vars), and contributing pages. The README is slimmed to a quickstart that links to the site.
17
+ - New "Architecture at a glance" diagram in AGENTS.md showing the path from MCP client through transports, tool registration, the HTTP client, and the transform layer to the Firefly III API.
18
+ - README now states the Node.js 20+ requirement next to the setup options table.
19
+ - Export tool descriptions mention the `text/csv` output format.
20
+
21
+ ### Fixed
22
+ - `trigger_rule` and `trigger_rule_group` no longer fail with HTTP 415. They sent a bodyless POST, so the client omitted the `Content-Type: application/json` header and Firefly III rejected the request. They now send an empty `{}` JSON body (trigger parameters are read from the query string), matching the other parameterless POST tools.
23
+
10
24
  ## [0.2.0] - 2026-05-30
11
25
 
12
26
  ### Added
@@ -43,7 +57,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
43
57
  - npm publish provenance via GitHub OIDC.
44
58
  - GitHub Release auto-created from the tag annotation on each `v*` tag push.
45
59
 
46
- [Unreleased]: https://github.com/daften/fireflyiii-mcp/compare/v0.2.0...HEAD
60
+ [Unreleased]: https://github.com/daften/fireflyiii-mcp/compare/v0.2.1...HEAD
61
+ [0.2.1]: https://github.com/daften/fireflyiii-mcp/compare/v0.2.0...v0.2.1
47
62
  [0.2.0]: https://github.com/daften/fireflyiii-mcp/compare/v0.1.1...v0.2.0
48
63
  [0.1.1]: https://github.com/daften/fireflyiii-mcp/compare/v0.1.0...v0.1.1
49
64
  [0.1.0]: https://github.com/daften/fireflyiii-mcp/releases/tag/v0.1.0
package/README.md CHANGED
@@ -4,10 +4,13 @@
4
4
  [![npm downloads](https://img.shields.io/npm/dm/@daften/fireflyiii-mcp.svg)](https://www.npmjs.com/package/@daften/fireflyiii-mcp)
5
5
  [![CI](https://github.com/daften/fireflyiii-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/daften/fireflyiii-mcp/actions/workflows/ci.yml)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Documentation](https://img.shields.io/badge/docs-daften.github.io-blue)](https://daften.github.io/fireflyiii-mcp/)
7
8
 
8
- An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects Claude to your [Firefly III](https://www.firefly-iii.org) personal finance instance. Ask Claude questions about your finances in natural language.
9
+ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects any MCP-compatible AI assistant to your [Firefly III](https://www.firefly-iii.org) personal finance instance. Ask your AI assistant questions about your finances in natural language.
9
10
 
10
- ## What you can ask Claude
11
+ 📖 **[Full documentation daften.github.io/fireflyiii-mcp](https://daften.github.io/fireflyiii-mcp/)**
12
+
13
+ ## What you can ask
11
14
 
12
15
  Once configured, you can ask things like:
13
16
 
@@ -17,7 +20,7 @@ Once configured, you can ask things like:
17
20
  - *"Set up a piggy bank for my vacation fund with a €2000 target."*
18
21
  - *"What were my biggest expense categories this year?"*
19
22
 
20
- Claude handles the translation to Firefly III API calls — you get answers in plain English.
23
+ Your AI assistant handles the Firefly III API calls — you get answers in plain language.
21
24
 
22
25
  ---
23
26
 
@@ -25,11 +28,13 @@ Choose your setup method:
25
28
 
26
29
  | Method | Transport | Best for |
27
30
  |--------|-----------|----------|
28
- | [npm — stdio](#option-1-npm-package--stdio-simplest) | stdio | Simplest setup, Claude on the same machine |
29
- | [npm — HTTP](#option-2-npm-package--http-oauth) | HTTP + OAuth | Claude.ai or when you prefer OAuth over a PAT |
31
+ | [npm — stdio](#option-1-npm-package--stdio-simplest) | stdio | Simplest setup, AI on the same machine |
32
+ | [npm — HTTP](#option-2-npm-package--http-oauth) | HTTP + OAuth | Remote AI access or when you prefer OAuth over a PAT |
30
33
  | [Docker — HTTP](#option-3-docker--http-self-hosted) | HTTP + OAuth | Self-hosted on a server or home lab |
31
34
  | [Git checkout](#option-4-git-checkout-development) | stdio or HTTP | Contributing or local development |
32
35
 
36
+ All options except Docker require **Node.js 20+**.
37
+
33
38
  ---
34
39
 
35
40
  ## Option 1: npm package — stdio (simplest)
@@ -53,590 +58,43 @@ Add to your Claude MCP config (`.claude/mcp.json` or Claude Desktop `claude_desk
53
58
  }
54
59
  ```
55
60
 
56
- Claude downloads and starts the server automatically on first use. No separate install step needed.
61
+ Your MCP client downloads and starts the server automatically on first use. No separate install step needed.
57
62
 
58
63
  ---
59
64
 
60
65
  ## Option 2: npm package — HTTP (OAuth)
61
66
 
62
- HTTP mode uses OAuth (Authorization Code + PKCE) instead of a Personal Access Token. The MCP client handles the OAuth flow automatically on first connection.
63
-
64
- **Requires:** Node.js 20+.
65
-
66
- ### Step 1: Register an OAuth client in Firefly III
67
-
68
- Go to **Options → Remote access and tokens → Create New Client**:
69
-
70
- | Field | Value |
71
- |-------|-------|
72
- | **Name** | Anything, e.g. `Claude MCP` |
73
- | **Redirect URL** | `http://127.0.0.1:3000/oauth/callback` |
74
- | **Keep a secret?** | **Uncheck this box** |
75
-
76
- Save and copy the **Client ID** (you do not need the secret).
77
-
78
- > **Why uncheck "Keep a secret?"?**
79
- > Confidential clients require a secret stored securely on a server. PKCE-based flows use a code verifier instead, which is safe for clients (like Claude) that cannot securely store a secret. Unchecking this creates a *public client* — the correct choice here.
80
-
81
- > **Why this specific redirect URL?**
82
- > Claude uses a random port for its OAuth callback (e.g. `http://localhost:61234/callback`), but Firefly III requires an exact URI match. This server acts as an OAuth proxy: it intercepts the request, substitutes its own stable callback URL (`http://127.0.0.1:3000/oauth/callback`), and forwards the authorization code back to Claude's real callback. Register this URL once and never touch it again.
83
-
84
- ### Step 2: Start the server
85
-
86
- ```bash
87
- FIREFLY_URL=https://your-firefly-instance.example.com \
88
- FIREFLY_OAUTH_CLIENT_ID=your-client-id \
89
- npx @daften/fireflyiii-mcp --transport http
90
- ```
91
-
92
- To use a different port: add `--port 4000`. Or install globally and omit `npx`:
93
-
94
- ```bash
95
- npm install -g @daften/fireflyiii-mcp
96
- FIREFLY_URL=... FIREFLY_OAUTH_CLIENT_ID=... fireflyiii-mcp --transport http
97
- ```
98
-
99
- ### Step 3: Connect Claude
100
-
101
- ```json
102
- {
103
- "mcpServers": {
104
- "fireflyiii": {
105
- "type": "http",
106
- "url": "http://127.0.0.1:3000"
107
- }
108
- }
109
- }
110
- ```
111
-
112
- Or via the CLI:
113
-
114
- ```bash
115
- claude mcp add --transport http fireflyiii http://127.0.0.1:3000
116
- ```
117
-
118
- The `type: "http"` field is required — without it Claude Code assumes stdio and fails. On first connection Claude opens a browser to authorize with Firefly III; tokens are managed automatically after that.
67
+ See [HTTP/OAuth setup guide](https://daften.github.io/fireflyiii-mcp/guide/http-oauth) in the docs.
119
68
 
120
69
  ---
121
70
 
122
71
  ## Option 3: Docker — HTTP (self-hosted)
123
72
 
124
- Docker runs in HTTP mode only. Suitable for hosting on a server or home lab where Claude connects over the network.
125
-
126
- ### Step 1: Register an OAuth client in Firefly III
127
-
128
- Same as Option 2, Step 1, but use your container's public URL as the redirect URI:
129
-
130
- | Field | Value |
131
- |-------|-------|
132
- | **Redirect URL** | `https://mcp.example.com/oauth/callback` |
133
- | **Keep a secret?** | **Uncheck** |
134
-
135
- Replace `https://mcp.example.com` with your actual `MCP_BASE_URL`.
136
-
137
- ### Step 2: Run the container
138
-
139
- ```bash
140
- docker run \
141
- -e FIREFLY_URL=https://your-firefly-instance.example.com \
142
- -e FIREFLY_OAUTH_CLIENT_ID=your-client-id \
143
- -e MCP_BASE_URL=https://mcp.example.com \
144
- -p 3000:3000 \
145
- ghcr.io/daften/fireflyiii-mcp:latest
146
- ```
147
-
148
- `MCP_BASE_URL` is the externally reachable URL of your container — used to build OAuth redirect URIs. If omitted the server falls back to the `Host` request header, which is unreliable behind a reverse proxy.
149
-
150
- To limit which tools the container exposes (e.g. to save context or run read-only), add the filtering environment variables — there are no CLI flags to pass in Docker, so these are the way to configure it:
151
-
152
- ```bash
153
- docker run \
154
- -e FIREFLY_URL=https://your-firefly-instance.example.com \
155
- -e FIREFLY_OAUTH_CLIENT_ID=your-client-id \
156
- -e MCP_BASE_URL=https://mcp.example.com \
157
- -e MCP_PRESET=default \
158
- -e MCP_READ_ONLY=true \
159
- -p 3000:3000 \
160
- ghcr.io/daften/fireflyiii-mcp:latest
161
- ```
162
-
163
- See [Filtering Tools](#filtering-tools) for the full list of presets, groups, and the precedence rules.
164
-
165
- Or with docker-compose (copy `docker-compose.yml` from the repo):
166
-
167
- ```bash
168
- # Option A: use a .env file (copy .env.example and fill in values)
169
- cp .env.example .env # then edit .env
170
- docker compose up -d
171
-
172
- # Option B: export variables in your shell
173
- FIREFLY_URL=https://your-firefly-instance.example.com \
174
- FIREFLY_OAUTH_CLIENT_ID=your-client-id \
175
- MCP_BASE_URL=https://mcp.example.com \
176
- docker compose up -d
177
- ```
178
-
179
- To build the image locally instead of pulling from the registry, uncomment `build: .` in `docker-compose.yml`.
180
-
181
- > **Note:** OAuth state is held in-process. Run only a single replica — multiple replicas will break the OAuth flow because the callback may land on a different instance than the one that initiated authorization.
182
-
183
- ### Step 3: Connect Claude
184
-
185
- ```json
186
- {
187
- "mcpServers": {
188
- "fireflyiii": {
189
- "type": "http",
190
- "url": "https://mcp.example.com"
191
- }
192
- }
193
- }
194
- ```
73
+ See [Docker setup guide](https://daften.github.io/fireflyiii-mcp/guide/docker) in the docs.
195
74
 
196
75
  ---
197
76
 
198
77
  ## Option 4: Git checkout (development)
199
78
 
200
- ### Setup
201
-
202
- ```bash
203
- git clone https://github.com/daften/fireflyiii-mcp.git
204
- cd fireflyiii-mcp
205
- npm install
206
- npm run build
207
- ```
208
-
209
- ### stdio mode
210
-
211
- Create `.env` from `.env.example`:
212
-
213
- ```bash
214
- FIREFLY_URL=https://your-firefly-instance.example.com
215
- FIREFLY_TOKEN=your-personal-access-token-here
216
- ```
217
-
218
- Add to your Claude MCP config:
219
-
220
- ```json
221
- {
222
- "mcpServers": {
223
- "fireflyiii": {
224
- "command": "node",
225
- "args": ["/absolute/path/to/fireflyiii-mcp/dist/index.js"],
226
- "env": {
227
- "FIREFLY_URL": "https://your-firefly-instance.example.com",
228
- "FIREFLY_TOKEN": "your-personal-access-token-here"
229
- }
230
- }
231
- }
232
- }
233
- ```
234
-
235
- Use `npm run dev` instead of `node dist/index.js` during development to skip the build step.
236
-
237
- ### HTTP mode
238
-
239
- Register an OAuth client in Firefly III as described in Option 2, Step 1, then add to `.env`:
240
-
241
- ```bash
242
- FIREFLY_URL=https://your-firefly-instance.example.com
243
- FIREFLY_OAUTH_CLIENT_ID=your-client-id-here
244
- ```
245
-
246
- Start the server:
247
-
248
- ```bash
249
- npm run dev -- --transport http
250
- # or after building:
251
- node dist/index.js --transport http
252
- ```
253
-
254
- Connect Claude as in Option 2, Step 3.
255
-
256
- ---
257
-
258
- ## OAuth discovery
259
-
260
- The server exposes `GET /.well-known/oauth-authorization-server` (no auth required) which returns RFC 8414 metadata. MCP clients use this to discover OAuth endpoints automatically — no manual OAuth configuration needed in the client.
79
+ See [Git checkout guide](https://daften.github.io/fireflyiii-mcp/guide/git-checkout) in the docs.
261
80
 
262
81
  ---
263
82
 
264
83
  ## Experimental Autocomplete Prompts
265
84
 
266
- The server implements native **MCP Prompts** with **experimental autocomplete (completions)** support for common parameters (accounts, budgets, and categories). This allows you to select resources via interactive dropdowns instead of guessing numeric database IDs.
267
-
268
- > [!WARNING]
269
- > **Client Compatibility Notice:** The MCP specification does not support autocomplete on regular tool arguments directly. Therefore, autocomplete is implemented using standard MCP Prompts. This feature is **highly experimental** and depends heavily on your MCP client's capabilities:
270
- > * **Supported:** This is fully supported in advanced agentic clients like **Claude Code** (which renders Prompt dropdown completions during interactive form-filling).
271
- > * **Not Supported:** Standard chat interfaces like the **Claude Desktop App** do not currently support rendering autocomplete dropdowns for MCP Prompts.
272
-
273
- ### Available Prompts
274
- * **`account-transactions`**: Fetches transaction records for a specific account. Case-insensitive autocomplete matching across assets, expenses (merchants/contacts like `"Dieter"`), revenues, and liabilities.
275
- * **`budget-transactions`**: Fetches transaction records for a specific budget.
276
- * **`category-transactions`**: Fetches transactions matching a specific spending category.
277
-
278
- Suggestions are pre-fetched (up to 1,000 records) and cached in memory for 60 seconds, returning the top 100 matches per keystroke for instant rendering. The cache is scoped per authenticated user, so it is safe under multi-user HTTP/OAuth deployments. Set `FIREFLY_DEBUG=true` to log autocomplete activity to stderr.
279
-
280
- To trigger them in a supported client like Claude Code, click the **`+`** icon, select the prompt (e.g. `account-transactions`), and start typing to filter and select your account instantly.
85
+ See [Autocomplete prompts](https://daften.github.io/fireflyiii-mcp/reference/autocomplete) in the docs.
281
86
 
282
87
  ---
283
88
 
284
89
  ## Available Tools
285
90
 
286
- ### Accounts
287
-
288
- <details>
289
- <summary><b>7 tools</b> — click to expand</summary>
290
-
291
- | Tool | Description |
292
- |------|-------------|
293
- | `get_accounts` | List all accounts, filterable by type |
294
- | `get_account` | Get a single account by ID with current balance |
295
- | `create_account` | Create a new account |
296
- | `update_account` | Update an existing account |
297
- | `delete_account` | Delete an account. This action cannot be undone. |
298
- | `get_account_transactions` | Get all transactions for a specific account, filterable by type and date range |
299
- | `search_accounts` | Search accounts by name, IBAN, or account number |
300
-
301
- </details>
302
-
303
- ### Transactions
304
-
305
- <details>
306
- <summary><b>8 tools</b> — click to expand</summary>
307
-
308
- | Tool | Description |
309
- |------|-------------|
310
- | `get_transactions` | List transactions with filters (account, date, type) |
311
- | `get_transaction` | Get a single transaction by ID with all splits |
312
- | `search_transactions` | Keyword search across transactions |
313
- | `create_transaction` | Create a new transaction |
314
- | `create_split_transaction` | Create a split transaction (one receipt across multiple categories/budgets) |
315
- | `update_transaction` | Update an existing transaction |
316
- | `bulk_update_transactions` | Update multiple transactions at once using a search query |
317
- | `delete_transaction` | Delete a transaction. This action cannot be undone. |
318
-
319
- </details>
320
-
321
- ### Budgets
322
-
323
- <details>
324
- <summary><b>12 tools</b> — click to expand</summary>
325
-
326
- | Tool | Description |
327
- |------|-------------|
328
- | `get_budgets` | List all budgets with spent/available amounts |
329
- | `get_budget_limits` | Get budget limits for a specific budget and period |
330
- | `create_budget` | Create a new budget |
331
- | `update_budget` | Update an existing budget |
332
- | `delete_budget` | Delete a budget. This action cannot be undone. |
333
- | `create_budget_limit` | Create a budget limit for a specific period |
334
- | `update_budget_limit` | Update an existing budget limit |
335
- | `delete_budget_limit` | Delete a budget limit. This action cannot be undone. |
336
- | `get_available_budgets` | List all available budget periods with amounts available |
337
- | `get_available_budget` | Get a single available budget period by ID |
338
- | `get_budget_transactions` | Get all transactions assigned to a specific budget |
339
- | `get_transactions_without_budget` | Get transactions that have no budget assigned |
340
-
341
- </details>
342
-
343
- ### Categories
344
-
345
- <details>
346
- <summary><b>5 tools</b> — click to expand</summary>
347
-
348
- | Tool | Description |
349
- |------|-------------|
350
- | `get_categories` | List all categories |
351
- | `get_category_transactions` | Get transactions for a specific category |
352
- | `create_category` | Create a new category |
353
- | `update_category` | Update an existing category |
354
- | `delete_category` | Delete a category. This action cannot be undone. |
355
-
356
- </details>
357
-
358
- ### Bills
359
-
360
- <details>
361
- <summary><b>5 tools</b> — click to expand</summary>
362
-
363
- | Tool | Description |
364
- |------|-------------|
365
- | `get_bills` | List all bills with next expected match date |
366
- | `create_bill` | Create a new bill |
367
- | `update_bill` | Update an existing bill |
368
- | `delete_bill` | Delete a bill. This action cannot be undone. |
369
- | `get_bill_transactions` | Get all transactions linked to a specific bill |
370
-
371
- </details>
372
-
373
- ### Piggy Banks
374
-
375
- <details>
376
- <summary><b>7 tools</b> — click to expand</summary>
377
-
378
- | Tool | Description |
379
- |------|-------------|
380
- | `get_piggy_banks` | List all piggy banks with current/target amounts |
381
- | `create_piggy_bank` | Create a new piggy bank |
382
- | `update_piggy_bank` | Update an existing piggy bank |
383
- | `delete_piggy_bank` | Delete a piggy bank. This action cannot be undone. |
384
- | `get_piggy_bank_events` | Get all deposit/withdrawal events for a piggy bank |
385
- | `create_piggy_bank_event` | Add a deposit or withdrawal event to a piggy bank |
386
- | `delete_piggy_bank_event` | Delete a piggy bank event. This action cannot be undone. |
387
-
388
- </details>
389
-
390
- ### Recurring Transactions
391
-
392
- <details>
393
- <summary><b>7 tools</b> — click to expand</summary>
394
-
395
- | Tool | Description |
396
- |------|-------------|
397
- | `get_recurring` | List all recurring transaction rules |
398
- | `get_recurrence` | Get a single recurring transaction rule by ID |
399
- | `create_recurring` | Create a new recurring transaction rule |
400
- | `update_recurring` | Update an existing recurring transaction rule |
401
- | `delete_recurring` | Delete a recurring transaction rule. This action cannot be undone. |
402
- | `get_recurrence_transactions` | Get transactions created by a recurring transaction rule |
403
- | `trigger_recurrence` | Manually fire a recurring rule to create its transaction immediately |
404
-
405
- </details>
406
-
407
- ### Automation Rules
408
-
409
- <details>
410
- <summary><b>15 tools</b> — click to expand</summary>
411
-
412
- | Tool | Description |
413
- |------|-------------|
414
- | `get_rule_groups` | List all rule groups |
415
- | `get_rule_group` | Get a single rule group by ID |
416
- | `create_rule_group` | Create a new rule group |
417
- | `update_rule_group` | Update an existing rule group |
418
- | `delete_rule_group` | Delete a rule group and all its rules. This action cannot be undone. |
419
- | `get_rules` | List all automation rules |
420
- | `get_rule` | Get a single rule by ID |
421
- | `create_rule` | Create a new automation rule with trigger conditions and actions |
422
- | `update_rule` | Update an existing automation rule |
423
- | `delete_rule` | Delete an automation rule. This action cannot be undone. |
424
- | `trigger_rule_group` | Manually run all rules in a group against existing transactions |
425
- | `trigger_rule` | Manually run a single rule against existing transactions |
426
- | `test_rule_group` | Dry-run a rule group and return matching transactions (no changes applied) |
427
- | `test_rule` | Dry-run a single rule and return matching transactions (no changes applied) |
428
- | `get_rule_group_rules` | Get all rules belonging to a specific rule group |
429
-
430
- </details>
431
-
432
- ### Attachments
433
-
434
- <details>
435
- <summary><b>7 tools</b> — click to expand</summary>
436
-
437
- | Tool | Description |
438
- |------|-------------|
439
- | `get_attachments` | List all file attachments |
440
- | `get_attachment` | Get a single attachment by ID |
441
- | `create_attachment` | Create attachment metadata (step 1 of 2 — use `upload_attachment` to send file content) |
442
- | `update_attachment` | Update attachment metadata |
443
- | `delete_attachment` | Delete an attachment and its file data. This action cannot be undone. |
444
- | `upload_attachment` | Upload base64-encoded file content for an existing attachment record (step 2 of 2) |
445
- | `download_attachment` | Download an attachment by ID; images are returned as a rendered image, other files as their filename, MIME type, and Base64 content |
446
-
447
- </details>
448
-
449
- ### Tags & Reports
450
-
451
- <details>
452
- <summary><b>37 tools</b> — click to expand</summary>
453
-
454
- | Tool | Description |
455
- |------|-------------|
456
- | `get_tags` | List all tags |
457
- | `get_tag_transactions` | Get transactions for a specific tag |
458
- | `create_tag` | Create a new tag |
459
- | `update_tag` | Update an existing tag |
460
- | `delete_tag` | Delete a tag. This action cannot be undone. |
461
- | `get_summary` | Basic balance summary (total assets, net worth) |
462
- | `get_insight_expenses` | Expense insights grouped by category for a date range |
463
- | `get_insight_income` | Income insights grouped by category for a date range |
464
- | `get_insight_expenses_no_bill` | Expense totals for transactions with no bill attached |
465
- | `get_insight_expenses_no_budget` | Expense totals for transactions with no budget attached |
466
- | `get_insight_expenses_no_category` | Expense totals for transactions with no category attached |
467
- | `get_insight_expenses_no_tag` | Expense totals for transactions with no tag attached |
468
- | `get_insight_income_no_category` | Income totals for transactions with no category attached |
469
- | `get_insight_income_no_tag` | Income totals for transactions with no tag attached |
470
- | `get_insight_transfer_no_category` | Transfer totals for transactions with no category attached |
471
- | `get_insight_transfer_no_tag` | Transfer totals for transactions with no tag attached |
472
- | `get_about` | Get Firefly III server info (version, PHP version, OS) |
473
- | `get_net_worth_summary` | Get net worth summary for a date range |
474
- | `get_account_overview_chart` | Get account overview chart data for a date range |
475
- | `get_balance_chart` | Get account balance chart data for a date range |
476
- | `get_budget_chart` | Get budget overview chart data for a date range |
477
- | `get_category_chart` | Get category overview chart data for a date range |
478
- | `get_exchange_rate` | Get exchange rate between two currencies |
479
- | `get_insight_expenses_by_bill` | Expense insights grouped by bill for a date range |
480
- | `get_insight_expenses_by_budget` | Expense insights grouped by budget for a date range |
481
- | `get_insight_expenses_by_tag` | Expense insights grouped by tag for a date range |
482
- | `get_insight_expenses_by_asset` | Expense insights grouped by asset account |
483
- | `get_insight_expenses_by_expense_account` | Expense insights grouped by expense account |
484
- | `get_insight_expenses_total` | Total expense amount for a date range |
485
- | `get_insight_income_by_revenue` | Income insights grouped by revenue account |
486
- | `get_insight_income_by_tag` | Income insights grouped by tag |
487
- | `get_insight_income_by_asset` | Income insights grouped by asset account |
488
- | `get_insight_income_total` | Total income amount for a date range |
489
- | `get_insight_transfers_by_category` | Transfer insights grouped by category |
490
- | `get_insight_transfers_by_tag` | Transfer insights grouped by tag |
491
- | `get_insight_transfers_by_asset` | Transfer insights grouped by asset account |
492
- | `get_insight_transfers_total` | Total transfer amount for a date range |
493
-
494
- </details>
495
-
496
- ### Currencies
497
-
498
- <details>
499
- <summary><b>8 tools</b> — click to expand</summary>
500
-
501
- | Tool | Description |
502
- |------|-------------|
503
- | `get_currencies` | List all currencies configured in Firefly III |
504
- | `get_currency` | Get a single currency by code (e.g. EUR, USD) |
505
- | `create_currency` | Create a new currency |
506
- | `update_currency` | Update an existing currency |
507
- | `enable_currency` | Enable a currency for use in transactions |
508
- | `disable_currency` | Disable a currency |
509
- | `set_primary_currency` | Set a currency as the primary/default currency |
510
- | `delete_currency` | Delete a currency. This action cannot be undone. |
511
-
512
- </details>
513
-
514
- ### Data Export
515
-
516
- <details>
517
- <summary><b>9 tools</b> — click to expand</summary>
518
-
519
- | Tool | Description |
520
- |------|-------------|
521
- | `export_transactions` | Export all transactions as CSV (supports date filters) |
522
- | `export_accounts` | Export all accounts as CSV |
523
- | `export_bills` | Export all bills as CSV |
524
- | `export_budgets` | Export all budgets as CSV |
525
- | `export_categories` | Export all categories as CSV |
526
- | `export_tags` | Export all tags as CSV |
527
- | `export_recurring` | Export all recurring transactions as CSV |
528
- | `export_rules` | Export all rules as CSV |
529
- | `export_piggy_banks` | Export all piggy banks as CSV |
530
-
531
- </details>
532
-
533
- ### Object Groups
534
-
535
- <details>
536
- <summary><b>7 tools</b> — click to expand</summary>
537
-
538
- | Tool | Description |
539
- |------|-------------|
540
- | `get_object_groups` | List all object groups (used to organise accounts and piggy banks) |
541
- | `get_object_group` | Get a single object group by ID |
542
- | `create_object_group` | Create a new object group |
543
- | `update_object_group` | Update an existing object group |
544
- | `delete_object_group` | Delete an object group. This action cannot be undone. |
545
- | `get_object_group_bills` | Get all bills in a specific object group |
546
- | `get_object_group_piggy_banks` | Get all piggy banks in a specific object group |
547
-
548
- </details>
549
-
550
- ### Transaction Links
551
-
552
- <details>
553
- <summary><b>6 tools</b> — click to expand</summary>
554
-
555
- | Tool | Description |
556
- |------|-------------|
557
- | `get_link_types` | List available transaction link types (Related, Refund, Paid, etc.) |
558
- | `get_transaction_links` | Get all links attached to a transaction journal entry |
559
- | `get_transaction_link` | Get a single transaction link by ID |
560
- | `create_transaction_link` | Create a link between two transactions |
561
- | `update_transaction_link` | Update an existing transaction link |
562
- | `delete_transaction_link` | Delete a transaction link. This action cannot be undone. |
563
-
564
- </details>
565
-
566
- ## Filtering Tools
567
-
568
- With 140 tools across 14 groups, loading everything can consume significant context window space. Three flags let you control exactly which tools are registered:
569
-
570
- ### `--preset <name>`
571
-
572
- Load a named subset of tool groups:
573
-
574
- | Preset | Groups included | Tools |
575
- |--------|----------------|-------|
576
- | `minimal` | accounts, transactions | 15 |
577
- | `default` | accounts, transactions, budgets, categories, bills | 37 |
578
- | `budgeting` | accounts, transactions, budgets, categories, bills, piggy-banks | 44 |
579
- | `insights` | accounts, transactions, categories, reports | 57 |
580
- | `automation` | accounts, transactions, rules, recurring | 37 |
581
- | `full` | all 14 groups | 140 |
582
-
583
- ```bash
584
- node dist/index.js --preset default
585
- npx @daften/fireflyiii-mcp --preset budgeting
586
- ```
587
-
588
- ### `--groups <list>`
589
-
590
- Comma-separated list of specific groups to load. Cannot be combined with `--preset`.
591
-
592
- Valid group names: `accounts`, `transactions`, `budgets`, `categories`, `bills`, `piggy-banks`, `reports`, `rules`, `recurring`, `attachments`, `currencies`, `exports`, `object-groups`, `transaction-links`
593
-
594
- ```bash
595
- node dist/index.js --groups accounts,transactions,reports
596
- ```
91
+ See the full [tool reference](https://daften.github.io/fireflyiii-mcp/reference/tools) in the docs (140 tools across 14 groups).
597
92
 
598
- ### `--read-only`
599
-
600
- Filter any selection down to read-only tools (`get_*`, `search_*`, `test_*`). All create, update, delete, trigger, and upload tools are excluded. Can be combined with `--preset` or `--groups`.
601
-
602
- ```bash
603
- node dist/index.js --preset default --read-only
604
- node dist/index.js --groups rules --read-only
605
- ```
606
-
607
- Without any filter flags the server registers all 140 tools (equivalent to `--preset full`).
608
-
609
- ### Environment variable equivalents
610
-
611
- Each filter flag has an environment-variable fallback, which is convenient for the npm/stdio and Docker setups where there is no natural place to pass CLI flags. A CLI flag always takes precedence over its environment variable.
612
-
613
- | Variable | Equivalent flag | Example |
614
- |----------|-----------------|---------|
615
- | `MCP_PRESET` | `--preset <name>` | `MCP_PRESET=default` |
616
- | `MCP_GROUPS` | `--groups <list>` | `MCP_GROUPS=accounts,transactions` |
617
- | `MCP_READ_ONLY` | `--read-only` | `MCP_READ_ONLY=true` (also accepts `1`) |
618
-
619
- As with the flags, `MCP_PRESET` and `MCP_GROUPS` are mutually exclusive.
620
-
621
- In a stdio MCP client config:
622
-
623
- ```jsonc
624
- "env": {
625
- "FIREFLY_URL": "https://your-firefly-instance.example.com",
626
- "FIREFLY_TOKEN": "your-personal-access-token-here",
627
- "MCP_PRESET": "default",
628
- "MCP_READ_ONLY": "true"
629
- }
630
- ```
93
+ ---
631
94
 
632
- In Docker — where there are no CLI flags to pass — set them as container environment variables, either via `docker run -e MCP_PRESET=default …` (see [Docker setup](#option-3-docker--http-self-hosted)) or in `docker-compose.yml`, which already forwards them from your shell or `.env` file:
95
+ ## Filtering Tools
633
96
 
634
- ```yaml
635
- environment:
636
- MCP_PRESET: ${MCP_PRESET:-}
637
- MCP_GROUPS: ${MCP_GROUPS:-}
638
- MCP_READ_ONLY: ${MCP_READ_ONLY:-}
639
- ```
97
+ → See [Tool filtering](https://daften.github.io/fireflyiii-mcp/reference/filtering) in the docs.
640
98
 
641
99
  ---
642
100
 
@@ -28,7 +28,7 @@ export function registerExportTools(server, client) {
28
28
  }
29
29
  defineTool(server, name, {
30
30
  title,
31
- description: `Export all ${entity} as a CSV file. Returns raw CSV text.${hasDates ? ' Optionally filter by date range.' : ''}`,
31
+ description: `Export all ${entity} as a CSV file. Returns raw CSV text (text/csv).${hasDates ? ' Optionally filter by date range.' : ''}`,
32
32
  inputSchema,
33
33
  annotations: READ_ANNOTATIONS,
34
34
  }, ({ start, end }) => exportEntity(client, entity, { start: start, end: end }));
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAavD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,MAAoB,EACpB,MAAwC;IAExC,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7C,IAAI,MAAM,CAAC,GAAG;QAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,YAAY,GAAoF;IACpG,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrG,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1F,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjF,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvF,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9E,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1G,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;CACpG,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAqB;IAC1E,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAiC,EAAE,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAC9E,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QAED,UAAU,CACR,MAAM,EACN,IAAI,EACJ;YACE,KAAK;YACL,WAAW,EAAE,cAAc,MAAM,wCAAwC,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9H,WAAW;YACX,WAAW,EAAE,gBAAgB;SAC9B,EACD,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CACjB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAA2B,EAAE,GAAG,EAAE,GAAyB,EAAE,CAAC,CACvG,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAavD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,MAAoB,EACpB,MAAwC;IAExC,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7C,IAAI,MAAM,CAAC,GAAG;QAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,YAAY,GAAoF;IACpG,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrG,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1F,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjF,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvF,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9E,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1G,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;CACpG,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAqB;IAC1E,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAiC,EAAE,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAC9E,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QAED,UAAU,CACR,MAAM,EACN,IAAI,EACJ;YACE,KAAK;YACL,WAAW,EAAE,cAAc,MAAM,mDAAmD,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,EAAE;YACzI,WAAW;YACX,WAAW,EAAE,gBAAgB;SAC9B,EACD,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CACjB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAA2B,EAAE,GAAG,EAAE,GAAyB,EAAE,CAAC,CACvG,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -54,7 +54,7 @@ export async function triggerRuleGroup(client, id, params) {
54
54
  query.end = params.end;
55
55
  if (params.accounts?.length)
56
56
  query['accounts[]'] = params.accounts;
57
- await client.post(`/rule-groups/${id}/trigger`, undefined, query);
57
+ await client.post(`/rule-groups/${id}/trigger`, {}, query);
58
58
  return { triggered: true, id };
59
59
  }
60
60
  export async function triggerRule(client, id, params) {
@@ -65,7 +65,7 @@ export async function triggerRule(client, id, params) {
65
65
  query.end = params.end;
66
66
  if (params.accounts?.length)
67
67
  query['accounts[]'] = params.accounts;
68
- await client.post(`/rules/${id}/trigger`, undefined, query);
68
+ await client.post(`/rules/${id}/trigger`, {}, query);
69
69
  return { triggered: true, id };
70
70
  }
71
71
  export async function testRuleGroup(client, id, params) {
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daften/fireflyiii-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for Firefly III personal finance manager",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,8 +22,12 @@
22
22
  "lint": "biome check src/",
23
23
  "check": "biome ci src/ && tsc --noEmit && vitest run",
24
24
  "test": "vitest run",
25
+ "test:coverage": "vitest run --coverage",
25
26
  "test:watch": "vitest",
26
- "test:integration": "dotenv -e .env.test -- vitest run src/tests/integration.test.ts"
27
+ "test:integration": "dotenv -e .env.test -- vitest run src/tests/integration.test.ts",
28
+ "docs:dev": "vitepress dev docs",
29
+ "docs:build": "vitepress build docs",
30
+ "docs:preview": "vitepress preview docs"
27
31
  },
28
32
  "simple-git-hooks": {
29
33
  "pre-commit": "npm run check"
@@ -54,10 +58,12 @@
54
58
  "devDependencies": {
55
59
  "@biomejs/biome": "2.4.16",
56
60
  "@types/node": "^25.9.1",
61
+ "@vitest/coverage-v8": "^4.1.8",
57
62
  "dotenv-cli": "^11.0.0",
58
63
  "simple-git-hooks": "^2.13.1",
59
64
  "tsx": "^4.22.3",
60
65
  "typescript": "^6.0.3",
66
+ "vitepress": "^1.6.4",
61
67
  "vitest": "^4.1.7"
62
68
  },
63
69
  "engines": {