mcp-grocy 2.1.0 → 2.2.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.
|
@@ -64,7 +64,7 @@ Configuration examples for common use cases are provided in `mcp-grocy.yaml.exam
|
|
|
64
64
|
### Tool Access Control
|
|
65
65
|
- Disable unused tools to reduce attack surface
|
|
66
66
|
- Use read-only mode for information-gathering use cases
|
|
67
|
-
- Be cautious with tools that modify data (`
|
|
67
|
+
- Be cautious with tools that modify data (`inventory_transactions_purchase`, `inventory_stock_entry_consume`, etc.)
|
|
68
68
|
|
|
69
69
|
### Network Security
|
|
70
70
|
- Use HTTPS for production Grocy instances
|
|
@@ -55,7 +55,7 @@ use_mcp_tool('grocy-api', 'add_shopping_list_item', {
|
|
|
55
55
|
|
|
56
56
|
### Purchase a Product
|
|
57
57
|
```typescript
|
|
58
|
-
use_mcp_tool('grocy-api', '
|
|
58
|
+
use_mcp_tool('grocy-api', 'inventory_transactions_purchase', {
|
|
59
59
|
"productId": 1,
|
|
60
60
|
"amount": 2,
|
|
61
61
|
"bestBeforeDate": "2024-12-31",
|
|
@@ -66,7 +66,7 @@ use_mcp_tool('grocy-api', 'purchase_product', {
|
|
|
66
66
|
|
|
67
67
|
### Consume a Product
|
|
68
68
|
```typescript
|
|
69
|
-
use_mcp_tool('grocy-api', '
|
|
69
|
+
use_mcp_tool('grocy-api', 'inventory_stock_entry_consume', {
|
|
70
70
|
"productId": 1,
|
|
71
71
|
"amount": 1,
|
|
72
72
|
"spoiled": false
|
|
@@ -173,7 +173,7 @@ use_mcp_tool('grocy-api', 'get_shopping_locations', {});
|
|
|
173
173
|
|
|
174
174
|
### Transfer Product Between Locations
|
|
175
175
|
```typescript
|
|
176
|
-
use_mcp_tool('grocy-api', '
|
|
176
|
+
use_mcp_tool('grocy-api', 'inventory_stock_entry_transfer', {
|
|
177
177
|
"productId": 1,
|
|
178
178
|
"amount": 1,
|
|
179
179
|
"locationIdFrom": 1,
|
|
@@ -130,7 +130,7 @@ export const inventoryToolDefinitions = [
|
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
name: 'inventory_transactions_consume',
|
|
133
|
-
description: '[INVENTORY/TRANSACTIONS] Remove a product from stock (consume/use inventory). Use inventory_products_get to find the product ID.',
|
|
133
|
+
description: '[INVENTORY/TRANSACTIONS] Remove a product from stock (consume/use inventory). For more granular control over specific stock entries, prefer inventory_stock_entry_consume. Use inventory_products_get to find the product ID.',
|
|
134
134
|
inputSchema: {
|
|
135
135
|
type: 'object',
|
|
136
136
|
properties: {
|
|
@@ -161,7 +161,7 @@ export const inventoryToolDefinitions = [
|
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
name: 'inventory_transactions_transfer',
|
|
164
|
-
description: '[INVENTORY/TRANSACTIONS] Transfer a product between locations. Use inventory_products_get to find the product ID and system_locations_get to find location IDs.',
|
|
164
|
+
description: '[INVENTORY/TRANSACTIONS] Transfer a product between locations. For more granular control over specific stock entries, prefer inventory_stock_entry_transfer. Use inventory_products_get to find the product ID and system_locations_get to find location IDs.',
|
|
165
165
|
inputSchema: {
|
|
166
166
|
type: 'object',
|
|
167
167
|
properties: {
|
|
@@ -221,7 +221,7 @@ export const inventoryToolDefinitions = [
|
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
name: 'inventory_transactions_open',
|
|
224
|
-
description: '[INVENTORY/TRANSACTIONS] Mark a product as opened/started. Use inventory_products_get to find the product ID.',
|
|
224
|
+
description: '[INVENTORY/TRANSACTIONS] Mark a product as opened/started. For more granular control over specific stock entries, prefer inventory_stock_entry_open. Use inventory_products_get to find the product ID.',
|
|
225
225
|
inputSchema: {
|
|
226
226
|
type: 'object',
|
|
227
227
|
properties: {
|
|
@@ -256,7 +256,7 @@ export class InventoryToolHandlers extends BaseToolHandler {
|
|
|
256
256
|
message: `Found ${enrichedMatches.length} product matches for "${productName}" (ordered from most likely to least likely match)`,
|
|
257
257
|
productMatches: enrichedMatches,
|
|
258
258
|
allAvailableLocations: locations.map((l) => ({ id: l.id, name: l.name })),
|
|
259
|
-
instructions: 'Review the matches above. Use the exact productId and locationId from this data for any product operations (
|
|
259
|
+
instructions: 'Review the matches above. Use the exact productId and locationId from this data for any product operations (inventory_stock_entry_consume, inventory_stock_entry_transfer, inventory_transactions_purchase, inventory_transactions_adjust, etc.).'
|
|
260
260
|
});
|
|
261
261
|
});
|
|
262
262
|
};
|
package/build/version.js
CHANGED