ikea-mcp 1.6.1 → 1.10.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/CHANGELOG.md +72 -0
- package/README.md +662 -526
- package/dist/data/countries.js +16 -0
- package/dist/data/geo.js +26 -0
- package/dist/data/store-coordinates.js +88 -0
- package/dist/data/stores.js +115 -86
- package/dist/schemas/index.js +51 -13
- package/dist/server.js +53 -16
- package/dist/services/ikea.js +5 -0
- package/dist/tools/check_cart_availability.js +7 -4
- package/dist/tools/check_multi_item_stock.js +2 -1
- package/dist/tools/check_store_stock.js +2 -2
- package/dist/tools/compare_store_stock.js +3 -2
- package/dist/tools/find_best_store_for_cart.js +19 -5
- package/dist/tools/find_best_store_for_item.js +19 -5
- package/dist/tools/find_nearby_stores.js +29 -0
- package/dist/tools/get_product_details.js +2 -2
- package/dist/tools/list_stores.js +11 -16
- package/dist/tools/search_products.js +3 -2
- package/dist/tools/targets.js +16 -0
- package/dist/utils/errors.js +27 -0
- package/dist/utils/http.js +6 -1
- package/package.json +59 -53
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Notable changes to ikea-mcp. Versions follow [semantic versioning](https://semver.org/): a result's existing keys
|
|
4
|
+
and meaning do not change within a major version.
|
|
5
|
+
|
|
6
|
+
## 1.10.0
|
|
7
|
+
|
|
8
|
+
The first release since 1.6.2. Versions 1.7.0, 1.8.0 and 1.9.0 were prepared but never published; their changes,
|
|
9
|
+
listed under 1.9.0 below, ship here.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`maxDistanceKm`** on `find_best_store_for_item` and `find_best_store_for_cart`: with `near` it leaves out stores
|
|
14
|
+
farther than that, as `find_nearby_stores` already does. With no store in range they return an empty list without
|
|
15
|
+
calling IKEA. `maxDistanceKm` without `near` or `storeIds` is rejected as invalid input.
|
|
16
|
+
|
|
17
|
+
## 1.9.0
|
|
18
|
+
|
|
19
|
+
Prepared but never published; these changes ship in 1.10.0. Versions 1.7.0 and 1.8.0 were not published either,
|
|
20
|
+
and their changes are listed here.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- **Norway.** `countryCode: "NO"` on the stock tools, seven Norwegian stores, and Norwegian as the default search
|
|
25
|
+
language for that country. Thanks to [@georglundesgaard](https://github.com/georglundesgaard)
|
|
26
|
+
([#1](https://github.com/taejin5314/ikea-mcp/pull/1)).
|
|
27
|
+
- **Finding stores by place.** `find_nearby_stores` returns the stores closest to a latitude and longitude.
|
|
28
|
+
`find_best_store_for_item` and `find_best_store_for_cart` accept `near` and `nearestStores`: they search only the
|
|
29
|
+
closest stores, add `distanceKm` to each row and rank nearer stores first
|
|
30
|
+
([#6](https://github.com/taejin5314/ikea-mcp/pull/6)).
|
|
31
|
+
- **`inRange`** on stock rows: `false` means the item is not sold at that store or in that market, which used to
|
|
32
|
+
look the same as "unknown" ([#1](https://github.com/taejin5314/ikea-mcp/pull/1)).
|
|
33
|
+
- **Ten small-format stores**: San Francisco, Rockwall, Pharr, Chantilly, Scottsdale, Huntsville, Webster, Culver
|
|
34
|
+
City and Tulsa in the US, and London in Canada. The catalog is now 83 stores
|
|
35
|
+
([#7](https://github.com/taejin5314/ikea-mcp/pull/7)).
|
|
36
|
+
- **Tool annotations**: every tool is listed with a title and `readOnlyHint`
|
|
37
|
+
([#4](https://github.com/taejin5314/ikea-mcp/pull/4)).
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- **Errors are tool results.** Invalid arguments, upstream failures and timeouts come back as a result marked
|
|
42
|
+
`isError` with a sentence that names the field to fix. They used to reach the client as JSON-RPC `-32603`
|
|
43
|
+
([#4](https://github.com/taejin5314/ikea-mcp/pull/4)).
|
|
44
|
+
- **Requests time out.** Every request to IKEA is abandoned after 10 seconds
|
|
45
|
+
([#4](https://github.com/taejin5314/ikea-mcp/pull/4)).
|
|
46
|
+
- **`langCode` defaults to the country's language** on `search_products` and `get_product_details` when omitted
|
|
47
|
+
([#1](https://github.com/taejin5314/ikea-mcp/pull/1)).
|
|
48
|
+
- The server reports its package version in `serverInfo` instead of `1.0.0`
|
|
49
|
+
([#3](https://github.com/taejin5314/ikea-mcp/pull/3)).
|
|
50
|
+
- With no `storeIds`, `countryCode` or `near`, the ranking tools search every catalog store, which now includes
|
|
51
|
+
Norway and the small-format stores. Pass `near` or `countryCode` to keep a search local.
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- `check_cart_availability` threw `Cannot read properties of undefined (reading 'quantity')` for an item not sold
|
|
56
|
+
at the store. It now returns `inStock: null, sufficient: false, inRange: false`
|
|
57
|
+
([#1](https://github.com/taejin5314/ikea-mcp/pull/1)).
|
|
58
|
+
|
|
59
|
+
### Removed
|
|
60
|
+
|
|
61
|
+
- Store 508 (Memphis) from the catalog: IKEA's stock API reports it as inactive
|
|
62
|
+
([#7](https://github.com/taejin5314/ikea-mcp/pull/7)).
|
|
63
|
+
|
|
64
|
+
### Project
|
|
65
|
+
|
|
66
|
+
- CI on Node 20 and 22, a daily smoke test against the live API and a weekly audit of the store catalog, each
|
|
67
|
+
opening an issue when it fails.
|
|
68
|
+
- `CONTRIBUTING.md`, and scripts to audit the catalog and regenerate store coordinates.
|
|
69
|
+
|
|
70
|
+
## 1.6.2 and earlier
|
|
71
|
+
|
|
72
|
+
See the [commit history](https://github.com/taejin5314/ikea-mcp/commits/v1.6.2).
|