@scavio/mcp-server 0.52.0 → 0.54.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 +80 -5
- package/dist/tools/ikea.d.ts +3 -0
- package/dist/tools/ikea.js +174 -0
- package/dist/tools/ikea.js.map +1 -0
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.js +6 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/publix.d.ts +3 -0
- package/dist/tools/publix.js +110 -0
- package/dist/tools/publix.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|

|
|
4
4
|

|
|
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.
|
|
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. 516 tools across 75 platforms plus Extract, Company Enrich, map, crawl and batch, one API key.
|
|
7
7
|
|
|
8
|
-
**The 22 platforms added in 0.13.0 are opt-in.** Registering all
|
|
8
|
+
**The 22 platforms added in 0.13.0 are opt-in.** Registering all 516 tools puts ~725KB 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 and Company Enrich: 143 tools, 114KB. 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,7 +207,7 @@ Add to settings (`Cmd+,`):
|
|
|
207
207
|
|
|
208
208
|
## Choosing which tools load
|
|
209
209
|
|
|
210
|
-
Scavio exposes
|
|
210
|
+
Scavio exposes 516 tools. Loading all of them costs ~725KB of `tools/list` —
|
|
211
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
|
|
@@ -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` and `company` — **143 tools, 114KB** |
|
|
221
|
-
| `all` | every platform — **
|
|
221
|
+
| `all` | every platform — **516 tools, ~725KB** |
|
|
222
222
|
| `extract,sec,g2` | just those platforms — 18 tools, 21KB |
|
|
223
223
|
| `default,zillow,metaads` | the default set plus two more — 149 tools, 122KB |
|
|
224
224
|
| `default,chatgpt,gemini` | the default set plus ChatGPT and Gemini — 145 tools, 117KB |
|
|
@@ -233,7 +233,7 @@ tells you to call to check the server works.
|
|
|
233
233
|
|
|
234
234
|
**Platform keys:** `extract`, `company`, `google`, `chatgpt`, `gemini`, `youtube`, `tiktok`, `instagram`,
|
|
235
235
|
`reddit`, `x`, `linkedin`, `threads`, `kuaishou`, `amazon`, `walmart`, `ebay`,
|
|
236
|
-
`target`, `homedepot`, `costco`, `heb`, `kroger`, `decathlon`, `specs`, `lowes`, `samsclub`, `canadiantire`, `dollargeneral`, `sephora`, `ulta`, `aldi`, `microcenter`, `walgreens`, `cvs`, `wholefoods`, `harborfreight`, `petsmart`, `petco`, `iherb`, `chewy`, `menards`, `nordstrom`, `nordstromrack`, `bestbuy`, `tcgplayer`, `vinted`, `macys`, `saks`, `kohls`, `jcpenney`, `dicks`, `footlocker`, `fanatics`, `carrefour`, `allegro`, `olx`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`,
|
|
236
|
+
`target`, `homedepot`, `costco`, `heb`, `kroger`, `publix`, `ikea`, `decathlon`, `specs`, `lowes`, `samsclub`, `canadiantire`, `dollargeneral`, `sephora`, `ulta`, `aldi`, `microcenter`, `walgreens`, `cvs`, `wholefoods`, `harborfreight`, `petsmart`, `petco`, `iherb`, `chewy`, `menards`, `nordstrom`, `nordstromrack`, `bestbuy`, `tcgplayer`, `vinted`, `macys`, `saks`, `kohls`, `jcpenney`, `dicks`, `footlocker`, `fanatics`, `carrefour`, `allegro`, `olx`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`,
|
|
237
237
|
`tripadvisor`, `yelp`, `zillow`, `redfin`, `realtor`, `rightmove`, `indeed`, `glassdoor`,
|
|
238
238
|
`appstore`, `googleplay`, `g2`, `capterra`, `trustpilot`, `googleads`, `metaads`, `sec`, `companieshouse`
|
|
239
239
|
|
|
@@ -1503,6 +1503,81 @@ returned, fuel prices are not. Coupons are listed, never clipped (no account).
|
|
|
1503
1503
|
The printed weekly ad circular is not available. Failed calls are not charged;
|
|
1504
1504
|
an unknown UPC or store id is a charged 404.
|
|
1505
1505
|
|
|
1506
|
+
### [Publix](https://scavio.dev/docs/publix-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme)
|
|
1507
|
+
|
|
1508
|
+
Publix grocery data by store: the weekly ad with BOGO deals, Extra Savings, digital coupons, the deli and bakery order-ahead menu (Pub Subs) with store prices, product search, category listings, nutrition facts and store locations.
|
|
1509
|
+
|
|
1510
|
+
| Tool | Description |
|
|
1511
|
+
|------|-------------|
|
|
1512
|
+
| `search_publix` | Search at one store by keyword, 48 per page: item code, title, brand, size, aisle, on-sale flag, promo (single, BOGO or multi-buy, with dates), price where Publix shows one, coupon flag; sort by name, popularity, savings or views; filter to on sale, BOGO or a brand; facets |
|
|
1513
|
+
| `get_publix_product` | One product by item code at one store: the product card plus nutrition facts (every nutrient with amount, unit and % daily value) |
|
|
1514
|
+
| `get_publix_category` | A category's products at one store by `category_url` or `category_id`, in the search item shape, with the search sorts and filters |
|
|
1515
|
+
| `get_publix_categories` | The category tree (departments, categories, sub-categories) with ids for `get_publix_category` |
|
|
1516
|
+
| `get_publix_weekly_ad` | The store's current weekly ad (about 700 items, about 230 BOGO): savings text, deal type (bogo, b2g1, multi, price, percent_off), price, bundle, department, ad start and end dates; filter by department, BOGO only or text |
|
|
1517
|
+
| `get_publix_extra_savings` | The store's Extra Savings (temporary price reductions): amount saved, reduced price, minimum quantity and the period's dates |
|
|
1518
|
+
| `get_publix_coupons` | The store's digital coupons (about 100-130): savings text, dollar value, minimum quantity, limit, dates and terms |
|
|
1519
|
+
| `search_publix_savings` | One keyword across the store's weekly ad, Extra Savings and digital coupons, each item tagged with its `saving_type` |
|
|
1520
|
+
| `get_publix_order_ahead` | The store's deli and bakery order-ahead menu with its prices: Pub Subs (`section` subs) or every sub, platter, cake and meal (`section` all, 60 per page), with lead time, serves and calories |
|
|
1521
|
+
| `find_publix_stores` | Stores near a ZIP, in a city + state, or one by `store_id`: address, phone, 7 days of hours, departments, services, pharmacy phone and hours, coordinates, distance and `weekly_ad_break_day` |
|
|
1522
|
+
| `get_publix_suggestions` | Search box suggestions for a partial query, plus up to 4 products with `store_id` |
|
|
1523
|
+
|
|
1524
|
+
Platform key `publix`. 1 credit per call. Every price tool is store-scoped: get
|
|
1525
|
+
a `store_id` (the Publix store number, e.g. `"1614"` Miami, `"1825"` Atlanta)
|
|
1526
|
+
from `find_publix_stores`; prices and promotions differ by store (a Publix
|
|
1527
|
+
Chicken Tender Sub measured $12.09 in Miami and $11.99 in Atlanta). Publix does
|
|
1528
|
+
not show regular shelf prices online: `price` is a number only for items on
|
|
1529
|
+
promotion (weekly ad, BOGO, multi-buy, Extra Savings) and order-ahead items, and
|
|
1530
|
+
null otherwise, never estimated. Multi-buys ("2 for $5.00") carry `bundle`
|
|
1531
|
+
{quantity, price}. Weekly ads run Thursday to Wednesday in Florida and Wednesday
|
|
1532
|
+
to Tuesday in Georgia and North Carolina (`weekly_ad_break_day` per store);
|
|
1533
|
+
English ad only. Products are keyed by Publix item code, not UPC (Publix does not
|
|
1534
|
+
publish UPCs, ingredients, allergens or reviews online). Coupons are listed,
|
|
1535
|
+
never clipped (no account); no cart or ordering. Stores cover FL, GA, AL, SC,
|
|
1536
|
+
NC, TN, VA and KY. Failed calls are not charged; an unknown item code or store
|
|
1537
|
+
id is a charged 404.
|
|
1538
|
+
|
|
1539
|
+
### [IKEA](https://scavio.dev/docs/ikea-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme)
|
|
1540
|
+
|
|
1541
|
+
IKEA product data across 55 markets: IKEA prices by country for one article number, search, product detail, reviews, categories, deal lists, stores, stock by store, bulk item lookup and As-is (second-hand) offers.
|
|
1542
|
+
|
|
1543
|
+
| Tool | Description |
|
|
1544
|
+
|------|-------------|
|
|
1545
|
+
| `search_ikea` | Search by keyword: item number, name, type, design, price, previous price, discount, price tag (IKEA Family price, new lower price ...), rating, variants, last chance, category path; sort by price, newest, rating, name or popularity; filter by color, price range, category, new, last chance, IKEA Family price, best seller, store availability or any facet; facets, did-you-mean, related searches |
|
|
1546
|
+
| `get_ikea_product` | One product by article number or product URL: price and previous price with dates, IKEA Family price, measurements, materials, care, packaging (packages, dimensions, weight), assembly PDFs, manuals, designer, variants, secondary ratings, 3 newest reviews |
|
|
1547
|
+
| `get_ikea_reviews` | Rating, rating count, secondary ratings and the 20 most recent reviews, plus highlighted reviews with their country |
|
|
1548
|
+
| `get_ikea_category` | A category's products by category id or URL, with the search sorts and filters |
|
|
1549
|
+
| `get_ikea_categories` | The market's category tree (about 1,500 categories) with ids for `get_ikea_category` |
|
|
1550
|
+
| `get_ikea_deals` | A deal list: new products, IKEA Family price, new lower price, last chance, lowest price, top seller, limited edition and more, with the search sorts and filters |
|
|
1551
|
+
| `get_ikea_suggestions` | Search box suggestions for a partial query |
|
|
1552
|
+
| `find_ikea_stores` | The market's stores and pick-up / plan-and-order points: store id, address, coordinates, opening hours, restaurant and Swedish Food Market hours; filter by text or sort by distance |
|
|
1553
|
+
| `get_ikea_stock` | Stock level at one store (in stock high / low, out of stock) for up to 100 article numbers, plus home delivery to a postal code |
|
|
1554
|
+
| `get_ikea_items` | Up to 100 article numbers on one market in one call, in the search item shape |
|
|
1555
|
+
| `compare_ikea_prices` | One article number across 2 to 10 markets: name, price, previous price, price tag and URL per market, each in its own currency |
|
|
1556
|
+
| `get_ikea_as_is` | One store's As-is offers (ex-display, returned and second-hand items): original price, offer prices, condition and discount reason |
|
|
1557
|
+
|
|
1558
|
+
Platform key `ikea`. 1 credit per call; `compare_ikea_prices` costs 1 credit
|
|
1559
|
+
per market that answered. Markets (`country`, default `us`): search and product
|
|
1560
|
+
cover 55 markets, the 50 ikea.com markets (us ca gb ie de at ch fr be nl dk se
|
|
1561
|
+
no fi ee lv lt pl cz sk hu hr si rs ro pt es it il ae sa kw qa bh om jo eg ma in
|
|
1562
|
+
my sg ph th jp kr au nz mx cl co) plus cn (ikea.cn), pr (Puerto Rico), do
|
|
1563
|
+
(Dominican Republic), es_islands (Canary and Balearic islands, with `island`)
|
|
1564
|
+
and is (Iceland). Category, deals, suggestions and items serve the 50 ikea.com
|
|
1565
|
+
markets plus cn; reviews, categories, stores, stock and compare the 50 ikea.com
|
|
1566
|
+
markets; As-is serves us, gb, de, fr, se, jp, nl, es, it, pl, au, ch and at.
|
|
1567
|
+
Ukraine, Greece, Cyprus, Bulgaria, Hong Kong, Taiwan, Indonesia and Turkey are
|
|
1568
|
+
not available. `language` picks one of the market's languages (ca en/fr, be
|
|
1569
|
+
nl/fr/en, ch de/fr/it/en, us en/es ...); data comes in that language and prices
|
|
1570
|
+
in the market's own currency, never converted. On 2026-11-13 KALLAX 80275887
|
|
1571
|
+
was EUR 49.99 in de and nl, EUR 59.99 in fr and SEK 599 in se. Some markets
|
|
1572
|
+
(us, ca, jp, au, kr, in, my, sg, ph ...) sell the same product under a
|
|
1573
|
+
different article number, so `found` is false there. Reviews are the 20 most
|
|
1574
|
+
recent the product page shows (no paging, sort or star filter) and ratings are
|
|
1575
|
+
pooled across markets. Stock is a level per store, not a quantity. A product or
|
|
1576
|
+
reviews call can take up to about 100 seconds. Puerto Rico, Dominican Republic
|
|
1577
|
+
and the islands return the first 40 search results only, and franchise products
|
|
1578
|
+
(pr, do, es_islands, is) return basic detail. Failed calls are not charged; an
|
|
1579
|
+
unknown article number, category or store id is a charged 404.
|
|
1580
|
+
|
|
1506
1581
|
### [Mercado Libre](https://scavio.dev/docs/mercadolibre-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme)
|
|
1507
1582
|
|
|
1508
1583
|
Mercado Libre (and Mercado Livre in Brazil) product data for Mexico, Brazil, Argentina
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
// Shapes mirror backend/src/routes/ikea.ts (50 ikea.com markets, ikea.cn, the
|
|
5
|
+
// IKEA Islas sites and IKEA Iceland). Cross-field rules the backend enforces
|
|
6
|
+
// and zod here does not: product and reviews take item_no or url; category
|
|
7
|
+
// takes category_id or url; country es_islands needs island; language must be
|
|
8
|
+
// one the market serves; availability needs store_id; the franchise sites
|
|
9
|
+
// (pr, do, es_islands, is) take query and page only. No zod `.default()`: the
|
|
10
|
+
// MCP SDK would post a defaulted field on every call.
|
|
11
|
+
const MAIN = [
|
|
12
|
+
"us", "ca", "gb", "ie", "de", "at", "ch", "fr", "be", "nl", "dk", "se", "no", "fi", "ee", "lv", "lt", "pl", "cz", "sk",
|
|
13
|
+
"hu", "hr", "si", "rs", "ro", "pt", "es", "it", "il", "ae", "sa", "kw", "qa", "bh", "om", "jo", "eg", "ma", "in", "my",
|
|
14
|
+
"sg", "ph", "th", "jp", "kr", "au", "nz", "mx", "cl", "co",
|
|
15
|
+
];
|
|
16
|
+
const ALL = [...MAIN, "cn", "pr", "do", "es_islands", "is"];
|
|
17
|
+
const MAIN_CN = [...MAIN, "cn"];
|
|
18
|
+
const ASIS = ["us", "gb", "de", "fr", "se", "jp", "nl", "es", "it", "pl", "au", "ch", "at"];
|
|
19
|
+
const LANGUAGES = [
|
|
20
|
+
"ar", "ca", "cs", "da", "de", "en", "es", "et", "eu", "fi", "fr", "gl", "he", "hr", "hu", "is", "it", "ja", "ko", "lt",
|
|
21
|
+
"lv", "ms", "nl", "no", "pl", "pt", "ro", "ru", "sk", "sl", "sr", "sv", "th", "zh",
|
|
22
|
+
];
|
|
23
|
+
const ISLANDS = ["tenerife", "grancanaria", "lanzarote", "fuerteventura", "lapalma", "lagomera", "elhierro", "mallorca", "menorca", "ibiza"];
|
|
24
|
+
const SORTS = ["relevance", "price_asc", "price_desc", "newest", "rating", "name_asc", "most_popular"];
|
|
25
|
+
const AVAILABILITY = ["in_store", "click_collect", "online"];
|
|
26
|
+
const DEALS = [
|
|
27
|
+
"new_products", "family_price", "new_lower_price", "last_chance", "lowest_price", "top_seller", "limited_edition",
|
|
28
|
+
"time_restricted", "in_store_price_only", "reduced_price_offer",
|
|
29
|
+
];
|
|
30
|
+
const CHARGE = "1 credit. Failed upstream calls are not charged (they are retried automatically); a not-found is charged.";
|
|
31
|
+
const LANG = "Data comes in the market's language and prices are numbers in the market's own currency (never converted); every answer echoes country, language and currency.";
|
|
32
|
+
const ITEM = "item_no, item_no_global, is_combination, name, type_name, design, measure_text, url, image, images, price, previous_price, discount_amount, discount_percent, price_tag (family_price: price is the IKEA Family member price and previous_price the regular one; new_lower_price, lower_price_in_store, new_product, discontinued or none), price_tag_text, lowest_price, price_valid_from, price_valid_to, rating, rating_count (ratings are pooled across IKEA markets), badge (top_seller / limited_edition), colors, variant_count, variants, last_chance, online_sellable, category_path and availability (with store_id: the store's stock level and home delivery)";
|
|
33
|
+
const GRID = `items with ${ITEM}. Also total, page, page_size, total_pages, count, sort, applied_filters and facets (name, parameter, type, values with id, label and count; the parameter is the key filters takes).`;
|
|
34
|
+
const country = (markets, scope) => z.enum(markets).optional()
|
|
35
|
+
.describe(`IKEA market code, lowercase (default us). ${scope}`);
|
|
36
|
+
const language = () => z.enum(LANGUAGES).optional()
|
|
37
|
+
.describe("The answer's language (default: the market's first). Multi-language markets: us en/es, ca en/fr, de and at de/en, ch de/fr/it/en, be nl/fr/en, nl nl/en, se sv/en, no no/en, fi fi/sv/en, ee et/ru/en, lv lv/ru/en, lt lt/ru/en, cz cs/en, pt pt/en, es es/en/ca/eu/gl, Gulf markets and eg ar/en, ma ar/fr/en, my ms/en, th th/en, jp ja/en, kr ko/en, mx es/en, cn zh/en, pr en/es, do es/en, es_islands es/en, is en/is. A language the market does not serve answers 400.");
|
|
38
|
+
const island = () => z.enum(ISLANDS).optional()
|
|
39
|
+
.describe("Required with country es_islands (the Canary and Balearic islands storefronts): which island.");
|
|
40
|
+
const itemNo = () => z.string().min(8).max(12)
|
|
41
|
+
.describe("An IKEA article number: 8 digits, dots allowed, e.g. '80275887' or '802.758.87' (keep leading zeros: '00263850').");
|
|
42
|
+
const storeId = () => z.string().regex(/^\d{1,6}$/)
|
|
43
|
+
.describe("An IKEA store id: stores[].store_id of find_ikea_stores, e.g. '399' (Burbank, CA).");
|
|
44
|
+
const itemNos = () => z.array(z.string().min(8).max(12)).min(1).max(100)
|
|
45
|
+
.describe("1 to 100 IKEA article numbers, e.g. ['80275887', '00263850'].");
|
|
46
|
+
const SEARCH_SCOPE = "55 markets: the 50 ikea.com markets (us ca gb ie de at ch fr be nl dk se no fi ee lv lt pl cz sk hu hr si rs ro pt es it il ae sa kw qa bh om jo eg ma in my sg ph th jp kr au nz mx cl co), cn (ikea.cn), pr (Puerto Rico), do (Dominican Republic), es_islands (Canary and Balearic islands, with island) and is (Iceland).";
|
|
47
|
+
const MAIN_SCOPE = "The 50 ikea.com markets (not cn, pr, do, es_islands or is).";
|
|
48
|
+
const MAIN_CN_SCOPE = "The 50 ikea.com markets and cn (not pr, do, es_islands or is).";
|
|
49
|
+
const gridFields = {
|
|
50
|
+
page: z.number().int().min(1).max(1000).optional()
|
|
51
|
+
.describe("Results page, 1-based."),
|
|
52
|
+
page_size: z.number().int().min(1).max(100).optional()
|
|
53
|
+
.describe("Products per page (default 24, up to 100)."),
|
|
54
|
+
sort: z.enum(SORTS).optional()
|
|
55
|
+
.describe("relevance (default), price_asc, price_desc, newest, rating, name_asc or most_popular."),
|
|
56
|
+
color: z.union([z.string(), z.array(z.string())]).optional()
|
|
57
|
+
.describe("Color id(s) from facets (parameter f-colors), e.g. '10156' = white."),
|
|
58
|
+
price_bucket: z.string().max(40).optional()
|
|
59
|
+
.describe("A price range id from facets (parameter f-price-buckets), e.g. 'PRICE_0_5000' = 0 to 49.99."),
|
|
60
|
+
new_only: z.boolean().optional().describe("Only new products."),
|
|
61
|
+
last_chance: z.boolean().optional().describe("Only last-chance (being discontinued) products."),
|
|
62
|
+
family_price: z.boolean().optional().describe("Only products with an IKEA Family member price."),
|
|
63
|
+
top_seller: z.boolean().optional().describe("Only best sellers."),
|
|
64
|
+
store_id: storeId().optional()
|
|
65
|
+
.describe("A store id (find_ikea_stores): adds each product's availability at that store (stock level, home delivery) and enables availability."),
|
|
66
|
+
availability: z.enum(AVAILABILITY).optional()
|
|
67
|
+
.describe("With store_id: in_store (in stock at the store), click_collect or online."),
|
|
68
|
+
filters: z.record(z.string(), z.union([z.array(z.string()), z.boolean(), z.string()])).optional()
|
|
69
|
+
.describe("Any other facet, keyed by facets[].parameter, e.g. {\"f-materials\": [\"47350\"]}; boolean facets take true."),
|
|
70
|
+
};
|
|
71
|
+
export function registerIkeaTools(server, getClient) {
|
|
72
|
+
const post = (path) => async (params) => {
|
|
73
|
+
try {
|
|
74
|
+
const data = await getClient().post(`/api/v1/ikea/${path}`, params);
|
|
75
|
+
return trimResponse(data);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
return handleApiError(err);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
server.tool("search_ikea", `Search IKEA products by keyword on any of 55 markets. The 50 ikea.com markets and cn get the full grid: sort by price, newest, rating, name or popularity; filter by color, price range, category, new, last chance, IKEA Family price, best seller, store availability or any facet. Returns query, ${GRID} Keyword searches also return did_you_mean, related_searches and content (inspiration pages, separate from items). The franchise sites (pr, do, es_islands, is) take query and page only: Puerto Rico, Dominican Republic and the islands return the first 40 results only (page 1); Iceland pages by 40. ${LANG} ${CHARGE}`, {
|
|
82
|
+
query: z.string().min(1).max(200)
|
|
83
|
+
.describe("Search keywords, in any language the market serves, e.g. 'kallax'."),
|
|
84
|
+
country: country(ALL, SEARCH_SCOPE),
|
|
85
|
+
language: language(),
|
|
86
|
+
island: island(),
|
|
87
|
+
category_id: z.union([z.string(), z.array(z.string())]).optional()
|
|
88
|
+
.describe("Narrow to category id(s) from facets (parameter f-subcategories), e.g. 'st002'."),
|
|
89
|
+
...gridFields,
|
|
90
|
+
}, post("search"));
|
|
91
|
+
server.tool("get_ikea_product", `One IKEA product by article number or product URL: item_no, article_number, name, full_name, type_name, summary, description, url, price, previous_price, price_valid_from / to, family_price (member price with its dates), currency, images, rating, rating_count, measurements, materials, care, good_to_know, safety, packaging (number_of_packages, packages with item_no, dimensions, weight, quantity), assembly_pdfs, manuals, designer, variants (type colour / size / cover ..., options with title, item_no, url, price), secondary_ratings, reviews_preview (3 newest), availability_online and detail_level. detail_level basic (rare) carries the core fields only. cn answers in Chinese with measurements, materials and packages; the franchise sites (pr, do, es_islands, is) answer name, description, price, currency, availability_online, images and dimensions (detail_level basic). A product call can take up to about 100 seconds. An unknown article number is a charged 404. ${LANG} ${CHARGE}`, {
|
|
92
|
+
item_no: itemNo().optional(),
|
|
93
|
+
url: z.string().min(10).max(500).optional()
|
|
94
|
+
.describe("An IKEA product page of a served market, e.g. 'https://www.ikea.com/de/de/p/kallax-regal-weiss-80275887/' (alternative to item_no; the market and language are read from it)."),
|
|
95
|
+
country: country(ALL, SEARCH_SCOPE),
|
|
96
|
+
language: language(),
|
|
97
|
+
island: island(),
|
|
98
|
+
}, post("product"));
|
|
99
|
+
server.tool("get_ikea_reviews", `An IKEA product's rating, rating_count, secondary_ratings (appearance, ease of assembly, quality, value for money ...) and the 20 most recent reviews the product page shows (title, text, rating, date, author first name as shown, country), plus highlighted reviews with their country. No paging, sort or star filter: always the 20 newest. Ratings and reviews are pooled across IKEA markets (the same count on every market). A call can take up to about 100 seconds. ${CHARGE}`, {
|
|
100
|
+
item_no: itemNo().optional(),
|
|
101
|
+
url: z.string().min(10).max(500).optional()
|
|
102
|
+
.describe("An ikea.com product page (alternative to item_no)."),
|
|
103
|
+
country: country(MAIN, MAIN_SCOPE),
|
|
104
|
+
language: language(),
|
|
105
|
+
}, post("reviews"));
|
|
106
|
+
server.tool("get_ikea_category", `One IKEA category's products by category id or category URL (send one), with the search sorts and filters: category (id, name, url, parents) and ${GRID} An unknown category id is a charged 404. ${LANG} ${CHARGE}`, {
|
|
107
|
+
category_id: z.string().min(2).max(12).optional()
|
|
108
|
+
.describe("A category id (categories[].id of get_ikea_categories, or category_path / facets ids of a search), e.g. '10382' = bookcases, 'fu003' = sofas."),
|
|
109
|
+
url: z.string().min(10).max(500).optional()
|
|
110
|
+
.describe("An IKEA category page (alternative to category_id), e.g. 'https://www.ikea.com/us/en/cat/bookcases-10382/'."),
|
|
111
|
+
country: country(MAIN_CN, MAIN_CN_SCOPE),
|
|
112
|
+
language: language(),
|
|
113
|
+
...gridFields,
|
|
114
|
+
}, post("category"));
|
|
115
|
+
server.tool("get_ikea_categories", `The market's IKEA category tree as its site menu shows it (about 1,500 categories): id (for get_ikea_category), name, url and children; plus parent_id and count. parent_id returns one category's subtree. ${LANG} ${CHARGE}`, {
|
|
116
|
+
country: country(MAIN, MAIN_SCOPE),
|
|
117
|
+
language: language(),
|
|
118
|
+
parent_id: z.string().min(2).max(12).optional()
|
|
119
|
+
.describe("Return only this category's subtree (categories[].id)."),
|
|
120
|
+
}, post("categories"));
|
|
121
|
+
server.tool("get_ikea_deals", `One of the market's IKEA deal lists, with the search sorts and filters: new_products, family_price (IKEA Family member prices), new_lower_price, last_chance, lowest_price (the lowest-price range), top_seller, limited_edition, time_restricted, in_store_price_only or reduced_price_offer. Returns type and ${GRID} ${LANG} ${CHARGE}`, {
|
|
122
|
+
type: z.enum(DEALS)
|
|
123
|
+
.describe("new_products, family_price, new_lower_price, last_chance, lowest_price, top_seller, limited_edition, time_restricted, in_store_price_only or reduced_price_offer."),
|
|
124
|
+
country: country(MAIN_CN, MAIN_CN_SCOPE),
|
|
125
|
+
language: language(),
|
|
126
|
+
...gridFields,
|
|
127
|
+
}, post("deals"));
|
|
128
|
+
server.tool("get_ikea_suggestions", `What the IKEA search box suggests for what a user typed: suggestions with text, type (completion, category, product, planner, content), label, url, category_id, item_no and image when given. ${LANG} ${CHARGE}`, {
|
|
129
|
+
query: z.string().min(1).max(100)
|
|
130
|
+
.describe("What the user has typed so far, e.g. 'sof'."),
|
|
131
|
+
country: country(MAIN_CN, MAIN_CN_SCOPE),
|
|
132
|
+
language: language(),
|
|
133
|
+
}, post("suggestions"));
|
|
134
|
+
server.tool("find_ikea_stores", `The market's IKEA stores and pick-up / plan-and-order points: store_id (for get_ikea_stock, get_ikea_as_is and the store_id filter), name, display_name, type (store, small_store, plan_and_order_point, shop ...), address (street, city, zip, state, timezone), latitude, longitude, hours (normal week, exceptions, closed days), restaurant, bistro, cafe, click & collect, Swedish Food Market and Smaland hours, store_url and opening_date; plus total and count. Filter by text (query) and sort by distance from lat / lng (distance_km). ${CHARGE}`, {
|
|
135
|
+
country: country(MAIN, MAIN_SCOPE),
|
|
136
|
+
language: language(),
|
|
137
|
+
query: z.string().min(1).max(80).optional()
|
|
138
|
+
.describe("Only stores whose name, city, ZIP / postal code or address contains this text, e.g. 'Burbank'."),
|
|
139
|
+
lat: z.number().min(-90).max(90).optional()
|
|
140
|
+
.describe("With lng: stores sorted by distance from this point (distance_km)."),
|
|
141
|
+
lng: z.number().min(-180).max(180).optional()
|
|
142
|
+
.describe("With lat."),
|
|
143
|
+
limit: z.number().int().min(1).max(200).optional()
|
|
144
|
+
.describe("Stores to return (default 50, up to 200)."),
|
|
145
|
+
}, post("stores"));
|
|
146
|
+
server.tool("get_ikea_stock", `Stock at one IKEA store for up to 100 article numbers in one call: store (id, name), zip and items (item_no, name, type_name, design, url, price, store_availability with status in_stock_high, in_stock_low or out_of_stock and the site's text, home_delivery with zip, click_collect). A level, not a quantity: IKEA does not publish unit counts. Numbers the market does not sell are listed in not_found; an unknown store id is a charged 404. ${CHARGE}`, {
|
|
147
|
+
item_nos: itemNos(),
|
|
148
|
+
store_id: storeId(),
|
|
149
|
+
zip: z.string().min(3).max(10).optional()
|
|
150
|
+
.describe("A postal code: adds home-delivery availability to that address."),
|
|
151
|
+
country: country(MAIN, `${MAIN_SCOPE} Must be the store's market.`),
|
|
152
|
+
language: language(),
|
|
153
|
+
}, post("stock"));
|
|
154
|
+
server.tool("get_ikea_items", `Up to 100 IKEA article numbers on one market in one call, each with the search item fields (${ITEM}); numbers the market does not sell are listed in not_found. ${LANG} ${CHARGE}`, {
|
|
155
|
+
item_nos: itemNos(),
|
|
156
|
+
country: country(MAIN_CN, MAIN_CN_SCOPE),
|
|
157
|
+
language: language(),
|
|
158
|
+
}, post("items"));
|
|
159
|
+
server.tool("compare_ikea_prices", "IKEA prices by country: one article number across 2 to 10 IKEA markets in one call. Returns item_no, count, found_count, markets (country, language, currency, found, name, type_name, design, price, previous_price, price_tag, url), errors and note. Prices are in each market's own currency and never converted (measured 2026-11-13: KALLAX 80275887 was EUR 49.99 in de and nl, EUR 59.99 in fr, SEK 599 in se). Some markets (us, ca, jp, au, kr, in, my, sg, ph ...) sell the same product under a different article number, so found is false there. A market that fails is listed in errors and not charged. Costs 1 credit per market that answered (the balance must cover every market asked). Markets: the 50 ikea.com markets (not cn, pr, do, es_islands or is).", {
|
|
160
|
+
item_no: itemNo(),
|
|
161
|
+
countries: z.array(z.enum(MAIN)).min(2).max(10)
|
|
162
|
+
.describe("2 to 10 ikea.com market codes, e.g. ['de', 'fr', 'se', 'nl', 'es', 'it']."),
|
|
163
|
+
}, post("compare"));
|
|
164
|
+
server.tool("get_ikea_as_is", `One IKEA store's As-is offers (ex-display, returned and second-hand items at reduced prices): store_id, total, page, page_size, total_pages and offers, per product title, description, article_numbers, currency, original_price, min_price, max_price, image and offers (offer_id, offer_number, description, price, lowest_previous_price, condition_code, condition, condition_description, in_box, reason_discount). Read-only: nothing is reserved. A store of another market is a charged 404. ${CHARGE}`, {
|
|
165
|
+
store_id: storeId(),
|
|
166
|
+
country: country(ASIS, "As-is is served in us, gb, de, fr, se, jp, nl, es, it, pl, au, ch and at; must be the store's market."),
|
|
167
|
+
language: language(),
|
|
168
|
+
page: z.number().int().min(1).max(500).optional()
|
|
169
|
+
.describe("Results page, 1-based."),
|
|
170
|
+
page_size: z.number().int().min(1).max(48).optional()
|
|
171
|
+
.describe("Products per page (default 24, up to 48)."),
|
|
172
|
+
}, post("as-is"));
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=ikea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ikea.js","sourceRoot":"","sources":["../../src/tools/ikea.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare const PLATFORM_KEYS: string[];
|
|
|
5
5
|
* What registers when SCAVIO_PLATFORMS is unset.
|
|
6
6
|
*
|
|
7
7
|
* Registering everything is not an option any more. The full surface is 408
|
|
8
|
-
* tools, which serialises to
|
|
8
|
+
* tools, which serialises to 725KB of tools/list (measured with
|
|
9
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 143
|
|
@@ -29,7 +29,7 @@ export declare const DEFAULT_PLATFORMS: string[];
|
|
|
29
29
|
* Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
|
|
30
30
|
*
|
|
31
31
|
* Accepts a comma-separated list of platform keys, plus three keywords:
|
|
32
|
-
* all — every platform (
|
|
32
|
+
* all — every platform (516 tools)
|
|
33
33
|
* default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
|
|
34
34
|
* none — no platform tools at all, leaving only get_usage
|
|
35
35
|
*
|
package/dist/tools/index.js
CHANGED
|
@@ -19,6 +19,8 @@ import { registerHomeDepotTools } from "./homedepot.js";
|
|
|
19
19
|
import { registerCostcoTools } from "./costco.js";
|
|
20
20
|
import { registerHebTools } from "./heb.js";
|
|
21
21
|
import { registerKrogerTools } from "./kroger.js";
|
|
22
|
+
import { registerPublixTools } from "./publix.js";
|
|
23
|
+
import { registerIkeaTools } from "./ikea.js";
|
|
22
24
|
import { registerDecathlonTools } from "./decathlon.js";
|
|
23
25
|
import { registerSpecsTools } from "./specs.js";
|
|
24
26
|
import { registerLowesTools } from "./lowes.js";
|
|
@@ -115,6 +117,8 @@ const PLATFORMS = {
|
|
|
115
117
|
costco: registerCostcoTools,
|
|
116
118
|
heb: registerHebTools,
|
|
117
119
|
kroger: registerKrogerTools,
|
|
120
|
+
publix: registerPublixTools,
|
|
121
|
+
ikea: registerIkeaTools,
|
|
118
122
|
decathlon: registerDecathlonTools,
|
|
119
123
|
specs: registerSpecsTools,
|
|
120
124
|
lowes: registerLowesTools,
|
|
@@ -184,7 +188,7 @@ export const PLATFORM_KEYS = Object.keys(PLATFORMS);
|
|
|
184
188
|
* What registers when SCAVIO_PLATFORMS is unset.
|
|
185
189
|
*
|
|
186
190
|
* Registering everything is not an option any more. The full surface is 408
|
|
187
|
-
* tools, which serialises to
|
|
191
|
+
* tools, which serialises to 725KB of tools/list (measured with
|
|
188
192
|
* `npm run toolslist`, not estimated) — roughly 90k tokens pushed into the
|
|
189
193
|
* context of EVERY session before the user has typed anything, and past the
|
|
190
194
|
* hard tool-count ceiling some clients enforce. The default set below is 143
|
|
@@ -244,7 +248,7 @@ function warnOnce(message) {
|
|
|
244
248
|
* Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
|
|
245
249
|
*
|
|
246
250
|
* Accepts a comma-separated list of platform keys, plus three keywords:
|
|
247
|
-
* all — every platform (
|
|
251
|
+
* all — every platform (516 tools)
|
|
248
252
|
* default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
|
|
249
253
|
* none — no platform tools at all, leaving only get_usage
|
|
250
254
|
*
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
// Shapes mirror backend/src/routes/publix.ts (publix.com, US). Cross-field
|
|
5
|
+
// rules the backend enforces and zod here does not: category takes
|
|
6
|
+
// category_url or category_id; stores takes zip, city + state, or store_id.
|
|
7
|
+
// No zod `.default()`: the MCP SDK would post a defaulted field on every call.
|
|
8
|
+
const SORTS = ["relevance", "featured", "name_asc", "name_desc", "popularity", "savings_amount", "most_viewed"];
|
|
9
|
+
const SECTIONS = ["subs", "all"];
|
|
10
|
+
const CHARGE = "Failed upstream calls are not charged (they are retried automatically); a not-found is charged. 1 credit.";
|
|
11
|
+
const STORE = "Store-scoped: aisles, promotions and prices are those of the store_id you send (from find_publix_stores), echoed in store (id, name). Prices differ by store.";
|
|
12
|
+
const PRICES = "Publix shows prices online only for items on sale and for order-ahead (deli and bakery) items, so price is a number only when the site shows one and null otherwise; it is never estimated (no regular shelf prices). price_text is the price as shown ('$5.49/lb', '3 for $10.00'), price_unit lb when per pound, bundle {quantity, price} for multi-buys, starting_price for 'Starts at' items, regular_price the crossed-out price.";
|
|
13
|
+
const ITEM = "item_code (for get_publix_product), base_product_id, title, brand, size, description, image, url, category_path, aisle (where it sits in that store), on_sale, price, price_unit, bundle, starting_price, regular_price, price_text, regular_price_text, promo (type single, bogo or multi; message, conditions, savings, valid_from, valid_through), has_coupon and is_order_ahead";
|
|
14
|
+
const GRID = `items with ${ITEM}. Also total, page, page_size (48), total_pages, count, sort, applied_filters and facets (name, label, values with value, label and count: deals, BOGO, weekly ad, brand, type, diet, nutrition ranges).`;
|
|
15
|
+
const DEAL = "Each item: id, item_code, base_product_id, title, description, brand, department, categories, savings_text (as shown, e.g. 'Buy 1 Get 1 FREE', '$6.89 lb', '2 for $5.00'), deal_type (bogo, b2g1, multi, price, percent_off or other), price (only when savings_text is a plain price), price_unit, bundle, save_up_to, additional_savings, min_quantity, fine_print, stacked_with_coupon, promotion (Weekly Ad, Extra Savings, a seasonal flyer), valid_from, valid_to and image";
|
|
16
|
+
const storeId = () => z.string().regex(/^\d{1,5}$/)
|
|
17
|
+
.describe("A Publix store number: stores[].store_id of find_publix_stores, e.g. '1614' (Miami) or '1825' (Atlanta).");
|
|
18
|
+
const gridFields = {
|
|
19
|
+
page: z.number().int().min(1).max(100).optional()
|
|
20
|
+
.describe("Results page, 1-based (48 products per page). A page past the last answers an empty list."),
|
|
21
|
+
sort: z.enum(SORTS).optional()
|
|
22
|
+
.describe("relevance (default), featured, name_asc, name_desc, popularity, savings_amount (biggest promo savings first) or most_viewed."),
|
|
23
|
+
on_sale: z.boolean().optional()
|
|
24
|
+
.describe("Only items on sale at the store (weekly ad, BOGO, multi-buy or extra savings)."),
|
|
25
|
+
bogo: z.boolean().optional()
|
|
26
|
+
.describe("Only Buy One Get One Free items at the store."),
|
|
27
|
+
brand: z.string().min(1).max(60).optional()
|
|
28
|
+
.describe("Only this brand, as the site lists it (facets: Brand values), e.g. 'Tyson'."),
|
|
29
|
+
};
|
|
30
|
+
export function registerPublixTools(server, getClient) {
|
|
31
|
+
const post = (path) => async (params) => {
|
|
32
|
+
try {
|
|
33
|
+
const data = await getClient().post(`/api/v1/publix/${path}`, params);
|
|
34
|
+
return trimResponse(data);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return handleApiError(err);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
server.tool("search_publix", `Search Publix products at one store by keyword: sort by name, popularity, savings or views; filter to items on sale, BOGO (Buy One Get One Free) or a brand. Returns query, corrected_query, store and ${GRID} Keywords the site sends to a category answer that category's products; keywords it sends to an order-ahead page set redirected_to (items may be empty). ${STORE} ${PRICES} ${CHARGE}`, {
|
|
41
|
+
query: z.string().min(1).max(100)
|
|
42
|
+
.describe("Search keywords, e.g. 'chicken'."),
|
|
43
|
+
store_id: storeId(),
|
|
44
|
+
...gridFields,
|
|
45
|
+
}, post("search"));
|
|
46
|
+
server.tool("get_publix_product", `One Publix product by item code at one store: the product card (${ITEM}; order-ahead items also short_description, lead_time, serves, calories) and its nutrition facts (labels with serving size, servings per container and every nutrient with amount, unit and percent daily value; a deli sub has one label per component and size; null when Publix has none). ${PRICES} ${STORE} Ingredients, allergens, UPC and reviews are not published by Publix online. An unknown item code is a charged 404. ${CHARGE}`, {
|
|
47
|
+
item_code: z.string().regex(/^\d{1,8}$/)
|
|
48
|
+
.describe("A Publix item code (not a UPC): items[].item_code of search_publix, get_publix_category or get_publix_order_ahead, e.g. '90355'."),
|
|
49
|
+
store_id: storeId(),
|
|
50
|
+
}, post("product"));
|
|
51
|
+
server.tool("get_publix_category", `One Publix category's products at one store, by category_url or category_id (send one), with the search sorts and filters: category (id, name, path), store and ${GRID} ${STORE} ${PRICES} ${CHARGE}`, {
|
|
52
|
+
category_url: z.string().min(1).max(400).optional()
|
|
53
|
+
.describe("A publix.com category link (/c/<name>/<id>), e.g. 'https://www.publix.com/c/chicken/6772da29-55bf-4051-83d5-104d73ae9a96'."),
|
|
54
|
+
category_id: z.string().length(36).optional()
|
|
55
|
+
.describe("A category id (categories[].id of get_publix_categories), e.g. '6772da29-55bf-4051-83d5-104d73ae9a96'. Alternative to category_url."),
|
|
56
|
+
store_id: storeId(),
|
|
57
|
+
...gridFields,
|
|
58
|
+
}, post("category"));
|
|
59
|
+
server.tool("get_publix_categories", `The Publix product category tree: departments (Bakery, Dairy, Meat, Produce ...) with their categories and sub-categories, each with id (for get_publix_category), name, url, parent_id, level and children; plus count. parent_id returns one department's or category's subtree. store_id is optional. ${CHARGE}`, {
|
|
60
|
+
store_id: storeId().optional(),
|
|
61
|
+
parent_id: z.string().length(36).optional()
|
|
62
|
+
.describe("Return only this department's or category's subtree (categories[].id)."),
|
|
63
|
+
}, post("categories"));
|
|
64
|
+
server.tool("get_publix_weekly_ad", `The store's current Publix weekly ad (English), about 700 items: BOGO deals (about 230 a week), sale prices, multi-buys and percent-off deals, with ad (start_date, end_date), total, count, applied_filters and departments. Weekly ads start on different days by state (Thursday to Wednesday in Florida, Wednesday to Tuesday in Georgia and North Carolina; weekly_ad_break_day of find_publix_stores gives each store's start day), and prices of some items (beer, wine) differ by store. ${DEAL}. Filter by department, BOGO only or a text query. ${CHARGE}`, {
|
|
65
|
+
store_id: storeId(),
|
|
66
|
+
department: z.string().min(1).max(60).optional()
|
|
67
|
+
.describe("Only items of this department (departments of the answer, e.g. 'Meat', 'Produce', 'Deli', 'Wine')."),
|
|
68
|
+
bogo_only: z.boolean().optional()
|
|
69
|
+
.describe("Only Buy 1 Get 1 Free and Buy 2 Get 1 Free items."),
|
|
70
|
+
query: z.string().min(1).max(100).optional()
|
|
71
|
+
.describe("Only items whose title, description or brand contains this text."),
|
|
72
|
+
}, post("weekly-ad"));
|
|
73
|
+
server.tool("get_publix_extra_savings", `The store's Publix Extra Savings (temporary price reductions), several hundred items: id, base_product_id, title, size, brand, categories, savings_text (the amount saved as shown), savings, additional_savings, final_price (the reduced price, as the site lists it), min_quantity, image and url; plus store, count and period (start_date, end_date of the current Extra Savings period). ${CHARGE}`, {
|
|
74
|
+
store_id: storeId(),
|
|
75
|
+
}, post("extra-savings"));
|
|
76
|
+
server.tool("get_publix_coupons", `The store's Publix digital coupons as every visitor sees them (about 100-130): id, title, description, brand, savings_text, value (the dollar amount when the coupon states one), min_quantity, limit_per_transaction, categories, valid_from, valid_to, terms and image; plus store and count. Read-only: coupons are listed, never clipped, and no account is used. ${CHARGE}`, {
|
|
77
|
+
store_id: storeId(),
|
|
78
|
+
}, post("coupons"));
|
|
79
|
+
server.tool("search_publix_savings", `Find a keyword across the store's Publix weekly ad, Extra Savings and digital coupons in one call: query, store, count and items, each with saving_type (weekly_ad, extra_savings or coupon) and that feed's fields. ${CHARGE}`, {
|
|
80
|
+
query: z.string().min(1).max(100)
|
|
81
|
+
.describe("A keyword to find in the store's weekly ad, Extra Savings and digital coupons, e.g. 'coffee'."),
|
|
82
|
+
store_id: storeId(),
|
|
83
|
+
}, post("savings-search"));
|
|
84
|
+
server.tool("get_publix_order_ahead", `The store's Publix deli and bakery order-ahead (in-store pickup) menu with this store's prices: Pub Subs (section subs, default) or the whole catalog of subs, platters, cakes, wings and meals (section all, about 1,150 items, 60 per page). Each item: ${ITEM}, short_description, lead_time (e.g. 'Ready as soon as 30 minutes'), serves, calories and pay_online. Pub Sub prices differ by store (e.g. $12.09 in Miami, $11.99 in Atlanta). Also section, store, total, page, page_size, total_pages and count. ${CHARGE}`, {
|
|
85
|
+
store_id: storeId(),
|
|
86
|
+
section: z.enum(SECTIONS).optional()
|
|
87
|
+
.describe("subs (default: the Pub Sub menu) or all (the whole deli and bakery order-ahead catalog: subs, platters, cakes, meals ...)."),
|
|
88
|
+
page: z.number().int().min(1).max(50).optional()
|
|
89
|
+
.describe("Results page, 1-based (60 items per page)."),
|
|
90
|
+
}, post("order-ahead"));
|
|
91
|
+
server.tool("find_publix_stores", `Find Publix stores near a ZIP code or in a city (city + state), or read one store by store_id. Each store: store_id (for every other Publix tool), name, short_name, type (supermarket, liquor, pharmacy), address (street, city, state, zip), phone, hours for the next 7 days, time_zone, departments, services, pharmacy (phone, hours), liquor_store, latitude, longitude, distance_miles, weekly_ad_break_day (the day the store's weekly ad starts), opening_date, closing_date and image. Publix operates in FL, GA, AL, SC, NC, TN, VA and KY. An unknown store_id is a charged 404. ${CHARGE}`, {
|
|
92
|
+
zip: z.string().regex(/^\d{5}$/).optional()
|
|
93
|
+
.describe("A 5-digit US ZIP code: the stores nearest to it, e.g. '33101'."),
|
|
94
|
+
city: z.string().min(1).max(60).optional()
|
|
95
|
+
.describe("A city name, with state, e.g. 'Nashville'."),
|
|
96
|
+
state: z.string().regex(/^[A-Za-z]{2}$/).optional()
|
|
97
|
+
.describe("A 2-letter state code, with city, e.g. 'TN'."),
|
|
98
|
+
store_id: storeId().optional(),
|
|
99
|
+
limit: z.number().int().min(1).max(30).optional()
|
|
100
|
+
.describe("Stores to return, up to 30 (default 10)."),
|
|
101
|
+
radius_miles: z.number().int().min(1).max(100).optional()
|
|
102
|
+
.describe("Search radius in miles (default 50)."),
|
|
103
|
+
}, post("stores"));
|
|
104
|
+
server.tool("get_publix_suggestions", `The suggestions the Publix search box shows for what a user typed: up to 10 popular searches (suggestions: text, type) and, with store_id, up to 4 products (item_code, base_product_id, title, description, saving_text, image, url); plus query, store_id and count. ${CHARGE}`, {
|
|
105
|
+
query: z.string().min(1).max(100)
|
|
106
|
+
.describe("What the user has typed so far, e.g. 'chick'."),
|
|
107
|
+
store_id: storeId().optional(),
|
|
108
|
+
}, post("suggestions"));
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=publix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publix.js","sourceRoot":"","sources":["../../src/tools/publix.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,mEAAmE;AACnE,4EAA4E;AAC5E,+EAA+E;AAE/E,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAU,CAAC;AACzH,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAE1C,MAAM,MAAM,GAAG,2GAA2G,CAAC;AAC3H,MAAM,KAAK,GAAG,+JAA+J,CAAC;AAC9K,MAAM,MAAM,GACV,waAAwa,CAAC;AAC3a,MAAM,IAAI,GACR,qXAAqX,CAAC;AACxX,MAAM,IAAI,GAAG,cAAc,IAAI,0MAA0M,CAAC;AAC1O,MAAM,IAAI,GACR,mdAAmd,CAAC;AAEtd,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;KAChD,QAAQ,CAAC,0GAA0G,CAAC,CAAC;AAExH,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SAC9C,QAAQ,CAAC,2FAA2F,CAAC;IACxG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;SAC3B,QAAQ,CAAC,8HAA8H,CAAC;IAC3I,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACzB,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAA6B;IAClF,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,kBAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YACtE,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,eAAe,EACf,0MAA0M,IAAI,4JAA4J,KAAK,IAAI,MAAM,IAAI,MAAM,EAAE,EACrY;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aAC9B,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,QAAQ,EAAE,OAAO,EAAE;QACnB,GAAG,UAAU;KACd,EACD,IAAI,CAAC,QAAQ,CAAC,CACf,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,mEAAmE,IAAI,iSAAiS,MAAM,IAAI,KAAK,uHAAuH,MAAM,EAAE,EACtf;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;aACrC,QAAQ,CAAC,kIAAkI,CAAC;QAC/I,QAAQ,EAAE,OAAO,EAAE;KACpB,EACD,IAAI,CAAC,SAAS,CAAC,CAChB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,mKAAmK,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,EAAE,EACtM;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aAChD,QAAQ,CAAC,4HAA4H,CAAC;QACzI,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC1C,QAAQ,CAAC,qIAAqI,CAAC;QAClJ,QAAQ,EAAE,OAAO,EAAE;QACnB,GAAG,UAAU;KACd,EACD,IAAI,CAAC,UAAU,CAAC,CACjB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,4SAA4S,MAAM,EAAE,EACpT;QACE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aACxC,QAAQ,CAAC,wEAAwE,CAAC;KACtF,EACD,IAAI,CAAC,YAAY,CAAC,CACnB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,oeAAoe,IAAI,sDAAsD,MAAM,EAAE,EACtiB;QACE,QAAQ,EAAE,OAAO,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC7C,QAAQ,CAAC,oGAAoG,CAAC;QACjH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aAC9B,QAAQ,CAAC,mDAAmD,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,kEAAkE,CAAC;KAChF,EACD,IAAI,CAAC,WAAW,CAAC,CAClB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,kYAAkY,MAAM,EAAE,EAC1Y;QACE,QAAQ,EAAE,OAAO,EAAE;KACpB,EACD,IAAI,CAAC,eAAe,CAAC,CACtB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,yWAAyW,MAAM,EAAE,EACjX;QACE,QAAQ,EAAE,OAAO,EAAE;KACpB,EACD,IAAI,CAAC,SAAS,CAAC,CAChB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,wNAAwN,MAAM,EAAE,EAChO;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aAC9B,QAAQ,CAAC,+FAA+F,CAAC;QAC5G,QAAQ,EAAE,OAAO,EAAE;KACpB,EACD,IAAI,CAAC,gBAAgB,CAAC,CACvB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,6PAA6P,IAAI,uPAAuP,MAAM,EAAE,EAChgB;QACE,QAAQ,EAAE,OAAO,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;aACjC,QAAQ,CAAC,4HAA4H,CAAC;QACzI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC7C,QAAQ,CAAC,4CAA4C,CAAC;KAC1D,EACD,IAAI,CAAC,aAAa,CAAC,CACpB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,gkBAAgkB,MAAM,EAAE,EACxkB;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;aACxC,QAAQ,CAAC,gEAAgE,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aACvC,QAAQ,CAAC,4CAA4C,CAAC;QACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;aAChD,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC9C,QAAQ,CAAC,0CAA0C,CAAC;QACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;aACtD,QAAQ,CAAC,sCAAsC,CAAC;KACpD,EACD,IAAI,CAAC,QAAQ,CAAC,CACf,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,0QAA0Q,MAAM,EAAE,EAClR;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aAC9B,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC/B,EACD,IAAI,CAAC,aAAa,CAAC,CACpB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scavio/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.0",
|
|
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.
|
|
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. 516 tools across 75 platforms plus Extract, Company Enrich, site map, crawl and batch extraction, one API key.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "Scavio",
|
|
@@ -97,6 +97,13 @@
|
|
|
97
97
|
"qfc",
|
|
98
98
|
"fred-meyer",
|
|
99
99
|
"grocery-prices",
|
|
100
|
+
"publix",
|
|
101
|
+
"publix-api",
|
|
102
|
+
"publix-weekly-ad",
|
|
103
|
+
"bogo-deals",
|
|
104
|
+
"ikea",
|
|
105
|
+
"ikea-api",
|
|
106
|
+
"ikea-prices-by-country",
|
|
100
107
|
"mercadolibre",
|
|
101
108
|
"mercado-libre",
|
|
102
109
|
"tiktok",
|