@warmio/mcp 11.0.4 → 11.0.5

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.
@@ -0,0 +1,152 @@
1
+ # Warm Cursor Plugin
2
+
3
+ Official Cursor Marketplace plugin for [Warm](https://warm.io) — personal finance automation via MCP.
4
+
5
+ ## Features
6
+
7
+ This plugin provides access to Warm's Model Context Protocol (MCP) server, enabling AI assistants to:
8
+
9
+ - **Read financial context** — balances, accounts, budgets, goals, liabilities, holdings
10
+ - **Retrieve transactions** — latest 10-day window or specific month
11
+ - **Search operations** — discover available automation operations
12
+ - **Invoke operations** — execute approved automations with write-operation safeguards
13
+
14
+ All write operations require explicit approval via a two-step describe → invoke flow.
15
+
16
+ ## Installation
17
+
18
+ ### From Cursor Marketplace (Recommended)
19
+
20
+ 1. Open Cursor
21
+ 2. Go to Settings → Cursor Plugins
22
+ 3. Search for "Warm"
23
+ 4. Click "Install"
24
+ 5. Enter your Warm API key when prompted
25
+
26
+ Get your API key: [https://warm.io/settings/api-keys](https://warm.io/settings/api-keys)
27
+
28
+ ### Local Testing (Development)
29
+
30
+ For local development and testing:
31
+
32
+ ```bash
33
+ # Symlink the full plugin package root (not just .cursor-plugin/)
34
+ mkdir -p ~/.cursor/plugins/local
35
+ ln -s /path/to/warm-app/libraries/mcp ~/.cursor/plugins/local/warm
36
+
37
+ # Restart Cursor or run Developer: Reload Window
38
+ ```
39
+
40
+ ## Configuration
41
+
42
+ The plugin requires one environment variable:
43
+
44
+ - **`WARM_API_KEY`** (required, secret) — Your Warm API key from [https://warm.io/settings/api-keys](https://warm.io/settings/api-keys)
45
+
46
+ This is automatically configured when you install from the Cursor Marketplace.
47
+
48
+ ## Available MCP Tools
49
+
50
+ ### Read Tools
51
+
52
+ - `get_financial_context` — Compact overview of your financial status
53
+ - `get_transactions` — Transaction history (latest or by month)
54
+
55
+ ### Automation Tools
56
+
57
+ - `search_operations` — Find available operations
58
+ - `describe_operation` — Get operation details and approval for writes
59
+ - `invoke_operation` — Execute approved operations
60
+
61
+ See [skills/warm/SKILL.md](../skills/warm/SKILL.md) for detailed usage examples and workflow guidance.
62
+
63
+ ## Usage Examples
64
+
65
+ ### Read Financial Data
66
+
67
+ ```
68
+ Show me my current net worth and account balances
69
+ ```
70
+
71
+ ```
72
+ What were my transactions in January 2024?
73
+ ```
74
+
75
+ ### Automation
76
+
77
+ ```
78
+ Search for operations related to budgets
79
+ ```
80
+
81
+ ```
82
+ Create a monthly budget for groceries with $500 limit
83
+ (The assistant will use describe_operation to get approval, then invoke_operation)
84
+ ```
85
+
86
+ ## Security & Approvals
87
+
88
+ - **Read operations** execute immediately without approval
89
+ - **Write operations** require a two-step approval flow:
90
+ 1. `describe_operation` with exact input → returns `approval_id`
91
+ 2. `invoke_operation` with same input + `approval_id` → executes
92
+ - Approvals expire and are single-use
93
+ - The AI cannot move money or modify data without explicit approval
94
+
95
+ ## Documentation
96
+
97
+ - Plugin skill guide: [skills/warm/SKILL.md](../skills/warm/SKILL.md)
98
+ - Warm Developer Docs: [https://warm.io/developers](https://warm.io/developers)
99
+ - MCP package source: [libraries/mcp](../)
100
+ - Published npm package: [@warmio/mcp](https://www.npmjs.com/package/@warmio/mcp)
101
+
102
+ ## Publishing to Cursor Marketplace
103
+
104
+ To publish this plugin to the Cursor Marketplace:
105
+
106
+ 1. Ensure `plugin.json`, `mcp.json`, and `skills/warm/SKILL.md` are complete and correct
107
+ 2. Test locally via `~/.cursor/plugins/local/warm` symlink to `libraries/mcp`
108
+ 3. Submit at: [https://cursor.com/marketplace/publish](https://cursor.com/marketplace/publish)
109
+ 4. Provide repository path: `jasonstockman/warm-app` (monorepo root with `.cursor-plugin/marketplace.json`)
110
+
111
+ The marketplace will read the plugin manifest and host it for one-click installation.
112
+
113
+ ## Development
114
+
115
+ This plugin is maintained in the [warm-app](https://github.com/jasonstockman/warm-app) monorepo under `libraries/mcp/.cursor-plugin`.
116
+
117
+ The underlying MCP server is published as [@warmio/mcp](https://www.npmjs.com/package/@warmio/mcp) on npm.
118
+
119
+ ### Local Package Testing
120
+
121
+ To test against a local build of `@warmio/mcp`:
122
+
123
+ ```bash
124
+ # Build the MCP package
125
+ cd libraries/mcp
126
+ pnpm build
127
+
128
+ # Update mcp.json to use local path temporarily
129
+ {
130
+ "mcpServers": {
131
+ "warm": {
132
+ "command": "node",
133
+ "args": ["/absolute/path/to/libraries/mcp/dist/cli.js", "mcp"],
134
+ "env": {
135
+ "WARM_API_KEY": "${WARM_API_KEY}"
136
+ }
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ Remember to revert to `npx -y @warmio/mcp@latest mcp` before publishing.
143
+
144
+ ## License
145
+
146
+ MIT License — see [LICENSE](../LICENSE) or repository root for details.
147
+
148
+ ## Support
149
+
150
+ - Issues: [GitHub Issues](https://github.com/jasonstockman/warm-app/issues)
151
+ - Email: hello@warm.io
152
+ - Documentation: https://warm.io/developers
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "warm",
3
+ "displayName": "Warm",
4
+ "version": "1.0.0",
5
+ "description": "Personal finance automation MCP server. Read financial context, transactions, search operations, and invoke approved automations.",
6
+ "author": {
7
+ "name": "Warm",
8
+ "email": "hello@warm.io"
9
+ },
10
+ "homepage": "https://warm.io/developers",
11
+ "repository": "https://github.com/jasonstockman/warm-app",
12
+ "license": "MIT",
13
+ "logo": "assets/logo.svg",
14
+ "keywords": [
15
+ "warm",
16
+ "finance",
17
+ "automation",
18
+ "personal-finance",
19
+ "financial-data",
20
+ "budgets",
21
+ "transactions",
22
+ "mcp"
23
+ ],
24
+ "category": "integrations",
25
+ "tags": ["finance", "automation", "personal-finance", "mcp"],
26
+ "variables": {
27
+ "type": "object",
28
+ "properties": {
29
+ "WARM_API_KEY": {
30
+ "type": "string",
31
+ "title": "Warm API key",
32
+ "description": "Full-access API key from https://warm.io/settings/api-keys"
33
+ }
34
+ },
35
+ "required": ["WARM_API_KEY"]
36
+ },
37
+ "mcpServers": "./mcp.json",
38
+ "skills": "./skills/"
39
+ }
package/README.md CHANGED
@@ -15,3 +15,7 @@ npx -y @warmio/mcp@latest mcp
15
15
  The server exposes financial-context read tools plus the automation operation catalog. The installer
16
16
  stores the local credential with owner-only file permissions. Importing `@warmio/mcp` exposes the
17
17
  library API without starting the CLI.
18
+
19
+ ## Cursor Marketplace
20
+
21
+ For Cursor users, install the official [Warm plugin](https://cursor.com/marketplace) directly from the Cursor Marketplace for one-click setup. The plugin is also available at [`.cursor-plugin/`](.cursor-plugin/) in this package.
@@ -0,0 +1,14 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="600" height="469" viewBox="0 0 600 469" version="1.1">
2
+ <style>
3
+ :root {
4
+ color-scheme: light dark;
5
+ color: CanvasText;
6
+ }
7
+ </style>
8
+ <!-- Left segment -->
9
+ <path d="M 33.500 40.660 C 20.206 42.744, 0 48.560, -0 50.302 C -0 51.759, 123.955 348.889, 127.738 356.500 C 142.182 385.561, 169.450 410.275, 198.946 421.040 C 218.922 428.330, 243.683 430.825, 264.526 427.648 C 277.151 425.724, 294.628 420.011, 294.194 417.952 C 293.790 416.040, 172.732 124.599, 168.522 115.405 C 161.779 100.679, 149.168 84.171, 135.093 71.646 C 119.358 57.644, 98.880 47.362, 77 42.478 C 69.645 40.836, 40.220 39.606, 33.500 40.660" fill="currentColor" stroke="currentColor" stroke-width="8"/>
10
+ <!-- Center segment -->
11
+ <path d="M 229.651 41.597 C 217.916 43.718, 202.443 49.144, 202.744 51.035 C 203.418 55.268, 329.689 356.584, 333.687 363.500 C 340.525 375.327, 345.293 381.483, 355.408 391.538 C 374.603 410.619, 398.878 423.014, 425.907 427.533 C 439.649 429.831, 463.594 429.132, 476 426.072 C 489.892 422.645, 497.188 419.815, 496.703 418.043 C 495.416 413.331, 371.058 116.094, 367.406 109 C 349.467 74.149, 313.008 47.875, 273.752 41.509 C 262.281 39.648, 240.195 39.693, 229.651 41.597" fill="currentColor" stroke="currentColor" stroke-width="8"/>
12
+ <!-- Right segment -->
13
+ <path d="M 463 40.593 C 451.670 42.545, 447.288 43.569, 439 46.203 C 433.775 47.864, 429.338 49.372, 429.140 49.555 C 428.942 49.737, 434.670 64.021, 441.868 81.297 C 455.574 114.190, 462.215 131.660, 468.447 151.208 C 475.360 172.892, 486.124 186.213, 503.834 194.997 C 530.956 208.450, 564.982 201.679, 583.654 179.112 C 604.399 154.041, 605.407 121.944, 586.291 95.155 C 567.827 69.280, 539.107 50.114, 508 42.907 C 500.680 41.212, 494.713 40.644, 482 40.434 C 472.925 40.284, 464.375 40.356, 463 40.593" fill="currentColor" stroke="currentColor" stroke-width="8"/>
14
+ </svg>
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAsCA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAMF,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,KAAK,CAAC;IACnC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7E;AAmWD,2EAA2E;AAC3E,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCzE"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAsCA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAMF,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,KAAK,CAAC;IACnC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7E;AA2WD,2EAA2E;AAC3E,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCzE"}
package/dist/install.js CHANGED
@@ -21,21 +21,31 @@ function configPath(config, homeDir) {
21
21
  }
22
22
  function supportedClients(homeDir, workingDirectory) {
23
23
  const platform = process.platform === 'win32' ? 'win32' : process.platform === 'darwin' ? 'darwin' : 'linux';
24
- const globalClients = WARM_MCP_CLIENTS.map((client) => ({
25
- alwaysInclude: 'alwaysInclude' in client && client.alwaysInclude,
26
- configDialect: client.configDialect,
27
- configPath: configPath(client.configPaths[platform], homeDir),
28
- format: client.format,
29
- name: client.name,
30
- })).filter((client) => client.alwaysInclude || fs.existsSync(path.dirname(client.configPath)));
31
- const projectClients = WARM_MCP_PROJECT_CONFIGS.map((relativePath) => path.resolve(workingDirectory, relativePath))
32
- .filter((candidate) => fs.existsSync(candidate))
33
- .map((candidate) => ({
34
- configPath: candidate,
35
- configDialect: 'mcpServers',
36
- format: 'json',
37
- name: `Project (${path.relative(workingDirectory, candidate)})`,
38
- }));
24
+ const globalClients = WARM_MCP_CLIENTS.reduce((clients, client) => {
25
+ const resolved = {
26
+ alwaysInclude: 'alwaysInclude' in client && client.alwaysInclude,
27
+ configDialect: client.configDialect,
28
+ configPath: configPath(client.configPaths[platform], homeDir),
29
+ format: client.format,
30
+ name: client.name,
31
+ };
32
+ if (resolved.alwaysInclude || fs.existsSync(path.dirname(resolved.configPath))) {
33
+ clients.push(resolved);
34
+ }
35
+ return clients;
36
+ }, []);
37
+ const projectClients = WARM_MCP_PROJECT_CONFIGS.reduce((clients, relativePath) => {
38
+ const candidate = path.resolve(workingDirectory, relativePath);
39
+ if (fs.existsSync(candidate)) {
40
+ clients.push({
41
+ configPath: candidate,
42
+ configDialect: 'mcpServers',
43
+ format: 'json',
44
+ name: `Project (${path.relative(workingDirectory, candidate)})`,
45
+ });
46
+ }
47
+ return clients;
48
+ }, []);
39
49
  const configPaths = new Set();
40
50
  return [...globalClients, ...projectClients].filter((client) => {
41
51
  if (configPaths.has(client.configPath))
@@ -328,13 +338,19 @@ export async function install(options = {}) {
328
338
  client,
329
339
  existing: existingWarmConfig(client),
330
340
  }));
331
- const configured = discovered
332
- .filter(({ existing }) => existing.exists)
333
- .map(({ client }) => client);
341
+ const configured = discovered.reduce((clients, { client, existing }) => {
342
+ if (existing.exists) {
343
+ clients.push(client);
344
+ }
345
+ return clients;
346
+ }, []);
334
347
  const replaceExisting = options.force || configured.length === 0 || (await confirm(REINSTALL_PROMPT));
335
- const targets = discovered
336
- .filter(({ existing }) => replaceExisting || !existing.exists)
337
- .map(({ client }) => client);
348
+ const targets = discovered.reduce((clients, { client, existing }) => {
349
+ if (replaceExisting || !existing.exists) {
350
+ clients.push(client);
351
+ }
352
+ return clients;
353
+ }, []);
338
354
  const target = getWarmApiKeyPath();
339
355
  const { apiKey } = await resolveApiKey(target, ask, options);
340
356
  const clientFiles = targets.map(prepareClientFile);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/mcp.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "warm": {
4
+ "command": "npx",
5
+ "args": ["-y", "@warmio/mcp@latest", "mcp"],
6
+ "env": {
7
+ "WARM_API_KEY": "${WARM_API_KEY}"
8
+ }
9
+ }
10
+ }
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmio/mcp",
3
- "version": "11.0.4",
3
+ "version": "11.0.5",
4
4
  "description": "Warm local stdio MCP server",
5
5
  "type": "module",
6
6
  "engines": {
@@ -33,7 +33,11 @@
33
33
  "warmio": "dist/cli.js"
34
34
  },
35
35
  "files": [
36
- "dist"
36
+ "dist",
37
+ ".cursor-plugin",
38
+ "assets",
39
+ "mcp.json",
40
+ "skills"
37
41
  ],
38
42
  "scripts": {
39
43
  "build": "tsc -p tsconfig.json",
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: warm
3
+ description: Use Warm MCP tools to read financial context, retrieve transactions, search operations, and invoke approved automations.
4
+ ---
5
+
6
+ # Warm MCP Skill
7
+
8
+ Use Warm MCP tools to read financial context, retrieve transactions, search operations, and invoke approved automations.
9
+
10
+ ## Available Tools
11
+
12
+ ### Read Tools
13
+
14
+ **`get_financial_context`** — Read-only compact FinancialContext JSON. Includes:
15
+
16
+ - `status.position` — current balances and net worth
17
+ - `status.accounts` — connected accounts
18
+ - Transaction index (total/months)
19
+ - Recurring transactions
20
+ - Budgets, goals, snapshots
21
+ - Liabilities, holdings, health metrics
22
+
23
+ Transaction items are not inline; use `get_transactions` to retrieve items.
24
+
25
+ **`get_transactions`** — Read-only transactions from the FinancialContext artifact.
26
+
27
+ - Pass `period: "latest"` for the fixed 10-day latest window
28
+ - Pass `period: "YYYY-MM"` for a specific month (e.g. `"2024-01"`)
29
+ - Months outside the covered range return an error
30
+ - The latest window is not caller-configurable
31
+
32
+ ### Automation Tools
33
+
34
+ **`search_operations`** — Search the supported Warm operation catalog.
35
+
36
+ - Use this first to find the smallest matching operation
37
+ - Optional `query` parameter: words describing the action or data you need (max 200 chars)
38
+ - Returns matching operations with IDs and descriptions
39
+
40
+ **`describe_operation`** — Describe one operation, including its input schema and risk.
41
+
42
+ - Required: `operation_id` (string)
43
+ - Optional: `input` (exact intended input)
44
+ - For write operations, pass the exact intended input to receive an approval with:
45
+ - `approval_id` (UUID)
46
+ - Status, URL, and expiry timestamp
47
+ - Use the approval_id to invoke the operation
48
+
49
+ **`invoke_operation`** — Invoke one previously discovered Warm operation.
50
+
51
+ - Required: `operation_id` (string)
52
+ - Optional: `input` (operation parameters)
53
+ - Optional: `approval_id` (UUID, required for write operations)
54
+ - Every write operation requires the `approval_id` returned for the exact same input by `describe_operation`
55
+ - Returns operation result with status, body, headers, and operation_id
56
+
57
+ ## Workflow
58
+
59
+ ### Reading Financial Data
60
+
61
+ 1. Call `get_financial_context` to get the overview
62
+ 2. Call `get_transactions` with `period: "latest"` or `period: "YYYY-MM"` to retrieve transactions
63
+
64
+ ### Invoking Automations
65
+
66
+ 1. Call `search_operations` with optional query to find relevant operations
67
+ 2. Call `describe_operation` with the `operation_id` and exact `input` to get approval (for writes)
68
+ 3. **Wait for owner approval**: For write operations, surface the `approval.url` to the user and wait for them to visit it and approve in Warm Settings
69
+ 4. Call `invoke_operation` with the `operation_id`, `input`, and `approval_id` (only after approval status changes from `pending`)
70
+
71
+ ## Important Rules
72
+
73
+ - **Never move money without explicit approval**: Write operations require an `approval_id` from `describe_operation` AND owner approval at the returned `approval.url`
74
+ - **Wait for owner approval**: After calling `describe_operation` for a write, surface the `approval.url` and wait for owner confirmation before calling `invoke_operation`
75
+ - **Use exact input for approval**: The `input` passed to `describe_operation` must match exactly the `input` passed to `invoke_operation`
76
+ - **Check operation risk**: Review the risk level in `describe_operation` response before proceeding
77
+ - **Respect expiry**: Approval IDs have an expiry timestamp; check before invoking
78
+ - **Handle errors**: Operations return status codes; check for success (2xx) vs error (4xx/5xx). A 409 status typically means the approval is still `pending` and not yet approved by the owner
79
+
80
+ ## Examples
81
+
82
+ ### Get Financial Overview
83
+
84
+ ```typescript
85
+ // Step 1: Get context
86
+ const context = await get_financial_context({});
87
+ console.log(`Net worth: $${context.status.position.net_worth}`);
88
+
89
+ // Step 2: Get recent transactions
90
+ const transactions = await get_transactions({ period: 'latest' });
91
+ console.log(`Recent transactions: ${transactions.items.length}`);
92
+ ```
93
+
94
+ ### Search and Invoke Operation
95
+
96
+ ```typescript
97
+ // Step 1: Search for operations
98
+ const results = await search_operations({
99
+ query: 'create budget',
100
+ });
101
+
102
+ // Step 2: Describe the operation with exact input
103
+ const description = await describe_operation({
104
+ operation_id: 'budgets.create',
105
+ input: {
106
+ body: {
107
+ name: 'Groceries',
108
+ budget_type: 'category',
109
+ amount: 500,
110
+ period: 'monthly',
111
+ rollover_enabled: false,
112
+ },
113
+ },
114
+ });
115
+
116
+ // Step 3: Owner must approve at the returned URL
117
+ console.log(`Approval required: ${description.approval.url}`);
118
+ console.log(`Status: ${description.approval.status}`); // "pending"
119
+ // Owner visits URL, reviews, and approves
120
+
121
+ // Step 4: After owner approval, invoke with approval_id
122
+ const result = await invoke_operation({
123
+ operation_id: 'budgets.create',
124
+ input: {
125
+ body: {
126
+ name: 'Groceries',
127
+ budget_type: 'category',
128
+ amount: 500,
129
+ period: 'monthly',
130
+ rollover_enabled: false,
131
+ },
132
+ },
133
+ approval_id: description.approval.id,
134
+ });
135
+ ```
136
+
137
+ ## Error Handling
138
+
139
+ - API errors return structured JSON with `error` and `status` fields
140
+ - Transaction queries for invalid months return descriptive errors
141
+ - Write operations without valid approval_id fail with 403/401 errors
142
+ - Always check operation status codes before treating results as successful
143
+
144
+ ## Authentication
145
+
146
+ The Warm MCP server uses the `WARM_API_KEY` environment variable for authentication. This is automatically configured by the Cursor plugin when you provide your API key.
147
+
148
+ Get your API key from: https://warm.io/settings/api-keys
149
+
150
+ ## Documentation
151
+
152
+ Full API documentation: https://warm.io/developers