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 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 Steinhausen"
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":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,gBAAgB;AAEhB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,2GAA2G,EAC3G,oBAAoB,CAAC,KAAK,EAC1B,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,+IAA+I,EAC/I,uBAAuB,CAAC,KAAK,EAC7B,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,oCAAoC,EACpC,EAAE,EACF,KAAK,IAAI,EAAE;IACT,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wHAAwH,EACxH,kBAAkB,CAAC,KAAK,EACxB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gFAAgF,EAChF,mBAAmB,CAAC,KAAK,EACzB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,gBAAgB;AAEhB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
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);
@@ -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()
@@ -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 nutrients = product.nutrientsInformation;
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
- const headerLabels = headers.map((h) => `${h.label ?? ""}${h.unit ? ` (${h.unit})` : ""}`);
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(`|${"-|".repeat(headerLabels.length + 1)}`);
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: p.brand,
42
- brandLine: p.brandLine,
52
+ brand: brand,
53
+ versioning: p.versioning,
43
54
  description: p.description,
44
- origin: p.origin,
45
55
  };
46
- // Price
47
- const price = p.price;
48
- if (price) {
49
- formatted.price = {
50
- value: price.value,
51
- unitPrice: price.unitPrice,
52
- promotionalPrice: price.promotionalPrice,
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 ratings = p.ratings;
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
- if (p.ingredients) {
65
- formatted.ingredients = p.ingredients;
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
- if (p.allergenText) {
69
- formatted.allergens = p.allergenText;
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":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "migros-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for Migros Switzerland product data, nutrition info, store search, and promotions",
5
5
  "main": "dist/index.js",
6
6
  "bin": {