@hakimelek/monarchmoney 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -0
- package/dist/cjs/client.js +923 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/endpoints.js +11 -0
- package/dist/cjs/endpoints.js.map +1 -0
- package/dist/cjs/errors.js +78 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/queries.js +466 -0
- package/dist/cjs/queries.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/client.d.ts +87 -15
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +151 -9
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +3 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +420 -0
- package/dist/mcp.js.map +1 -0
- package/package.json +18 -7
package/dist/mcp.js
ADDED
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { MonarchMoney } from "./client.js";
|
|
6
|
+
function getClient() {
|
|
7
|
+
const token = process.env.MONARCH_TOKEN;
|
|
8
|
+
if (!token) {
|
|
9
|
+
throw new Error("MONARCH_TOKEN environment variable is required. " +
|
|
10
|
+
"Get one by running: npx @hakimelek/monarchmoney-login");
|
|
11
|
+
}
|
|
12
|
+
return new MonarchMoney({
|
|
13
|
+
token,
|
|
14
|
+
retry: { maxRetries: 3, baseDelayMs: 500 },
|
|
15
|
+
rateLimit: { requestsPerSecond: 5 },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function ok(data) {
|
|
19
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
20
|
+
}
|
|
21
|
+
function err(e) {
|
|
22
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
23
|
+
return { content: [{ type: "text", text: `Error: ${msg}` }], isError: true };
|
|
24
|
+
}
|
|
25
|
+
const server = new McpServer({
|
|
26
|
+
name: "monarch-money",
|
|
27
|
+
version: "0.3.0", // keep in sync with package.json
|
|
28
|
+
});
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// READ TOOLS
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
server.tool("get_accounts", "Get all linked bank, credit, investment, and manual accounts with current balances.", {}, async () => {
|
|
33
|
+
try {
|
|
34
|
+
return ok(await getClient().getAccounts());
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
return err(e);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
server.tool("get_account_holdings", "Get investment holdings (securities, stocks, ETFs) for a specific brokerage or investment account.", { account_id: z.string().describe("The account ID to fetch holdings for") }, async ({ account_id }) => {
|
|
41
|
+
try {
|
|
42
|
+
return ok(await getClient().getAccountHoldings(account_id));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return err(e);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
server.tool("get_account_history", "Get daily balance history for a specific account.", { account_id: z.string().describe("The account ID to fetch history for") }, async ({ account_id }) => {
|
|
49
|
+
try {
|
|
50
|
+
return ok(await getClient().getAccountHistory(account_id));
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
return err(e);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
server.tool("get_account_type_options", "Get all available account types and subtypes (useful when creating manual accounts).", {}, async () => {
|
|
57
|
+
try {
|
|
58
|
+
return ok(await getClient().getAccountTypeOptions());
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
return err(e);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
server.tool("get_recent_account_balances", "Get daily account balances for a date range. Defaults to last 31 days.", {
|
|
65
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format. Defaults to 31 days ago."),
|
|
66
|
+
}, async ({ start_date }) => {
|
|
67
|
+
try {
|
|
68
|
+
return ok(await getClient().getRecentAccountBalances(start_date));
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
return err(e);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
server.tool("get_aggregate_snapshots", "Get daily aggregate net worth across all accounts over time.", {
|
|
75
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
|
|
76
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
|
|
77
|
+
account_type: z.string().optional().describe("Filter by account type"),
|
|
78
|
+
}, async (args) => {
|
|
79
|
+
try {
|
|
80
|
+
return ok(await getClient().getAggregateSnapshots({
|
|
81
|
+
startDate: args.start_date,
|
|
82
|
+
endDate: args.end_date,
|
|
83
|
+
accountType: args.account_type,
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
return err(e);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
server.tool("get_institutions", "Get linked financial institutions and their connection status.", {}, async () => {
|
|
91
|
+
try {
|
|
92
|
+
return ok(await getClient().getInstitutions());
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
return err(e);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
server.tool("get_budgets", "Get budgets with actual spending amounts. Defaults to previous month through next month.", {
|
|
99
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
|
|
100
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
|
|
101
|
+
}, async ({ start_date, end_date }) => {
|
|
102
|
+
try {
|
|
103
|
+
return ok(await getClient().getBudgets(start_date, end_date));
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
return err(e);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
server.tool("get_subscription_details", "Get Monarch Money subscription status (trial, premium, plan info).", {}, async () => {
|
|
110
|
+
try {
|
|
111
|
+
return ok(await getClient().getSubscriptionDetails());
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
return err(e);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
server.tool("get_transactions", "Search and filter transactions with pagination. Returns up to `limit` transactions at a time.", {
|
|
118
|
+
limit: z.number().int().positive().max(500).default(100).describe("Max transactions to return (default: 100)"),
|
|
119
|
+
offset: z.number().int().min(0).default(0).describe("Pagination offset (default: 0)"),
|
|
120
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format (requires end_date)"),
|
|
121
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format (requires start_date)"),
|
|
122
|
+
search: z.string().optional().describe("Search text to filter by merchant name, notes, etc."),
|
|
123
|
+
category_ids: z.array(z.string()).optional().describe("Filter by category IDs"),
|
|
124
|
+
account_ids: z.array(z.string()).optional().describe("Filter by account IDs"),
|
|
125
|
+
tag_ids: z.array(z.string()).optional().describe("Filter by tag IDs"),
|
|
126
|
+
}, async (args) => {
|
|
127
|
+
try {
|
|
128
|
+
return ok(await getClient().getTransactions({
|
|
129
|
+
limit: args.limit,
|
|
130
|
+
offset: args.offset,
|
|
131
|
+
startDate: args.start_date,
|
|
132
|
+
endDate: args.end_date,
|
|
133
|
+
search: args.search,
|
|
134
|
+
categoryIds: args.category_ids,
|
|
135
|
+
accountIds: args.account_ids,
|
|
136
|
+
tagIds: args.tag_ids,
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
return err(e);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
server.tool("get_transactions_summary", "Get aggregate transaction summary: totals, averages, counts, income, expenses.", {}, async () => {
|
|
144
|
+
try {
|
|
145
|
+
return ok(await getClient().getTransactionsSummary());
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
return err(e);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
server.tool("get_transaction_details", "Get full details for a single transaction.", { transaction_id: z.string().describe("The transaction ID") }, async ({ transaction_id }) => {
|
|
152
|
+
try {
|
|
153
|
+
return ok(await getClient().getTransactionDetails(transaction_id));
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
return err(e);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
server.tool("get_transaction_categories", "Get all transaction categories configured in the account.", {}, async () => {
|
|
160
|
+
try {
|
|
161
|
+
return ok(await getClient().getTransactionCategories());
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
return err(e);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
server.tool("get_transaction_category_groups", "Get all category groups (e.g. Income, Food & Drink, Housing).", {}, async () => {
|
|
168
|
+
try {
|
|
169
|
+
return ok(await getClient().getTransactionCategoryGroups());
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
return err(e);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
server.tool("get_transaction_tags", "Get all tags configured in the account.", {}, async () => {
|
|
176
|
+
try {
|
|
177
|
+
return ok(await getClient().getTransactionTags());
|
|
178
|
+
}
|
|
179
|
+
catch (e) {
|
|
180
|
+
return err(e);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
server.tool("get_cashflow", "Get cashflow data grouped by category, category group, and merchant. Defaults to current month.", {
|
|
184
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
|
|
185
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
|
|
186
|
+
}, async ({ start_date, end_date }) => {
|
|
187
|
+
try {
|
|
188
|
+
return ok(await getClient().getCashflow({
|
|
189
|
+
startDate: start_date,
|
|
190
|
+
endDate: end_date,
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
catch (e) {
|
|
194
|
+
return err(e);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
server.tool("get_cashflow_summary", "Get cashflow summary: total income, expenses, savings, and savings rate. Defaults to current month.", {
|
|
198
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
|
|
199
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
|
|
200
|
+
}, async ({ start_date, end_date }) => {
|
|
201
|
+
try {
|
|
202
|
+
return ok(await getClient().getCashflowSummary({
|
|
203
|
+
startDate: start_date,
|
|
204
|
+
endDate: end_date,
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
catch (e) {
|
|
208
|
+
return err(e);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
server.tool("get_recurring_transactions", "Get upcoming recurring transactions (subscriptions, bills). Defaults to current month.", {
|
|
212
|
+
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
|
|
213
|
+
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
|
|
214
|
+
}, async ({ start_date, end_date }) => {
|
|
215
|
+
try {
|
|
216
|
+
return ok(await getClient().getRecurringTransactions(start_date, end_date));
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
return err(e);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
// WRITE TOOLS
|
|
224
|
+
// ---------------------------------------------------------------------------
|
|
225
|
+
server.tool("create_transaction", "Create a new transaction in a specific account.", {
|
|
226
|
+
date: z.string().describe("Transaction date in YYYY-MM-DD format"),
|
|
227
|
+
account_id: z.string().describe("The account ID to create the transaction in"),
|
|
228
|
+
amount: z.number().describe("Transaction amount (positive = income, negative = expense)"),
|
|
229
|
+
merchant_name: z.string().describe("Merchant or payee name"),
|
|
230
|
+
category_id: z.string().describe("Category ID for the transaction"),
|
|
231
|
+
notes: z.string().optional().describe("Optional notes"),
|
|
232
|
+
update_balance: z.boolean().optional().default(false).describe("Whether to update the account balance"),
|
|
233
|
+
}, async (args) => {
|
|
234
|
+
try {
|
|
235
|
+
return ok(await getClient().createTransaction({
|
|
236
|
+
date: args.date,
|
|
237
|
+
accountId: args.account_id,
|
|
238
|
+
amount: args.amount,
|
|
239
|
+
merchantName: args.merchant_name,
|
|
240
|
+
categoryId: args.category_id,
|
|
241
|
+
notes: args.notes,
|
|
242
|
+
updateBalance: args.update_balance,
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
return err(e);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
server.tool("update_transaction", "Update fields on an existing transaction. Only provided fields are changed.", {
|
|
250
|
+
transaction_id: z.string().describe("The transaction ID to update"),
|
|
251
|
+
category_id: z.string().optional().describe("New category ID"),
|
|
252
|
+
merchant_name: z.string().optional().describe("New merchant name"),
|
|
253
|
+
amount: z.number().optional().describe("New amount"),
|
|
254
|
+
date: z.string().optional().describe("New date in YYYY-MM-DD format"),
|
|
255
|
+
notes: z.string().optional().describe("New notes"),
|
|
256
|
+
hide_from_reports: z.boolean().optional().describe("Whether to hide from reports"),
|
|
257
|
+
needs_review: z.boolean().optional().describe("Whether to mark as needs review"),
|
|
258
|
+
}, async (args) => {
|
|
259
|
+
try {
|
|
260
|
+
return ok(await getClient().updateTransaction(args.transaction_id, {
|
|
261
|
+
categoryId: args.category_id,
|
|
262
|
+
merchantName: args.merchant_name,
|
|
263
|
+
amount: args.amount,
|
|
264
|
+
date: args.date,
|
|
265
|
+
notes: args.notes,
|
|
266
|
+
hideFromReports: args.hide_from_reports,
|
|
267
|
+
needsReview: args.needs_review,
|
|
268
|
+
}));
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
return err(e);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
server.tool("delete_transaction", "Delete a transaction by ID.", { transaction_id: z.string().describe("The transaction ID to delete") }, async ({ transaction_id }) => {
|
|
275
|
+
try {
|
|
276
|
+
return ok({ deleted: await getClient().deleteTransaction(transaction_id) });
|
|
277
|
+
}
|
|
278
|
+
catch (e) {
|
|
279
|
+
return err(e);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
server.tool("create_manual_account", "Create a new manual account (not linked to a bank).", {
|
|
283
|
+
account_name: z.string().describe("Display name for the account"),
|
|
284
|
+
account_type: z.string().describe("Account type (e.g. 'depository', 'credit', 'investment')"),
|
|
285
|
+
account_sub_type: z.string().describe("Account subtype (e.g. 'checking', 'savings', 'credit_card')"),
|
|
286
|
+
is_in_net_worth: z.boolean().describe("Whether to include in net worth calculations"),
|
|
287
|
+
account_balance: z.number().optional().default(0).describe("Starting balance"),
|
|
288
|
+
}, async (args) => {
|
|
289
|
+
try {
|
|
290
|
+
return ok(await getClient().createManualAccount({
|
|
291
|
+
accountName: args.account_name,
|
|
292
|
+
accountType: args.account_type,
|
|
293
|
+
accountSubType: args.account_sub_type,
|
|
294
|
+
isInNetWorth: args.is_in_net_worth,
|
|
295
|
+
accountBalance: args.account_balance,
|
|
296
|
+
}));
|
|
297
|
+
}
|
|
298
|
+
catch (e) {
|
|
299
|
+
return err(e);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
server.tool("update_account", "Update an account's settings (name, balance, visibility, etc.).", {
|
|
303
|
+
account_id: z.string().describe("The account ID to update"),
|
|
304
|
+
account_name: z.string().optional().describe("New display name"),
|
|
305
|
+
account_balance: z.number().optional().describe("New balance"),
|
|
306
|
+
include_in_net_worth: z.boolean().optional().describe("Whether to include in net worth"),
|
|
307
|
+
hide_from_summary_list: z.boolean().optional().describe("Whether to hide from summary"),
|
|
308
|
+
}, async (args) => {
|
|
309
|
+
try {
|
|
310
|
+
return ok(await getClient().updateAccount(args.account_id, {
|
|
311
|
+
accountName: args.account_name,
|
|
312
|
+
accountBalance: args.account_balance,
|
|
313
|
+
includeInNetWorth: args.include_in_net_worth,
|
|
314
|
+
hideFromSummaryList: args.hide_from_summary_list,
|
|
315
|
+
}));
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
return err(e);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
server.tool("delete_account", "Delete an account by ID. This is irreversible.", { account_id: z.string().describe("The account ID to delete") }, async ({ account_id }) => {
|
|
322
|
+
try {
|
|
323
|
+
return ok(await getClient().deleteAccount(account_id));
|
|
324
|
+
}
|
|
325
|
+
catch (e) {
|
|
326
|
+
return err(e);
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
server.tool("refresh_accounts", "Trigger a refresh of account balances and transactions from linked institutions. Non-blocking.", {
|
|
330
|
+
account_ids: z.array(z.string()).describe("Account IDs to refresh"),
|
|
331
|
+
}, async ({ account_ids }) => {
|
|
332
|
+
try {
|
|
333
|
+
await getClient().requestAccountsRefresh(account_ids);
|
|
334
|
+
return ok({ success: true, message: "Refresh started. Use is_refresh_complete to check status." });
|
|
335
|
+
}
|
|
336
|
+
catch (e) {
|
|
337
|
+
return err(e);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
server.tool("is_refresh_complete", "Check whether a previously started account refresh has completed.", {
|
|
341
|
+
account_ids: z.array(z.string()).optional().describe("Account IDs to check. Omit to check all."),
|
|
342
|
+
}, async ({ account_ids }) => {
|
|
343
|
+
try {
|
|
344
|
+
const complete = await getClient().isAccountsRefreshComplete(account_ids);
|
|
345
|
+
return ok({ complete });
|
|
346
|
+
}
|
|
347
|
+
catch (e) {
|
|
348
|
+
return err(e);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
server.tool("set_budget_amount", "Set or clear a budget amount for a category or category group.", {
|
|
352
|
+
amount: z.number().describe("Budget amount. Use 0 to clear."),
|
|
353
|
+
category_id: z.string().optional().describe("Category ID (provide this OR category_group_id, not both)"),
|
|
354
|
+
category_group_id: z.string().optional().describe("Category group ID (provide this OR category_id, not both)"),
|
|
355
|
+
start_date: z.string().optional().describe("Budget period start date in YYYY-MM-DD format"),
|
|
356
|
+
apply_to_future: z.boolean().optional().default(false).describe("Whether to apply to future months"),
|
|
357
|
+
}, async (args) => {
|
|
358
|
+
try {
|
|
359
|
+
return ok(await getClient().setBudgetAmount({
|
|
360
|
+
amount: args.amount,
|
|
361
|
+
categoryId: args.category_id,
|
|
362
|
+
categoryGroupId: args.category_group_id,
|
|
363
|
+
startDate: args.start_date,
|
|
364
|
+
applyToFuture: args.apply_to_future,
|
|
365
|
+
}));
|
|
366
|
+
}
|
|
367
|
+
catch (e) {
|
|
368
|
+
return err(e);
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
server.tool("create_transaction_tag", "Create a new tag for categorizing transactions.", {
|
|
372
|
+
name: z.string().describe("Tag name"),
|
|
373
|
+
color: z.string().describe("Tag color (hex code, e.g. '#FF5733')"),
|
|
374
|
+
}, async ({ name, color }) => {
|
|
375
|
+
try {
|
|
376
|
+
return ok(await getClient().createTransactionTag(name, color));
|
|
377
|
+
}
|
|
378
|
+
catch (e) {
|
|
379
|
+
return err(e);
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
server.tool("set_transaction_tags", "Set (replace) all tags on a transaction.", {
|
|
383
|
+
transaction_id: z.string().describe("The transaction ID"),
|
|
384
|
+
tag_ids: z.array(z.string()).describe("Tag IDs to set. Pass empty array to remove all tags."),
|
|
385
|
+
}, async ({ transaction_id, tag_ids }) => {
|
|
386
|
+
try {
|
|
387
|
+
return ok(await getClient().setTransactionTags(transaction_id, tag_ids));
|
|
388
|
+
}
|
|
389
|
+
catch (e) {
|
|
390
|
+
return err(e);
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
server.tool("create_transaction_category", "Create a new transaction category within a category group.", {
|
|
394
|
+
group_id: z.string().describe("The category group ID to add the category to"),
|
|
395
|
+
name: z.string().describe("Category name"),
|
|
396
|
+
icon: z.string().optional().describe("Category icon emoji"),
|
|
397
|
+
}, async (args) => {
|
|
398
|
+
try {
|
|
399
|
+
return ok(await getClient().createTransactionCategory({
|
|
400
|
+
groupId: args.group_id,
|
|
401
|
+
name: args.name,
|
|
402
|
+
icon: args.icon,
|
|
403
|
+
}));
|
|
404
|
+
}
|
|
405
|
+
catch (e) {
|
|
406
|
+
return err(e);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
// ---------------------------------------------------------------------------
|
|
410
|
+
// STARTUP
|
|
411
|
+
// ---------------------------------------------------------------------------
|
|
412
|
+
async function main() {
|
|
413
|
+
const transport = new StdioServerTransport();
|
|
414
|
+
await server.connect(transport);
|
|
415
|
+
}
|
|
416
|
+
main().catch((e) => {
|
|
417
|
+
console.error("MCP server failed to start:", e);
|
|
418
|
+
process.exit(1);
|
|
419
|
+
});
|
|
420
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hakimelek/monarchmoney",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Node.js/TypeScript API client for Monarch Money. Unofficial; not affiliated with Monarch Money.",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Node.js/TypeScript API client for Monarch Money with built-in MCP server for AI agents. Unofficial; not affiliated with Monarch Money.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
6
|
+
"main": "dist/cjs/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
7
8
|
"types": "dist/index.d.ts",
|
|
8
9
|
"exports": {
|
|
9
10
|
".": {
|
|
10
11
|
"types": "./dist/index.d.ts",
|
|
11
12
|
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/cjs/index.js",
|
|
12
14
|
"default": "./dist/index.js"
|
|
13
15
|
}
|
|
14
16
|
},
|
|
17
|
+
"bin": {
|
|
18
|
+
"monarchmoney-mcp": "dist/mcp.js"
|
|
19
|
+
},
|
|
15
20
|
"files": [
|
|
16
21
|
"dist",
|
|
17
22
|
"README.md",
|
|
18
23
|
"LICENSE"
|
|
19
24
|
],
|
|
20
25
|
"scripts": {
|
|
21
|
-
"build": "tsc",
|
|
26
|
+
"build": "tsc && tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
|
|
22
27
|
"clean": "rm -rf dist",
|
|
23
28
|
"test": "vitest run",
|
|
24
29
|
"test:watch": "vitest",
|
|
@@ -33,7 +38,11 @@
|
|
|
33
38
|
"api",
|
|
34
39
|
"finance",
|
|
35
40
|
"budget",
|
|
36
|
-
"personal-finance"
|
|
41
|
+
"personal-finance",
|
|
42
|
+
"mcp",
|
|
43
|
+
"model-context-protocol",
|
|
44
|
+
"ai",
|
|
45
|
+
"agent"
|
|
37
46
|
],
|
|
38
47
|
"author": "",
|
|
39
48
|
"license": "MIT",
|
|
@@ -49,13 +58,15 @@
|
|
|
49
58
|
"node": ">=18"
|
|
50
59
|
},
|
|
51
60
|
"dependencies": {
|
|
52
|
-
"
|
|
61
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
62
|
+
"speakeasy": "^2.0.0",
|
|
63
|
+
"zod": "^4.3.6"
|
|
53
64
|
},
|
|
54
65
|
"devDependencies": {
|
|
55
|
-
"dotenv": "^16.4.0",
|
|
56
66
|
"@types/node": "^20.10.0",
|
|
57
67
|
"@types/speakeasy": "^2.0.10",
|
|
58
68
|
"@vitest/coverage-v8": "^2.0.0",
|
|
69
|
+
"dotenv": "^16.4.0",
|
|
59
70
|
"typescript": "^5.3.0",
|
|
60
71
|
"vitest": "^2.0.0"
|
|
61
72
|
}
|