@scavio/mcp-server 0.31.1 → 0.32.1

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
@@ -3,9 +3,9 @@
3
3
  ![GitHub Repo stars](https://img.shields.io/github/stars/scavio-ai/scavio-mcp?style=social)
4
4
  ![License](https://img.shields.io/github/license/scavio-ai/scavio-mcp)
5
5
 
6
- [Scavio](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [Web Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and MCP server that gives AI agents web search, page extraction, and structured data from e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing sources. 351 tools across 58 platforms plus Extract, map, crawl and batch, one API key.
6
+ [Scavio](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [Web Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and MCP server that gives AI agents web search, page extraction, and structured data from e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing sources. 352 tools across 58 platforms plus Extract, map, crawl and batch, one API key.
7
7
 
8
- **The 22 platforms added in 0.13.0 are opt-in.** Registering all 351 tools puts ~355KB of tool definitions — roughly 89k tokens — into every session before you type anything. So the default is the platform set 0.12.x already had, plus Extract: 142 tools, 112KB. Upgrading never removes a tool you were using. Everything else is one env var away: see [Choosing which tools load](#choosing-which-tools-load).
8
+ **The 22 platforms added in 0.13.0 are opt-in.** Registering all 352 tools puts ~358KB of tool definitions — roughly 90k tokens — into every session before you type anything. So the default is the platform set 0.12.x already had, plus Extract: 142 tools, 112KB. Upgrading never removes a tool you were using. Everything else is one env var away: see [Choosing which tools load](#choosing-which-tools-load).
9
9
 
10
10
  ## Remote MCP Server
11
11
 
@@ -207,8 +207,8 @@ Add to settings (`Cmd+,`):
207
207
 
208
208
  ## Choosing which tools load
209
209
 
210
- Scavio exposes 351 tools. Loading all of them costs ~355KB of `tools/list` —
211
- roughly 89k tokens of context in every session before the user has said anything,
210
+ Scavio exposes 352 tools. Loading all of them costs ~358KB of `tools/list` —
211
+ roughly 90k tokens of context in every session before the user has said anything,
212
212
  and more tools than some clients will accept at all. So the server registers a
213
213
  curated subset by default and lets you pick the rest. The sizes below are
214
214
  measured, not estimated: `npm run toolslist` reproduces them.
@@ -218,7 +218,7 @@ measured, not estimated: `npm run toolslist` reproduces them.
218
218
  | Value | Registers |
219
219
  |-------|-----------|
220
220
  | *(unset)* or `default` | Every platform 0.12.x had, plus `extract` — **142 tools, 112KB** |
221
- | `all` | every platform — **351 tools, ~355KB** |
221
+ | `all` | every platform — **352 tools, ~358KB** |
222
222
  | `extract,sec,g2` | just those platforms — 18 tools, 21KB |
223
223
  | `default,zillow,metaads` | the default set plus two more — 148 tools, 120KB |
224
224
  | `default,chatgpt,gemini` | the default set plus ChatGPT and Gemini — 144 tools, 115KB |
@@ -980,12 +980,14 @@ then names it. No store data.
980
980
 
981
981
  | Tool | Description |
982
982
  |------|-------------|
983
+ | `search_menards` | Search one store, 40 per page: price, sale price, rebate, final price and that store's stock count; sort by price or brand, in-stock-today and price filters |
983
984
  | `get_menards_product` | One product by item id or URL: everyday and sale price, mail-in rebates (e.g. 11%), final price after rebates; `store_id` adds stock quantity and aisle |
984
985
  | `get_menards_stores` | Stores near a ZIP or a city and state: store_id, address, distance, services |
985
986
 
986
- 1 credit per call; `get_menards_product` with `store_id` is 2 credits and can
987
- take 10-40 seconds. There is no search: pass the item id from a menards.com
988
- product URL (`p-60893666613.htm`).
987
+ `search_menards` is 2 credits and needs a `store_id` from `get_menards_stores`.
988
+ `get_menards_product` is 1 credit, 2 with `store_id` (10-40 seconds); take the
989
+ item id from a search result or a menards.com product URL (`p-60893666613.htm`).
990
+ `get_menards_stores` is 1 credit.
989
991
 
990
992
  ### Kroger
991
993
 
@@ -16,7 +16,7 @@ export function registerChewyTools(server, getClient) {
16
16
  return handleApiError(err);
17
17
  }
18
18
  };
19
- server.tool("search_chewy", `Search Chewy products by keyword, or browse a category, 36 per page. Each result has the one-time price, offer and strike-through price, Autoship price and discount, first-Autoship price, discount and savings cap, MAP price and whether it is enforced, per-unit price, rating, rating count, in-stock flag, deal/new/exclusive/prescription flags, brand, image and product URL. Sponsored listings are removed (sponsored_removed counts them). When Chewy sends a query to a category page instead, redirect gives that category's id, name and URL and the results are that category's. sort echoes the order the results are actually in. Prices are in US dollars. Chewy has no store data. Use a result's product_id with get_chewy_product. 10 credits/call.`, {
19
+ server.tool("search_chewy", `Search Chewy products by keyword, or browse a category, 36 per page. Each result has the one-time price, offer and strike-through price, Autoship price and discount, per-unit price, rating, rating count, in-stock flag, deal/new/exclusive/prescription flags, brand, image and product URL. Sponsored listings are removed (sponsored_removed counts them). When Chewy sends a query to a category page instead, redirect gives that category's id, name and URL and the results are that category's. sort echoes the order the results are actually in. Prices are in US dollars. The first-Autoship price, discount and savings cap are filled only on Autoship-deal rows and MAP fields are usually null in search; get_chewy_product always has both. Chewy has no store data. Use a result's product_id with get_chewy_product. 10 credits/call.`, {
20
20
  query: z.string().min(1).max(200).optional()
21
21
  .describe("Search keywords, e.g. 'kong classic dog toy'. Pass this or category_id. Some broad queries (e.g. 'dog food') go straight to a category; redirect then names it."),
22
22
  category_id: z.string().min(1).max(200).optional()
@@ -1 +1 @@
1
- {"version":3,"file":"chewy.js","sourceRoot":"","sources":["../../src/tools/chewy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,kDAAkD;AAElD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAU,CAAC;AAEpH,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,SAA6B;IACjF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,MAA+B,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,0uBAA0uB,EAC1uB;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,iKAAiK,CAAC;QAC9K,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC/C,QAAQ,CAAC,8IAA8I,CAAC;QAC3J,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC9C,QAAQ,CAAC,qCAAqC,CAAC;QAClD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,2FAA2F,CAAC;KACzG,EACD,IAAI,CAAC,QAAQ,CAAC,CACf,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gmBAAgmB,EAChmB;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;aAClD,QAAQ,CAAC,+HAA+H,CAAC;QAC5I,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACtC,QAAQ,CAAC,mDAAmD,CAAC;KACjE,EACD,IAAI,CAAC,SAAS,CAAC,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"chewy.js","sourceRoot":"","sources":["../../src/tools/chewy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,kDAAkD;AAElD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAU,CAAC;AAEpH,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,SAA6B;IACjF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,MAA+B,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,2zBAA2zB,EAC3zB;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,iKAAiK,CAAC;QAC9K,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC/C,QAAQ,CAAC,8IAA8I,CAAC;QAC3J,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAC9C,QAAQ,CAAC,qCAAqC,CAAC;QAClD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,2FAA2F,CAAC;KACzG,EACD,IAAI,CAAC,QAAQ,CAAC,CACf,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gmBAAgmB,EAChmB;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;aAClD,QAAQ,CAAC,+HAA+H,CAAC;QAC5I,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACtC,QAAQ,CAAC,mDAAmD,CAAC;KACjE,EACD,IAAI,CAAC,SAAS,CAAC,CAChB,CAAC;AACJ,CAAC"}
@@ -4,9 +4,9 @@ export declare const PLATFORM_KEYS: string[];
4
4
  /**
5
5
  * What registers when SCAVIO_PLATFORMS is unset.
6
6
  *
7
- * Registering everything is not an option any more. The full surface is 351
8
- * tools, which serialises to 355KB of tools/list (measured with
9
- * `npm run toolslist`, not estimated) — roughly 89k tokens pushed into the
7
+ * Registering everything is not an option any more. The full surface is 352
8
+ * tools, which serialises to 358KB of tools/list (measured with
9
+ * `npm run toolslist`, not estimated) — roughly 90k tokens pushed into the
10
10
  * context of EVERY session before the user has typed anything, and past the
11
11
  * hard tool-count ceiling some clients enforce. The default set below is 142
12
12
  * tools, 112KB (0.20.0: TikTok, YouTube, Reddit and X gained 19 tools; 0.21.0:
@@ -27,7 +27,7 @@ export declare const DEFAULT_PLATFORMS: string[];
27
27
  * Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
28
28
  *
29
29
  * Accepts a comma-separated list of platform keys, plus three keywords:
30
- * all — every platform (351 tools)
30
+ * all — every platform (352 tools)
31
31
  * default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
32
32
  * none — no platform tools at all, leaving only get_usage
33
33
  *
@@ -151,9 +151,9 @@ export const PLATFORM_KEYS = Object.keys(PLATFORMS);
151
151
  /**
152
152
  * What registers when SCAVIO_PLATFORMS is unset.
153
153
  *
154
- * Registering everything is not an option any more. The full surface is 351
155
- * tools, which serialises to 355KB of tools/list (measured with
156
- * `npm run toolslist`, not estimated) — roughly 89k tokens pushed into the
154
+ * Registering everything is not an option any more. The full surface is 352
155
+ * tools, which serialises to 358KB of tools/list (measured with
156
+ * `npm run toolslist`, not estimated) — roughly 90k tokens pushed into the
157
157
  * context of EVERY session before the user has typed anything, and past the
158
158
  * hard tool-count ceiling some clients enforce. The default set below is 142
159
159
  * tools, 112KB (0.20.0: TikTok, YouTube, Reddit and X gained 19 tools; 0.21.0:
@@ -209,7 +209,7 @@ function warnOnce(message) {
209
209
  * Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
210
210
  *
211
211
  * Accepts a comma-separated list of platform keys, plus three keywords:
212
- * all — every platform (351 tools)
212
+ * all — every platform (352 tools)
213
213
  * default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
214
214
  * none — no platform tools at all, leaving only get_usage
215
215
  *
@@ -2,9 +2,10 @@ import { z } from "zod";
2
2
  import { handleApiError } from "../lib/tool-error.js";
3
3
  import { trimResponse } from "../lib/trim-response.js";
4
4
  // Shapes mirror backend/src/routes/menards.ts. Cross-field rules the backend
5
- // enforces and zod here does not: product takes item_id OR url; stores takes
6
- // zip OR city+state. Menards has no search endpoint. No zod `.default()`: the
7
- // MCP SDK would post a defaulted field on every call.
5
+ // enforces and zod here does not: search's store_id must be a real Menards
6
+ // store; product takes item_id OR url; stores takes zip OR city+state;
7
+ // min_price <= max_price. No zod `.default()`: the MCP SDK would post a
8
+ // defaulted field on every call.
8
9
  export function registerMenardsTools(server, getClient) {
9
10
  const post = (path) => async (params) => {
10
11
  try {
@@ -15,7 +16,18 @@ export function registerMenardsTools(server, getClient) {
15
16
  return handleApiError(err);
16
17
  }
17
18
  };
18
- server.tool("get_menards_product", `One Menards product by item id or URL (there is no search): name, brand, model number, SKU, description, bullets, specifications, images, videos and documents, with the full price ladder: everyday price, sale price and its end date, mail-in rebates (text such as "11% REBATE*", amount, dates), final_price after rebates and the you-save amount. Also pickup, delivery and ship-to-store flags. Pass store_id for that store's stock quantity, stock message, aisle location and not_available_at_store; without it prices are the default store's (3598) and stock fields are null. Prices are in dollars. With store_id it can take 10-40 seconds. An unknown item id or store number is a 404. 1 credit; 2 credits with store_id.`, {
19
+ server.tool("search_menards", `Search menards.com at one store, 40 products a page. Each result has item_id, SKU, name, URL, image, the price ladder (price, everyday_price, sale_price, price_type regular/sale/clearance/minimum_advertised, rebates such as "11% REBATE*", final_price after rebates; price_in_cart true when the rebate shows only in the cart) and that store's stock: stock_quantity, stock_message, pickup and delivery flags (not_available_at_store is always null in search; use get_menards_product with store_id). Also total_results, total_pages and facets. store_id is required (get one from get_menards_stores); an unknown store number is a 400. Pass an item_id to get_menards_product for specifications and the aisle. 2 credits.`, {
20
+ query: z.string().min(1).max(200).describe("Search keywords, e.g. 'sledge hammer'."),
21
+ store_id: z.string().regex(/^\d{1,5}$/)
22
+ .describe("Menards store number from get_menards_stores, e.g. '3181'. Required: stock is that store's."),
23
+ page: z.number().int().min(1).max(100).optional().describe("Results page, 1-based, 40 products a page. Defaults to 1."),
24
+ sort: z.enum(["relevance", "price_asc", "price_desc", "brand_asc", "brand_desc"]).optional()
25
+ .describe("Result order. Defaults to relevance. Price sorts order by everyday_price (regular price), not the sale price."),
26
+ in_stock_today: z.boolean().optional().describe("Only products in stock at the store today."),
27
+ min_price: z.number().min(0).optional().describe("Lowest price in dollars."),
28
+ max_price: z.number().min(0).optional().describe("Highest price in dollars."),
29
+ }, post("search"));
30
+ server.tool("get_menards_product", `One Menards product by item id or URL (find item ids with search_menards): name, brand, model number, SKU, description, bullets, specifications, images, videos and documents, with the full price ladder: everyday price, sale price and its end date, mail-in rebates (text such as "11% REBATE*", amount, dates), final_price after rebates and the you-save amount. Also pickup, delivery and ship-to-store flags. Pass store_id for that store's stock quantity, stock message, aisle location and not_available_at_store; without it prices are the default store's (3598) and stock fields are null. Prices are in dollars. With store_id it can take 10-40 seconds. An unknown item id or store number is a 404. 1 credit; 2 credits with store_id.`, {
19
31
  item_id: z.string().regex(/^\d{8,16}$/).optional()
20
32
  .describe("Menards item id: the number after p- in a menards.com product URL, e.g. '60893666613'. Not the SKU or model number. Pass this or url."),
21
33
  url: z.string().max(2000).optional()
@@ -23,7 +35,7 @@ export function registerMenardsTools(server, getClient) {
23
35
  store_id: z.string().regex(/^\d{1,5}$/).optional()
24
36
  .describe("Menards store number from get_menards_stores, e.g. '3181'. Adds that store's stock quantity, stock message and aisle, priced for that store. Costs 2 credits instead of 1 and typically takes 10-40 seconds."),
25
37
  }, post("product"));
26
- server.tool("get_menards_stores", `Menards stores near a US ZIP code or a city and state, nearest first: store number (store_id), name, address, coordinates, distance in miles and services (garden center, grocery, rental center, propane and more). Use a store_id with get_menards_product for that store's stock and aisle. 1 credit.`, {
38
+ server.tool("get_menards_stores", `Menards stores near a US ZIP code or a city and state, nearest first: store number (store_id), name, address, coordinates, distance in miles and services (garden center, grocery, rental center, propane and more). Use a store_id with search_menards or get_menards_product for that store's stock. 1 credit.`, {
27
39
  zip: z.string().regex(/^\d{5}(-\d{4})?$/).optional()
28
40
  .describe("US ZIP code, e.g. '55401'. Pass this, or city and state."),
29
41
  city: z.string().min(1).max(80).optional()
@@ -1 +1 @@
1
- {"version":3,"file":"menards.js","sourceRoot":"","sources":["../../src/tools/menards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,sDAAsD;AAEtD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,SAA6B;IACnF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,MAA+B,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,8sBAA8sB,EAC9sB;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;aAC/C,QAAQ,CAAC,uIAAuI,CAAC;QACpJ,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;aACjC,QAAQ,CAAC,yGAAyG,CAAC;QACtH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;aAC/C,QAAQ,CAAC,8MAA8M,CAAC;KAC5N,EACD,IAAI,CAAC,SAAS,CAAC,CAChB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,0SAA0S,EAC1S;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;aACjD,QAAQ,CAAC,0DAA0D,CAAC;QACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aACvC,QAAQ,CAAC,oDAAoD,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;aAChD,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,EACD,IAAI,CAAC,QAAQ,CAAC,CACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"menards.js","sourceRoot":"","sources":["../../src/tools/menards.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@scavio/mcp-server",
3
- "version": "0.31.1",
3
+ "version": "0.32.1",
4
4
  "mcpName": "io.github.scavio-ai/scavio-mcp",
5
- "description": "MCP server connecting AI agents to Scavio: web search, page extraction, and structured e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing data. 351 tools across 58 platforms plus Extract, site map, crawl and batch extraction, one API key.",
5
+ "description": "MCP server connecting AI agents to Scavio: web search, page extraction, and structured e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing data. 352 tools across 58 platforms plus Extract, site map, crawl and batch extraction, one API key.",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "author": "Scavio",