migros-mcp 0.1.0 → 0.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.
- package/README.md +2 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/migros.d.ts +4 -0
- package/dist/migros.js +11 -0
- package/dist/migros.js.map +1 -1
- package/dist/schemas.d.ts +10 -0
- package/dist/schemas.js +8 -0
- package/dist/schemas.js.map +1 -1
- package/dist/tools.d.ts +1 -0
- package/dist/tools.js +63 -22
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Once installed, just talk to Claude naturally:
|
|
|
15
15
|
|
|
16
16
|
- "Search Migros for protein bars"
|
|
17
17
|
- "What's the nutrition info for this Migros product?"
|
|
18
|
-
- "Find Migros stores near
|
|
18
|
+
- "Find Migros stores near Zurich"
|
|
19
19
|
- "What promotions does Migros have right now?"
|
|
20
20
|
- "Compare the protein content of these two products"
|
|
21
21
|
- "Which Migros products are gluten-free?"
|
|
@@ -77,6 +77,7 @@ npx migros-mcp
|
|
|
77
77
|
|---|---|
|
|
78
78
|
| `search_products` | Search Migros products by name or keyword. Returns product IDs. |
|
|
79
79
|
| `get_product_details` | Get full product info: nutrition, ingredients, allergens, price, ratings. |
|
|
80
|
+
| `get_stock` | Check product availability at a specific Migros store. Updated once daily. |
|
|
80
81
|
| `get_categories` | List all Migros product categories. |
|
|
81
82
|
| `search_stores` | Find Migros stores by location with addresses and opening hours. |
|
|
82
83
|
| `get_promotions` | Search current Migros promotions and deals. |
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
-
import { SearchProductsSchema, GetProductDetailsSchema, SearchStoresSchema, GetPromotionsSchema, } from "./schemas.js";
|
|
5
|
-
import { searchProducts, getProductDetails, getCategories, searchStores, getPromotions, } from "./tools.js";
|
|
4
|
+
import { SearchProductsSchema, GetProductDetailsSchema, GetStockSchema, SearchStoresSchema, GetPromotionsSchema, } from "./schemas.js";
|
|
5
|
+
import { searchProducts, getProductDetails, getStock, getCategories, searchStores, getPromotions, } from "./tools.js";
|
|
6
6
|
const server = new McpServer({
|
|
7
7
|
name: "migros-mcp",
|
|
8
8
|
version: "0.1.0",
|
|
@@ -32,6 +32,18 @@ server.tool("get_product_details", "Get full product details including nutrition
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
|
+
server.tool("get_stock", "Check product stock at a specific Migros store. Use search_products and search_stores first to get the IDs. Stock is approximate and updated once a day.", GetStockSchema.shape, async ({ productId, storeId }) => {
|
|
36
|
+
try {
|
|
37
|
+
const result = await getStock(productId, storeId);
|
|
38
|
+
return { content: [{ type: "text", text: result }] };
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: "text", text: `Error: ${error.message}` }],
|
|
43
|
+
isError: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
});
|
|
35
47
|
server.tool("get_categories", "List all Migros product categories", {}, async () => {
|
|
36
48
|
try {
|
|
37
49
|
const result = await getCategories();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/migros.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export declare function searchProducts(query: string, language: string): Promise
|
|
|
3
3
|
numberOfProducts: number;
|
|
4
4
|
}>;
|
|
5
5
|
export declare function getProductDetails(productIds: string[]): Promise<unknown[]>;
|
|
6
|
+
export declare function getStock(productId: string, storeId: string): Promise<{
|
|
7
|
+
catalogItemId: string;
|
|
8
|
+
stock: number | null;
|
|
9
|
+
}>;
|
|
6
10
|
export declare function getCategories(): Promise<unknown>;
|
|
7
11
|
export declare function searchStores(query: string): Promise<unknown[]>;
|
|
8
12
|
export declare function getPromotions(query: string): Promise<unknown>;
|
package/dist/migros.js
CHANGED
|
@@ -46,6 +46,17 @@ export async function getProductDetails(productIds) {
|
|
|
46
46
|
return result ?? [];
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
+
export async function getStock(productId, storeId) {
|
|
50
|
+
return withToken(async (token) => {
|
|
51
|
+
const result = await migros.products.productStock.getProductSupply({ pids: productId, costCenterIds: storeId }, token);
|
|
52
|
+
const avail = result?.availabilities ?? [];
|
|
53
|
+
const match = avail.find((a) => a.id === storeId);
|
|
54
|
+
return {
|
|
55
|
+
catalogItemId: result?.catalogItemId ?? productId,
|
|
56
|
+
stock: match?.stock ?? null,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
49
60
|
export async function getCategories() {
|
|
50
61
|
return withToken(async (token) => {
|
|
51
62
|
const result = await migros.products.productSearch.categoryList({}, token);
|
package/dist/migros.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migros.js","sourceRoot":"","sources":["../src/migros.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migros.js","sourceRoot":"","sources":["../src/migros.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -23,6 +23,16 @@ export declare const SearchStoresSchema: z.ZodObject<{
|
|
|
23
23
|
}, {
|
|
24
24
|
query: string;
|
|
25
25
|
}>;
|
|
26
|
+
export declare const GetStockSchema: z.ZodObject<{
|
|
27
|
+
productId: z.ZodString;
|
|
28
|
+
storeId: z.ZodString;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
productId: string;
|
|
31
|
+
storeId: string;
|
|
32
|
+
}, {
|
|
33
|
+
productId: string;
|
|
34
|
+
storeId: string;
|
|
35
|
+
}>;
|
|
26
36
|
export declare const GetPromotionsSchema: z.ZodObject<{
|
|
27
37
|
query: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
28
38
|
}, "strip", z.ZodTypeAny, {
|
package/dist/schemas.js
CHANGED
|
@@ -17,6 +17,14 @@ export const SearchStoresSchema = z.object({
|
|
|
17
17
|
.string()
|
|
18
18
|
.describe("Search query for Migros stores (city name, zip code, etc.)"),
|
|
19
19
|
});
|
|
20
|
+
export const GetStockSchema = z.object({
|
|
21
|
+
productId: z
|
|
22
|
+
.string()
|
|
23
|
+
.describe("Product UID to check stock for. Get this from search_products."),
|
|
24
|
+
storeId: z
|
|
25
|
+
.string()
|
|
26
|
+
.describe("Store ID (costCenterId) to check stock at. Get this from search_stores."),
|
|
27
|
+
});
|
|
20
28
|
export const GetPromotionsSchema = z.object({
|
|
21
29
|
query: z
|
|
22
30
|
.string()
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC9D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,oDAAoD,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CACP,uFAAuF,CACxF;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC9D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,oDAAoD,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CACP,uFAAuF,CACxF;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,yEAAyE,CAAC;CACvF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC,CAAC"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare function searchProducts(query: string, language: string): Promise<string>;
|
|
2
2
|
export declare function getProductDetails(productIds: string[]): Promise<string>;
|
|
3
|
+
export declare function getStock(productId: string, storeId: string): Promise<string>;
|
|
3
4
|
export declare function getCategories(): Promise<string>;
|
|
4
5
|
export declare function searchStores(query: string): Promise<string>;
|
|
5
6
|
export declare function getPromotions(query: string): Promise<string>;
|
package/dist/tools.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { searchProducts as apiSearchProducts, getProductDetails as apiGetProductDetails, getCategories as apiGetCategories, searchStores as apiSearchStores, getPromotions as apiGetPromotions, } from "./migros.js";
|
|
1
|
+
import { searchProducts as apiSearchProducts, getProductDetails as apiGetProductDetails, getStock as apiGetStock, getCategories as apiGetCategories, searchStores as apiSearchStores, getPromotions as apiGetPromotions, } from "./migros.js";
|
|
2
2
|
export async function searchProducts(query, language) {
|
|
3
3
|
const result = await apiSearchProducts(query, language);
|
|
4
4
|
if (result.productIds.length === 0) {
|
|
@@ -15,7 +15,8 @@ export async function searchProducts(query, language) {
|
|
|
15
15
|
}, null, 2);
|
|
16
16
|
}
|
|
17
17
|
function formatNutrition(product) {
|
|
18
|
-
const
|
|
18
|
+
const productInfo = product.productInformation;
|
|
19
|
+
const nutrients = (productInfo?.nutrientsInformation ?? product.nutrientsInformation);
|
|
19
20
|
if (!nutrients?.nutrientsTable?.rows)
|
|
20
21
|
return null;
|
|
21
22
|
const table = nutrients.nutrientsTable;
|
|
@@ -23,10 +24,15 @@ function formatNutrition(product) {
|
|
|
23
24
|
const rows = table.rows ?? [];
|
|
24
25
|
if (rows.length === 0)
|
|
25
26
|
return null;
|
|
26
|
-
|
|
27
|
+
// Headers can be strings or objects with label/unit
|
|
28
|
+
const headerLabels = headers.map((h) => {
|
|
29
|
+
if (typeof h === "string")
|
|
30
|
+
return h;
|
|
31
|
+
return `${h.label ?? ""}${h.unit ? ` (${h.unit})` : ""}`;
|
|
32
|
+
});
|
|
27
33
|
const lines = [];
|
|
28
34
|
lines.push(`| Nutrient | ${headerLabels.join(" | ")} |`);
|
|
29
|
-
lines.push(
|
|
35
|
+
lines.push(`| --- | ${headerLabels.map(() => "---").join(" | ")} |`);
|
|
30
36
|
for (const row of rows) {
|
|
31
37
|
const values = (row.values ?? []).join(" | ");
|
|
32
38
|
lines.push(`| ${row.label ?? ""} | ${values} |`);
|
|
@@ -35,38 +41,55 @@ function formatNutrition(product) {
|
|
|
35
41
|
}
|
|
36
42
|
function formatProduct(product) {
|
|
37
43
|
const p = product;
|
|
44
|
+
const productInfo = p.productInformation;
|
|
45
|
+
const mainInfo = productInfo?.mainInformation;
|
|
46
|
+
// Brand can be top-level or nested in mainInformation
|
|
47
|
+
const brandInfo = mainInfo?.brand;
|
|
48
|
+
const brand = p.brand ?? brandInfo?.name;
|
|
38
49
|
const formatted = {
|
|
39
50
|
uid: p.uid,
|
|
40
51
|
name: p.name ?? p.title,
|
|
41
|
-
brand:
|
|
42
|
-
|
|
52
|
+
brand: brand,
|
|
53
|
+
versioning: p.versioning,
|
|
43
54
|
description: p.description,
|
|
44
|
-
origin: p.origin,
|
|
45
55
|
};
|
|
46
|
-
// Price
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
// Price info (under offer.price)
|
|
57
|
+
const offer = p.offer;
|
|
58
|
+
const offerPrice = offer?.price;
|
|
59
|
+
if (offerPrice) {
|
|
60
|
+
formatted.price = `CHF ${offerPrice.advertisedDisplayValue}`;
|
|
61
|
+
const unitPrice = offerPrice.unitPrice;
|
|
62
|
+
if (unitPrice) {
|
|
63
|
+
formatted.unitPrice = `CHF ${unitPrice.value}/${unitPrice.unit}`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Promotional price
|
|
67
|
+
const promoPrice = offer?.promotionPrice;
|
|
68
|
+
if (promoPrice?.advertisedDisplayValue) {
|
|
69
|
+
formatted.promoPrice = `CHF ${promoPrice.advertisedDisplayValue}`;
|
|
70
|
+
}
|
|
71
|
+
if (offer?.quantity) {
|
|
72
|
+
formatted.quantity = offer.quantity;
|
|
54
73
|
}
|
|
55
74
|
// Ratings
|
|
56
|
-
const
|
|
75
|
+
const rating = mainInfo?.rating;
|
|
76
|
+
const ratings = (rating ?? p.ratings);
|
|
57
77
|
if (ratings) {
|
|
58
78
|
formatted.ratings = {
|
|
59
|
-
average: ratings.average,
|
|
60
|
-
count: ratings.count,
|
|
79
|
+
average: ratings.nbStars ?? ratings.average,
|
|
80
|
+
count: ratings.nbReviews ?? ratings.count,
|
|
61
81
|
};
|
|
62
82
|
}
|
|
63
83
|
// Ingredients
|
|
64
|
-
|
|
65
|
-
|
|
84
|
+
const ingredients = mainInfo?.ingredients ?? p.ingredients;
|
|
85
|
+
if (ingredients) {
|
|
86
|
+
// Strip HTML tags
|
|
87
|
+
formatted.ingredients = ingredients.replace(/<[^>]*>/g, "");
|
|
66
88
|
}
|
|
67
89
|
// Allergens
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
const allergens = mainInfo?.allergens ?? mainInfo?.allergenIndication ?? p.allergenText;
|
|
91
|
+
if (allergens) {
|
|
92
|
+
formatted.allergens = allergens;
|
|
70
93
|
}
|
|
71
94
|
// Nutrition table (formatted as markdown)
|
|
72
95
|
const nutritionTable = formatNutrition(product);
|
|
@@ -100,6 +123,24 @@ export async function getProductDetails(productIds) {
|
|
|
100
123
|
const formatted = products.map(formatProduct);
|
|
101
124
|
return JSON.stringify(formatted, null, 2);
|
|
102
125
|
}
|
|
126
|
+
export async function getStock(productId, storeId) {
|
|
127
|
+
const result = await apiGetStock(productId, storeId);
|
|
128
|
+
if (result.stock === null) {
|
|
129
|
+
return JSON.stringify({
|
|
130
|
+
productId,
|
|
131
|
+
storeId,
|
|
132
|
+
inStock: false,
|
|
133
|
+
message: "Product not available at this store or stock data unavailable.",
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return JSON.stringify({
|
|
137
|
+
productId,
|
|
138
|
+
storeId,
|
|
139
|
+
inStock: result.stock > 0,
|
|
140
|
+
stock: result.stock,
|
|
141
|
+
note: "Stock is updated once a day and is approximate.",
|
|
142
|
+
});
|
|
143
|
+
}
|
|
103
144
|
export async function getCategories() {
|
|
104
145
|
const categories = await apiGetCategories();
|
|
105
146
|
return JSON.stringify(categories, null, 2);
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,IAAI,iBAAiB,EACnC,iBAAiB,IAAI,oBAAoB,EACzC,aAAa,IAAI,gBAAgB,EACjC,YAAY,IAAI,eAAe,EAC/B,aAAa,IAAI,gBAAgB,GAClC,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAExD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,0BAA0B,KAAK,GAAG;YAC3C,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,sHAAsH;KAC7H,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAgC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|