@scavio/mcp-server 0.28.1 → 0.29.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 +66 -6
- package/dist/tools/canadiantire.d.ts +3 -0
- package/dist/tools/canadiantire.js +74 -0
- package/dist/tools/canadiantire.js.map +1 -0
- package/dist/tools/dollargeneral.d.ts +3 -0
- package/dist/tools/dollargeneral.js +64 -0
- package/dist/tools/dollargeneral.js.map +1 -0
- package/dist/tools/index.d.ts +4 -4
- package/dist/tools/index.js +14 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lowes.d.ts +3 -0
- package/dist/tools/lowes.js +54 -0
- package/dist/tools/lowes.js.map +1 -0
- package/dist/tools/samsclub.d.ts +3 -0
- package/dist/tools/samsclub.js +61 -0
- package/dist/tools/samsclub.js.map +1 -0
- package/package.json +6 -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. 298 tools across 45 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
|
|
8
|
+
**The 22 platforms added in 0.13.0 are opt-in.** Registering all 298 tools puts ~287KB of tool definitions — roughly 72k 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
|
|
211
|
-
roughly
|
|
210
|
+
Scavio exposes 298 tools. Loading all of them costs ~287KB of `tools/list` —
|
|
211
|
+
roughly 72k 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 — **
|
|
221
|
+
| `all` | every platform — **298 tools, ~287KB** |
|
|
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 |
|
|
@@ -233,7 +233,7 @@ tells you to call to check the server works.
|
|
|
233
233
|
|
|
234
234
|
**Platform keys:** `extract`, `google`, `chatgpt`, `gemini`, `youtube`, `tiktok`, `instagram`,
|
|
235
235
|
`reddit`, `x`, `linkedin`, `threads`, `kuaishou`, `amazon`, `walmart`, `ebay`,
|
|
236
|
-
`target`, `homedepot`, `costco`, `heb`, `kroger`, `decathlon`, `specs`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`,
|
|
236
|
+
`target`, `homedepot`, `costco`, `heb`, `kroger`, `decathlon`, `specs`, `lowes`, `samsclub`, `canadiantire`, `dollargeneral`, `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
|
|
|
@@ -751,6 +751,66 @@ the store used is echoed in `data.store`, and `product_id` alone is enough with
|
|
|
751
751
|
add `store_id` (from `get_specs_stores`, e.g. `"169"`) to put that store's price
|
|
752
752
|
at the top.
|
|
753
753
|
|
|
754
|
+
### Lowe's
|
|
755
|
+
|
|
756
|
+
| Tool | Description |
|
|
757
|
+
|------|-------------|
|
|
758
|
+
| `search_lowes` | Search Lowe's at one store by keyword or category: that store's price, was-price and savings, stock quantity, pickup/delivery/parcel availability, rating; `on_sale` for the store's deals |
|
|
759
|
+
| `get_lowes_product` | One item at one store: price, on-hand stock and lead times, stock at nearby stores, aisle and bay, specifications, UPC, dimensions |
|
|
760
|
+
| `get_lowes_stores` | Stores near a ZIP: store_id, address, phone, coordinates, distance, hours, features |
|
|
761
|
+
| `get_lowes_reviews` | Review bodies, 10 per page: rating, title, text, recommended, helpful votes, verified flag, photos, brand replies, star counts |
|
|
762
|
+
|
|
763
|
+
2 credits per call; `get_lowes_reviews` is 1. Prices and stock are per store, so
|
|
764
|
+
`store_id` and that store's own `zip` (both from `get_lowes_stores`, e.g. `"0595"`
|
|
765
|
+
and `"28117"`) are required on search and product. Deals are `search_lowes` with
|
|
766
|
+
`on_sale: true`; there is no clearance tool.
|
|
767
|
+
|
|
768
|
+
### Sam's Club
|
|
769
|
+
|
|
770
|
+
| Tool | Description |
|
|
771
|
+
|------|-------------|
|
|
772
|
+
| `search_sams_club` | Search Sam's Club: price, was price, savings, unit price, Instant Savings, rating, stock, fulfillment, aisle |
|
|
773
|
+
| `get_sams_club_product` | One item: online and club shelf price, Instant Savings, rating histogram, specifications, per-method stock and aisle; `club_id` for a specific club |
|
|
774
|
+
| `get_sams_club_clubs` | Clubs near a ZIP: club_id, address, coordinates, distance, phone, hours, services |
|
|
775
|
+
| `get_sams_club_savings` | Every Instant Savings item: offer amount, end date, purchase limit, channels |
|
|
776
|
+
| `get_sams_club_category` | Products in a category, same fields as search; clearance is category `1150109` |
|
|
777
|
+
| `get_sams_club_reviews` | Review bodies, 10 per page, with average rating and 1-5 star breakdown |
|
|
778
|
+
|
|
779
|
+
1 credit per call. Search, savings and category use a nearby club chosen by
|
|
780
|
+
location (echoed in `club`); for one specific club, call `get_sams_club_product`
|
|
781
|
+
with a `club_id` from `get_sams_club_clubs`. `available_quantity` is capped at 8 by
|
|
782
|
+
the site, so 8 means 8 or more.
|
|
783
|
+
|
|
784
|
+
### Canadian Tire
|
|
785
|
+
|
|
786
|
+
| Tool | Description |
|
|
787
|
+
|------|-------------|
|
|
788
|
+
| `search_canadian_tire` | Search at one store by keyword or category: price and regular price (CAD), savings, clearance/sale/rebate badges, rating, SKU, stock at the store |
|
|
789
|
+
| `get_canadian_tire_product` | One product at one store: specifications, variants with SKUs, warranty, manuals, store price, stock, pickup and ship-to-home dates |
|
|
790
|
+
| `get_canadian_tire_stores` | Stores near a postal code or coordinates; with `sku`, each store's stock quantity and aisle for it |
|
|
791
|
+
| `get_canadian_tire_availability` | Up to 50 SKUs at one store in one call: price, clearance and sale flags, price valid-until date, stock, aisle |
|
|
792
|
+
| `get_canadian_tire_clearance` | Every clearance item at one store, 100 per page |
|
|
793
|
+
| `get_canadian_tire_deals` | Sale, instant rebate, special buy or Triangle Rewards items at one store |
|
|
794
|
+
|
|
795
|
+
1 credit per call. `store_id` (from `get_canadian_tire_stores`, e.g. `"600"`) is
|
|
796
|
+
required on search, product, availability, clearance and deals. Prices differ by
|
|
797
|
+
store and province (Quebec prices differ). Rating and review count only, no
|
|
798
|
+
review text.
|
|
799
|
+
|
|
800
|
+
### Dollar General
|
|
801
|
+
|
|
802
|
+
| Tool | Description |
|
|
803
|
+
|------|-------------|
|
|
804
|
+
| `search_dollar_general` | Search at one store: price, original price, units on hand at that store, rating, coupons and promotions, UPC |
|
|
805
|
+
| `get_dollar_general_product` | One product by UPC at one store: price, units on hand, nearby stores with stock, description, images, coupons |
|
|
806
|
+
| `get_dollar_general_stores` | Stores near a ZIP or coordinates (up to 25); with `upc`, that product's unit count at every store in one call |
|
|
807
|
+
| `get_dollar_general_deals` | On-sale or clearance items priced and stocked at one store |
|
|
808
|
+
| `get_dollar_general_coupons` | Current digital coupons: value, brand, minimum quantity, start and expiration dates |
|
|
809
|
+
|
|
810
|
+
1 credit per call. `store_id` (from `get_dollar_general_stores`, e.g. `"14838"`) is
|
|
811
|
+
required on search, product and deals. Clearance items carry the current price
|
|
812
|
+
only, with no was-price. Rating and review count only, no review text.
|
|
813
|
+
|
|
754
814
|
### Kroger
|
|
755
815
|
|
|
756
816
|
| Tool | Description |
|
|
@@ -0,0 +1,74 @@
|
|
|
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/canadiantire.ts. Cross-field rules the
|
|
5
|
+
// backend enforces and zod here does not: search takes query OR category_id;
|
|
6
|
+
// stores takes postal_code OR latitude+longitude. No zod `.default()`: the MCP
|
|
7
|
+
// SDK would post a defaulted field on every call.
|
|
8
|
+
const SORTS = ["relevance", "price_asc", "price_desc", "newest", "rating", "bestseller"];
|
|
9
|
+
const DEAL_TYPES = ["sale", "instant_rebate", "special_buy", "loyalty"];
|
|
10
|
+
const storeId = () => z.string().regex(/^\d{1,5}$/)
|
|
11
|
+
.describe("Canadian Tire store number from get_canadian_tire_stores, e.g. '600'. Prices and stock are that store's.");
|
|
12
|
+
export function registerCanadianTireTools(server, getClient) {
|
|
13
|
+
const post = (path) => async (params) => {
|
|
14
|
+
try {
|
|
15
|
+
const data = await getClient().post(`/api/v1/canadiantire/${path}`, params);
|
|
16
|
+
return trimResponse(data);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
return handleApiError(err);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
server.tool("search_canadian_tire", `Search Canadian Tire by keyword or category at one store. Each result has the store's price and regular price (CAD), price range for multi-variant items, savings, badges (clearance, sale, rebate), rating, review count, brand, part number, SKU, and stock at the store and online. Prices differ by store and province (Quebec differs). 24 per page. 1 credit/call.`, {
|
|
23
|
+
query: z.string().max(200).optional()
|
|
24
|
+
.describe("Search keywords, e.g. 'dewalt drill'. Pass this or category_id."),
|
|
25
|
+
category_id: z.string().max(300).optional()
|
|
26
|
+
.describe("Category id (DC followed by 7 digits, e.g. 'DC0002209'), or a canadiantire.ca category URL ending in one. Pass this or query."),
|
|
27
|
+
store_id: storeId(),
|
|
28
|
+
page: z.number().int().min(1).max(100).optional()
|
|
29
|
+
.describe("Page, 1-based, 24 per page."),
|
|
30
|
+
sort: z.enum(SORTS).optional()
|
|
31
|
+
.describe("relevance (default), price_asc, price_desc, newest, rating or bestseller."),
|
|
32
|
+
in_stock_only: z.boolean().optional()
|
|
33
|
+
.describe("Only items in stock at store_id."),
|
|
34
|
+
}, post("search"));
|
|
35
|
+
server.tool("get_canadian_tire_product", `One Canadian Tire product by code at one store: breadcrumb, images, videos, rating and review count, descriptions, feature bullets, specifications, price and regular price, warranty, manuals, variants with their SKUs, and the store's price, stock, and pickup and ship-to-home dates. Rating and review count only, no review text. 1 credit.`, {
|
|
36
|
+
product_code: z.string().regex(/^\d{7}[pP]?$/)
|
|
37
|
+
.describe("Product code, the code field of a search result, e.g. '0547273P'."),
|
|
38
|
+
store_id: storeId(),
|
|
39
|
+
}, post("product"));
|
|
40
|
+
server.tool("get_canadian_tire_stores", `Canadian Tire stores near a postal code or coordinates, nearest first: store number, name, address, phone, coordinates, distance, weekly hours and services. Pass sku to also get each store's stock quantity and aisle for that item. 1 credit.`, {
|
|
41
|
+
postal_code: z.string().max(10).optional()
|
|
42
|
+
.describe("Canadian postal code or its first 3 characters, e.g. 'M5V 2T6'. Pass this or latitude and longitude."),
|
|
43
|
+
latitude: z.number().min(-90).max(90).optional()
|
|
44
|
+
.describe("Latitude, e.g. 43.6426."),
|
|
45
|
+
longitude: z.number().min(-180).max(180).optional()
|
|
46
|
+
.describe("Longitude, e.g. -79.3871."),
|
|
47
|
+
radius_km: z.number().min(1).max(200).optional()
|
|
48
|
+
.describe("Search radius in km. Default 25, max 200."),
|
|
49
|
+
limit: z.number().int().min(1).max(50).optional()
|
|
50
|
+
.describe("Stores to return, nearest first. Default 10, max 50."),
|
|
51
|
+
sku: z.string().max(12).optional()
|
|
52
|
+
.describe("7-digit SKU, e.g. '0438858'. Adds each store's stock quantity and aisle for it."),
|
|
53
|
+
}, post("stores"));
|
|
54
|
+
server.tool("get_canadian_tire_availability", `Price and stock for up to 50 SKUs at one Canadian Tire store in one call: the store's price and regular price, clearance and sale flags, price valid-until date, stock quantity, aisle, online stock, and pickup and delivery dates. SKUs that do not exist are listed in not_found. 1 credit.`, {
|
|
55
|
+
store_id: storeId(),
|
|
56
|
+
skus: z.array(z.string().max(12)).min(1).max(50)
|
|
57
|
+
.describe("1-50 SKUs (7 digits, the sku field of a search result or a product variant), e.g. ['0438858', '0547273']."),
|
|
58
|
+
}, post("availability"));
|
|
59
|
+
server.tool("get_canadian_tire_clearance", `Every clearance item at one Canadian Tire store, 100 per page: clearance price, regular price, stock at the store and the same fields as search_canadian_tire. In-stock items only by default. 1 credit/call.`, {
|
|
60
|
+
store_id: storeId(),
|
|
61
|
+
page: z.number().int().min(1).max(100).optional()
|
|
62
|
+
.describe("Page, 1-based, 100 per page."),
|
|
63
|
+
in_stock_only: z.boolean().optional()
|
|
64
|
+
.describe("Only clearance items in stock at store_id. Default true."),
|
|
65
|
+
}, post("clearance"));
|
|
66
|
+
server.tool("get_canadian_tire_deals", `Items on a deal at one Canadian Tire store, 100 per page: this week's sale prices, instant rebates, special buys or Triangle Rewards loyalty offers, with the same fields as search_canadian_tire. 1 credit/call.`, {
|
|
67
|
+
store_id: storeId(),
|
|
68
|
+
type: z.enum(DEAL_TYPES)
|
|
69
|
+
.describe("sale (this week's sale prices), instant_rebate, special_buy or loyalty (Triangle Rewards offers)."),
|
|
70
|
+
page: z.number().int().min(1).max(100).optional()
|
|
71
|
+
.describe("Page, 1-based, 100 per page."),
|
|
72
|
+
}, post("deals"));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=canadiantire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canadiantire.js","sourceRoot":"","sources":["../../src/tools/canadiantire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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/dollargeneral.ts. Cross-field rule the
|
|
5
|
+
// backend enforces and zod here does not: stores takes zip OR
|
|
6
|
+
// latitude+longitude. No zod `.default()`: the MCP SDK would post a defaulted
|
|
7
|
+
// field on every call.
|
|
8
|
+
const SORTS = ["recommended", "price_low", "price_high", "rating"];
|
|
9
|
+
const storeId = () => z.string().regex(/^\d{1,5}$/)
|
|
10
|
+
.describe("Dollar General store number from get_dollar_general_stores, e.g. '14838'. Prices and unit counts are that store's.");
|
|
11
|
+
const sort = () => z.enum(SORTS).optional()
|
|
12
|
+
.describe("recommended (default), price_low, price_high or rating.");
|
|
13
|
+
const upc = () => z.string().regex(/^\d{6,14}$/)
|
|
14
|
+
.describe("Product UPC, the upc field of a search result, e.g. '030772156629'. Leading zeros are optional.");
|
|
15
|
+
export function registerDollarGeneralTools(server, getClient) {
|
|
16
|
+
const post = (path) => async (params) => {
|
|
17
|
+
try {
|
|
18
|
+
const data = await getClient().post(`/api/v1/dollargeneral/${path}`, params);
|
|
19
|
+
return trimResponse(data);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
return handleApiError(err);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
server.tool("search_dollar_general", `Search Dollar General products at one store. Each result has that store's price and original price (dollars), available_quantity (units on hand at that store), rating, review count, categories, digital coupons and promotions, UPC and product URL. 24 per page. Use a result's upc with get_dollar_general_product. 1 credit/call.`, {
|
|
26
|
+
query: z.string().min(1).max(200)
|
|
27
|
+
.describe("Search keywords, e.g. 'paper towels'."),
|
|
28
|
+
store_id: storeId(),
|
|
29
|
+
page: z.number().int().min(1).max(100).optional()
|
|
30
|
+
.describe("Page, 1-based, 24 per page."),
|
|
31
|
+
sort: sort(),
|
|
32
|
+
in_stock_only: z.boolean().optional()
|
|
33
|
+
.describe("Only products with units on hand at the store. Default false."),
|
|
34
|
+
}, post("search"));
|
|
35
|
+
server.tool("get_dollar_general_product", `One Dollar General product by UPC at one store: price, original price, available_quantity (units on hand), nearby_stores_with_stock, rating, review count, SKU, brand, description, highlights, images, category hierarchy, digital coupons and promotions. Rating and review count only, no review text. An unknown UPC or store number is a 404. 1 credit.`, {
|
|
36
|
+
upc: upc(),
|
|
37
|
+
store_id: storeId(),
|
|
38
|
+
}, post("product"));
|
|
39
|
+
server.tool("get_dollar_general_stores", `Dollar General stores near a US ZIP or coordinates, nearest first (up to 25): store number, address, phone, coordinates, distance in miles, opening hours and services. Pass a upc and one call returns that product's unit count at every store returned (quantity, in_stock, inventory_status, is_sellable). 1 credit.`, {
|
|
40
|
+
zip: z.string().regex(/^\d{5}(-\d{4})?$/).optional()
|
|
41
|
+
.describe("US ZIP code, e.g. '75203'. Pass this or latitude and longitude."),
|
|
42
|
+
latitude: z.number().min(-90).max(90).optional()
|
|
43
|
+
.describe("Latitude, e.g. 32.74."),
|
|
44
|
+
longitude: z.number().min(-180).max(180).optional()
|
|
45
|
+
.describe("Longitude, e.g. -96.79."),
|
|
46
|
+
radius: z.number().min(1).max(100).optional()
|
|
47
|
+
.describe("Search radius in miles. Default 25."),
|
|
48
|
+
upc: upc().optional()
|
|
49
|
+
.describe("Product UPC. Every store then carries its unit count of that product."),
|
|
50
|
+
}, post("stores"));
|
|
51
|
+
server.tool("get_dollar_general_deals", `Dollar General products on sale or on clearance, priced and stocked at one store, 24 per page. available_quantity > 0 means in stock at that store; the listing covers the whole chain, so out-of-stock items are included. Clearance items carry the current price only (no was-price). 1 credit/call.`, {
|
|
52
|
+
store_id: storeId(),
|
|
53
|
+
type: z.enum(["on_sale", "clearance"])
|
|
54
|
+
.describe("on_sale (everything on sale) or clearance (the clearance event)."),
|
|
55
|
+
page: z.number().int().min(1).max(100).optional()
|
|
56
|
+
.describe("Page, 1-based, 24 per page."),
|
|
57
|
+
sort: sort(),
|
|
58
|
+
}, post("deals"));
|
|
59
|
+
server.tool("get_dollar_general_coupons", `Dollar General's current digital coupons, 30 per page: offer id and code, summary, description, brand, company, value, offer type, category, minimum quantity, start and expiration dates, and whether it is a manufacturer coupon. 1 credit/call.`, {
|
|
60
|
+
page: z.number().int().min(1).max(50).optional()
|
|
61
|
+
.describe("Page, 1-based, 30 per page."),
|
|
62
|
+
}, post("coupons"));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=dollargeneral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dollargeneral.js","sourceRoot":"","sources":["../../src/tools/dollargeneral.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -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
|
|
8
|
-
* tools, which serialises to
|
|
9
|
-
* `npm run toolslist`, not estimated) — roughly
|
|
7
|
+
* Registering everything is not an option any more. The full surface is 298
|
|
8
|
+
* tools, which serialises to 287KB of tools/list (measured with
|
|
9
|
+
* `npm run toolslist`, not estimated) — roughly 72k 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 (
|
|
30
|
+
* all — every platform (298 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
|
*
|
package/dist/tools/index.js
CHANGED
|
@@ -20,6 +20,10 @@ import { registerHebTools } from "./heb.js";
|
|
|
20
20
|
import { registerKrogerTools } from "./kroger.js";
|
|
21
21
|
import { registerDecathlonTools } from "./decathlon.js";
|
|
22
22
|
import { registerSpecsTools } from "./specs.js";
|
|
23
|
+
import { registerLowesTools } from "./lowes.js";
|
|
24
|
+
import { registerSamsClubTools } from "./samsclub.js";
|
|
25
|
+
import { registerCanadianTireTools } from "./canadiantire.js";
|
|
26
|
+
import { registerDollarGeneralTools } from "./dollargeneral.js";
|
|
23
27
|
import { registerMercadoLibreTools } from "./mercadolibre.js";
|
|
24
28
|
import { registerTiktokShopTools } from "./tiktok-shop.js";
|
|
25
29
|
import { registerBookingTools } from "./booking.js";
|
|
@@ -83,6 +87,10 @@ const PLATFORMS = {
|
|
|
83
87
|
kroger: registerKrogerTools,
|
|
84
88
|
decathlon: registerDecathlonTools,
|
|
85
89
|
specs: registerSpecsTools,
|
|
90
|
+
lowes: registerLowesTools,
|
|
91
|
+
samsclub: registerSamsClubTools,
|
|
92
|
+
canadiantire: registerCanadianTireTools,
|
|
93
|
+
dollargeneral: registerDollarGeneralTools,
|
|
86
94
|
mercadolibre: registerMercadoLibreTools,
|
|
87
95
|
"tiktok-shop": registerTiktokShopTools,
|
|
88
96
|
// Travel and local
|
|
@@ -117,9 +125,9 @@ export const PLATFORM_KEYS = Object.keys(PLATFORMS);
|
|
|
117
125
|
/**
|
|
118
126
|
* What registers when SCAVIO_PLATFORMS is unset.
|
|
119
127
|
*
|
|
120
|
-
* Registering everything is not an option any more. The full surface is
|
|
121
|
-
* tools, which serialises to
|
|
122
|
-
* `npm run toolslist`, not estimated) — roughly
|
|
128
|
+
* Registering everything is not an option any more. The full surface is 298
|
|
129
|
+
* tools, which serialises to 287KB of tools/list (measured with
|
|
130
|
+
* `npm run toolslist`, not estimated) — roughly 72k tokens pushed into the
|
|
123
131
|
* context of EVERY session before the user has typed anything, and past the
|
|
124
132
|
* hard tool-count ceiling some clients enforce. The default set below is 142
|
|
125
133
|
* tools, 112KB (0.20.0: TikTok, YouTube, Reddit and X gained 19 tools; 0.21.0:
|
|
@@ -175,7 +183,7 @@ function warnOnce(message) {
|
|
|
175
183
|
* Turn a SCAVIO_PLATFORMS value into the canonical platform keys to register.
|
|
176
184
|
*
|
|
177
185
|
* Accepts a comma-separated list of platform keys, plus three keywords:
|
|
178
|
-
* all — every platform (
|
|
186
|
+
* all — every platform (298 tools)
|
|
179
187
|
* default — expands to DEFAULT_PLATFORMS, so `default,sec,g2` is additive
|
|
180
188
|
* none — no platform tools at all, leaving only get_usage
|
|
181
189
|
*
|
|
@@ -230,6 +238,8 @@ const TITLE_WORDS = {
|
|
|
230
238
|
linkedin: "LinkedIn",
|
|
231
239
|
ebay: "eBay",
|
|
232
240
|
heb: "HEB",
|
|
241
|
+
lowes: "Lowe's",
|
|
242
|
+
sams: "Sam's",
|
|
233
243
|
sec: "SEC",
|
|
234
244
|
g2: "G2",
|
|
235
245
|
ai: "AI",
|
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":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAI/C;;;;;;;;;;;;GAYG;AACH,MAAM,SAAS,GAA+B;IAC5C,OAAO;IACP,OAAO,EAAE,mBAAmB;IAC5B,SAAS;IACT,MAAM,EAAE,mBAAmB;IAC3B,gBAAgB;IAChB,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,mBAAmB;IAC3B,mBAAmB;IACnB,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,mBAAmB;IAC3B,CAAC,EAAE,cAAc;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,qBAAqB;IAC/B,0BAA0B;IAC1B,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,mBAAmB;IAC3B,GAAG,EAAE,gBAAgB;IACrB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,qBAAqB;IAC/B,YAAY,EAAE,yBAAyB;IACvC,aAAa,EAAE,0BAA0B;IACzC,YAAY,EAAE,yBAAyB;IACvC,aAAa,EAAE,uBAAuB;IACtC,mBAAmB;IACnB,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,mBAAmB;IAC3B,WAAW,EAAE,wBAAwB;IACrC,IAAI,EAAE,iBAAiB;IACvB,cAAc;IACd,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,sBAAsB;IACjC,yBAAyB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,aAAa;IACb,QAAQ,EAAE,qBAAqB;IAC/B,UAAU,EAAE,uBAAuB;IACnC,mBAAmB;IACnB,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,qBAAqB;IAC/B,mBAAmB;IACnB,UAAU,EAAE,uBAAuB;IACnC,eAAe;IACf,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,oBAAoB;IAC7B,gCAAgC;IAChC,GAAG,EAAE,gBAAgB;IACrB,cAAc,EAAE,2BAA2B;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,WAAW;IACX,GAAG;IACH,UAAU;CACX,CAAC;AAEF,kEAAkE;AAClE,MAAM,OAAO,GAA2B;IACtC,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,SAAS;IACtB,qBAAqB,EAAE,WAAW;CACnC,CAAC;AAEF,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1D,KAAK,MAAM,GAAG,IAAI,aAAa;IAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAClF,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AACjC,SAAS,QAAQ,CAAC,OAAe;IAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,+CAA+C;IAC/C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAA8B;IAC7D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QACzB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,iBAAiB;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,SAAS;YAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;YAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CACN,kDAAkD,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpH,oBAAoB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,YAAY;YAAE,OAAO,EAAE,CAAC;QAC5B,QAAQ,CAAC,6FAA6F,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvI,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,sEAAsE;AACtE,MAAM,WAAW,GAA2B;IAC1C,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG;IAC5B,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX;;;;GAIG;AACH,MAAM,oBAAoB,GAAoG;IAC5H,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IACrF,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IACrF,YAAY,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAClF,YAAY,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;CACnF,CAAC;AAEF;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAiB;IACnC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAO,CAAC,IAAY,EAAE,GAAG,IAAe,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAkC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtG,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9B,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,qBAAqB,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9G,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,SAA6B,EAC7B,eAAmC,GAAG,CAAC,gBAAgB;IAEvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,SAAS;QAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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/lowes.ts. Cross-field rule the backend
|
|
5
|
+
// enforces and zod here does not: search takes query OR category_id, not both.
|
|
6
|
+
// No zod `.default()`: the MCP SDK would post a defaulted field on every call.
|
|
7
|
+
const storeId = () => z.string().regex(/^\d{1,4}$/)
|
|
8
|
+
.describe("Lowe's store number from get_lowes_stores (field store_id), e.g. '0595'. Prices and stock are that store's.");
|
|
9
|
+
const zip = () => z.string().regex(/^\d{5}$/)
|
|
10
|
+
.describe("The store's own 5-digit ZIP, from get_lowes_stores, e.g. '28117'.");
|
|
11
|
+
const itemId = () => z.string().min(1).max(500)
|
|
12
|
+
.describe("Lowe's item id (the number at the end of a lowes.com/pd/ URL), e.g. '5014148635', or the full product URL.");
|
|
13
|
+
export function registerLowesTools(server, getClient) {
|
|
14
|
+
const post = (path) => async (params) => {
|
|
15
|
+
try {
|
|
16
|
+
const data = await getClient().post(`/api/v1/lowes/${path}`, params);
|
|
17
|
+
return trimResponse(data);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return handleApiError(err);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
server.tool("search_lowes", `Search Lowe's by keyword or category at one store. Each result has that store's price, was-price and savings with the sale end date, brand, model number, rating, review count, stock quantity and availability for pickup, delivery, parcel shipping and same-day delivery. store_id and zip are required (from get_lowes_stores). Set on_sale for that store's deals. 24 per page. 2 credits/call.`, {
|
|
24
|
+
query: z.string().min(1).max(200).optional()
|
|
25
|
+
.describe("Search keywords, e.g. 'cordless drill'. Pass this or category_id."),
|
|
26
|
+
category_id: z.string().regex(/^\d{4,16}$/).optional()
|
|
27
|
+
.describe("Category id, the number at the end of a lowes.com/pl/ URL, e.g. '4294607842'. Pass this or query."),
|
|
28
|
+
store_id: storeId(),
|
|
29
|
+
zip: zip(),
|
|
30
|
+
page: z.number().int().min(1).max(31).optional()
|
|
31
|
+
.describe("Page, 1-based, 24 per page. Lowe's serves up to page 31."),
|
|
32
|
+
on_sale: z.boolean().optional()
|
|
33
|
+
.describe("Only items on sale at this store (with a was-price). A page can then hold fewer than 24 results."),
|
|
34
|
+
}, post("search"));
|
|
35
|
+
server.tool("get_lowes_product", `One Lowe's item at one store: price, was-price and savings, on-hand stock with lead time per fulfillment method, stock at nearby stores, aisle and bay, grouped specifications, bullets, UPC, dimensions, weight, rating, images, and the store's address and hours. 2 credits.`, {
|
|
36
|
+
item_id: itemId(),
|
|
37
|
+
store_id: storeId(),
|
|
38
|
+
zip: zip(),
|
|
39
|
+
}, post("product"));
|
|
40
|
+
server.tool("get_lowes_stores", `Find Lowe's stores near a US ZIP, nearest first: store_id, name, address, phone, coordinates, distance, time zone, opening hours and features. Pass a store's store_id and its own ZIP to search_lowes and get_lowes_product. 2 credits.`, {
|
|
41
|
+
zip: z.string().regex(/^\d{5}$/)
|
|
42
|
+
.describe("5-digit US ZIP code to search around, e.g. '10001'."),
|
|
43
|
+
limit: z.number().int().min(1).max(10).optional()
|
|
44
|
+
.describe("Stores to return, nearest first. 1-10, default 10."),
|
|
45
|
+
}, post("stores"));
|
|
46
|
+
server.tool("get_lowes_reviews", `Customer reviews for a Lowe's item, 10 per page: rating, title, text, date, reviewer, recommended, helpful votes, verified and incentivized flags, photos and brand replies, plus the average rating, total and count per star. 1 credit/page.`, {
|
|
47
|
+
item_id: itemId(),
|
|
48
|
+
page: z.number().int().min(1).max(1000).optional()
|
|
49
|
+
.describe("Page, 1-based, 10 per page."),
|
|
50
|
+
sort: z.enum(["newest", "oldest", "most_helpful"]).optional()
|
|
51
|
+
.describe("newest (default), oldest or most_helpful."),
|
|
52
|
+
}, post("reviews"));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=lowes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowes.js","sourceRoot":"","sources":["../../src/tools/lowes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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/samsclub.ts. No zod `.default()`: the MCP
|
|
5
|
+
// SDK would post a defaulted field on every call.
|
|
6
|
+
const SORTS = ["relevance", "price_low", "price_high", "top_selling"];
|
|
7
|
+
const REVIEW_SORTS = ["newest", "oldest", "highest", "lowest", "most_helpful"];
|
|
8
|
+
const sort = () => z.enum(SORTS).optional()
|
|
9
|
+
.describe("relevance, price_low, price_high or top_selling. Defaults to the site's own order.");
|
|
10
|
+
const itemId = () => z.string().regex(/^\d{1,20}$/)
|
|
11
|
+
.describe("Sam's Club item id: the number at the end of a samsclub.com/ip/ URL, or item_id from search, e.g. '19396800826'.");
|
|
12
|
+
const CLUB_NOTE = "Prices and stock are for a nearby club chosen by location, returned in club; use get_sams_club_product with club_id for a specific club.";
|
|
13
|
+
export function registerSamsClubTools(server, getClient) {
|
|
14
|
+
const post = (path) => async (params) => {
|
|
15
|
+
try {
|
|
16
|
+
const data = await getClient().post(`/api/v1/samsclub/${path}`, params);
|
|
17
|
+
return trimResponse(data);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return handleApiError(err);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
server.tool("search_sams_club", `Search Sam's Club. Each result has item_id, price, was_price and savings_amount, unit price, Instant Savings (amount, end date, purchase limit), rating, review count, stock, pickup/delivery/shipping availability and aisle. Up to 45 per page. ${CLUB_NOTE} 1 credit/call.`, {
|
|
24
|
+
query: z.string().min(1).max(200)
|
|
25
|
+
.describe("Search keywords, e.g. 'paper towels'."),
|
|
26
|
+
page: z.number().int().min(1).max(100).optional()
|
|
27
|
+
.describe("Page, 1-based."),
|
|
28
|
+
sort: sort(),
|
|
29
|
+
}, post("search"));
|
|
30
|
+
server.tool("get_sams_club_product", `One Sam's Club item: online price and the club shelf price (club_price) with was price, savings and unit price, Instant Savings (amount, end date, limit), rating histogram, images, UPC, model, specifications, and fulfillment per method with stock status and aisle. Pass club_id (from get_sams_club_clubs) to price and stock a specific club. available_quantity is capped at 8: 8 means 8 or more. 1 credit.`, {
|
|
31
|
+
item_id: itemId(),
|
|
32
|
+
club_id: z.string().regex(/^\d{1,6}$/).optional()
|
|
33
|
+
.describe("Sam's Club club number from get_sams_club_clubs, e.g. '6372'. club_price, in-club stock and aisle are then that club's."),
|
|
34
|
+
}, post("product"));
|
|
35
|
+
server.tool("get_sams_club_clubs", `Sam's Club clubs near a US ZIP, nearest first, within 100 miles: club_id, name, address, coordinates, distance in miles, phone, opening hours, services and whether the club is temporarily closed. Use club_id with get_sams_club_product. 1 credit.`, {
|
|
36
|
+
zip: z.string().regex(/^\d{5}$/)
|
|
37
|
+
.describe("5-digit US ZIP code, e.g. '75201'."),
|
|
38
|
+
limit: z.number().int().min(1).max(20).optional()
|
|
39
|
+
.describe("Clubs to return, nearest first. 1-20, default 10."),
|
|
40
|
+
}, post("clubs"));
|
|
41
|
+
server.tool("get_sams_club_savings", `Every item on Sam's Club Instant Savings, paged (up to 45 per page): price, was price and savings amount, plus each offer's amount, end date, purchase limit and the channels (shipping, pickup, delivery) it applies to. ${CLUB_NOTE} 1 credit/call.`, {
|
|
42
|
+
page: z.number().int().min(1).max(100).optional()
|
|
43
|
+
.describe("Page, 1-based."),
|
|
44
|
+
sort: sort(),
|
|
45
|
+
}, post("savings"));
|
|
46
|
+
server.tool("get_sams_club_category", `Products in a Sam's Club category, paged, with the same fields as search_sams_club. Clearance is category 1150109. A category with nothing on its shelf returns an empty list. ${CLUB_NOTE} 1 credit/call.`, {
|
|
47
|
+
category_id: z.string().regex(/^\d{1,12}$/)
|
|
48
|
+
.describe("Category id: the number at the end of a samsclub.com /browse/ or /cp/ URL. Clearance is '1150109'."),
|
|
49
|
+
page: z.number().int().min(1).max(100).optional()
|
|
50
|
+
.describe("Page, 1-based."),
|
|
51
|
+
sort: sort(),
|
|
52
|
+
}, post("category"));
|
|
53
|
+
server.tool("get_sams_club_reviews", `Customer reviews for a Sam's Club item, 10 per page: rating, title, text, author, date, verified purchase and helpful votes, plus the average rating, total count and 1-5 star breakdown. 1 credit/page.`, {
|
|
54
|
+
item_id: itemId(),
|
|
55
|
+
page: z.number().int().min(1).max(100).optional()
|
|
56
|
+
.describe("Page, 1-based, 10 per page."),
|
|
57
|
+
sort: z.enum(REVIEW_SORTS).optional()
|
|
58
|
+
.describe("newest, oldest, highest, lowest or most_helpful."),
|
|
59
|
+
}, post("reviews"));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=samsclub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"samsclub.js","sourceRoot":"","sources":["../../src/tools/samsclub.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.
|
|
3
|
+
"version": "0.29.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. 298 tools across 45 platforms plus Extract, site map, crawl and batch extraction, one API key.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "Scavio",
|
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
"amazon",
|
|
24
24
|
"walmart",
|
|
25
25
|
"costco",
|
|
26
|
+
"lowes",
|
|
27
|
+
"sams-club",
|
|
28
|
+
"canadian-tire",
|
|
29
|
+
"dollar-general",
|
|
26
30
|
"mercadolibre",
|
|
27
31
|
"mercado-libre",
|
|
28
32
|
"tiktok",
|