@warmio/mcp 11.0.5 → 11.0.9

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/assets/logo.svg DELETED
@@ -1,14 +0,0 @@
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>
package/mcp.json DELETED
@@ -1,11 +0,0 @@
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
- }
@@ -1,152 +0,0 @@
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