Apple Store MCP
Provides read-only tools for browsing Apple Store products, configurations, prices, delivery estimates, and nearby store pickup availability across supported storefronts. It can search products, explore buying options, check delivery and pickup for part numbers or configurations, list Apple Stores, and compare availability across locations and postcodes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Apple Store MCP Check iPhone 16 Pro pickup near Frankfurt and delivery to 60313."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apple Store MCP
A read-only MCP server for browsing Apple Store products, configurations, prices, delivery estimates and store pickup. It uses HTTP requests and does not require an Apple account or browser. It cannot place orders or reserve products.
Install
Install uv.
Add this server to your MCP client's configuration:
{
"mcpServers": {
"apple-store": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/washedguy/apple-store-mcp.git",
"apple-store-mcp"
]
}
}
}Restart your MCP client. The location of this configuration depends on the client. uvx downloads and runs the server; no checkout is needed. If your client cannot find uvx, use the absolute path shown by which uvx (macOS/Linux) or where uvx (Windows).
Related MCP server: MCP-project
Use it
Ask your MCP client questions such as:
“Find the iPhone Duo in Germany and show its colors and storage prices.”
“What are the delivery estimates for these variants to postcode 60313?”
“Which Apple Stores near Frankfurt have this model available for pickup?”
“Show MacBook Pro options and the price with 48 GB of memory.”
Use list_storefronts to see the supported countries and languages. Prices, delivery estimates and pickup availability are specific to the selected storefront and can change. A delivery estimate or pickup quote is not a reservation or exact inventory count.
How the tools work together
search_productsfinds product pages. By default it uses Apple's sitemap, which is useful for discovery but is not a complete catalog of individual products.explore_productfollows a product page to buying choices. For supported pages it returns named variants or configuration options and prices.get_productalso returns available product details and part numbers.Add
locationtoexplore_productfor nearby store quotes andpostal_codefor delivery estimates. For a configurable product, pass its returnedselectionback asoptionswhen changing a choice to preserve the rest of the configuration. If a check fails, product data is retained and the failure appears inissues.Alternatively, use
check_deliveryandcheck_variant_pickupwith part numbers, orlist_apple_storesto browse a country's store directory.
Use compare_availability to check several pickup locations and delivery postcodes together. Set all_stores: true to attempt all stores in a country with at most 30 Apple Stores. The response identifies failed checks, missing stores, missing variant quotes and unknown statuses; complete refers to the requested checks, not every possible postcode or retailer. Each store and delivery result carries its own observation time. All-store checks may take a minute or longer.
The lower-level get_configuration_options, get_configuration_pickup and check_configuration_delivery tools accept Apple's collection and dimension identifiers. browse_sitemap and find_stores provide additional discovery options. The server is read-only.
Limitations
Apple’s interfaces are unofficial and may change or block requests. Coverage varies by product and country; unknown or missing data does not mean an item is unavailable.
The server has been live-tested with German, US, UK, Japanese, Swiss French, Belgian Dutch and French-Canadian product pages; this is not a guarantee for every product, carrier or storefront. Some carrier-specific details may not be represented.
An HTTP 541 response is reported as blocked; its precise cause is not inferred. Failed checks are not reported as out of stock.
The sitemap does not list every variant. Apple search is available with
source: apple_search; its accessories tab can include purchasable products and prices.Delivery estimates are supported for discrete part numbers and supported configurable kits. Configurable-kit delivery was verified with a German MacBook Pro; coverage for other products and storefronts is not yet established. Comparing delivery across postcodes requires choosing those postcodes.
Configurator prices can be starting prices. Option price changes depend on the selected configuration; upgrades may require changing other choices.
Search, product and store results use short process-local caches. Use
fresh: truewhere available to bypass them.
Development
git clone https://github.com/washedguy/apple-store-mcp.git
cd apple-store-mcp
uv sync
uv run ruff check apple_store_mcp tests
uv run python -m unittest discover -s tests -v
uv buildRun uv run apple-store-mcp to start the stdio server, or uv run python -m apple_store_mcp --config to print a local client configuration. uv run python -m apple_store_mcp --check de runs a live diagnostic; Apple can block or rate-limit requests. Optional proxies use the standard HTTPS_PROXY environment variable; see .env.example.
CI runs offline fixtures and a real stdio MCP client test. Maintainers can optionally run the live Germany diagnostic through the GitHub Actions workflow's manual live_check input; a live failure may reflect Apple blocking the runner.
Unofficial project, not affiliated with Apple. Licensed under the MIT License.
Available Tools
13 toolsbrowse_sitemapA
Browse the Apple Store sitemap for a country and return links, optionally filtered by a keyword. Useful for discovering product pages when search is unavailable.
Inputs: fresh, query, country, language. Returns: cache, count, links, query, +4 more
check_configuration_deliveryA
Check delivery estimates for a configurable product. The returned configuration identifies the checked selections. No purchase or reservation is made; a missing estimate is unknown.
Inputs: buy_url (required), collection (required), selections (required), postal_code (required), +2 more. Returns: country, language, products, observed_at, +2 more
check_deliveryA
Read current delivery estimates for product variants and a postal code. No purchase or reservation is made. A missing estimate means unknown, not unavailable.
Inputs: buy_url (required), postal_code (required), part_numbers (required), country, +1 more. Returns: country, language, products, observed_at, +1 more
check_variant_pickupB
Read pickup availability quotes for product variants at nearby stores. Results are estimates, not reservations or stock counts.
Inputs: buy_url (required), location (required), part_numbers (required), country, +1 more. Returns: stores, country, language, location, +1 more
compare_availabilityA
Compare pickup and delivery estimates for variants. Failed, missing and unchecked results are reported as unknown. Read-only; does not reserve or purchase.
Inputs: buy_url (required), part_numbers (required), country, language, +3 more. Returns: note, errors, pickup, country, +11 more
explore_productA
Explore product choices, variants and prices; add a location for nearby store quotes or postal_code for delivery estimates. Read-only; no reservation or purchase.
Inputs: url (required), country, options, language, +2 more. Returns: url, kind, price, issues, +11 more
find_storesB
Find Apple retail stores in the selected country. Returns store names, addresses, phone numbers and coordinates where available.
Inputs: query (required), fresh, country, language. Returns: cache, count, query, stores, +4 more
get_configuration_optionsA
Get live configuration choices and relative price deltas. Upgrade choices may require changing other dimensions; they are not necessarily compatible. The selected price and deltas come from Apple and depend on the returned selected dimensions. Identifiers and coverage vary by product and storefront.
Inputs: collection (required), selections (required), country, language. Returns: reset, country, currency, language, +10 more
get_configuration_pickupA
Check price, options and nearby store availability for a configuration. Read-only: does not reserve or purchase anything. The returned configuration identifies the checked product. Apple may block or change the endpoint.
Inputs: buy_url (required), location (required), collection (required), selections (required), +2 more. Returns: note, stores, country, language, +4 more
get_productA
Read product details from an Apple Store product page by part number, slug, or URL, including price, availability, description, images and specifications where available.
Inputs: reference (required), fresh, country, language. Returns: cache, found, reason, country, +5 more
list_apple_storesB
List Apple retail stores published in the selected country's store directory.
Inputs: country, language. Returns: count, stores, country, observed_at
list_storefrontsA
List supported Apple Store countries, shop languages, currencies and URLs. Product and store IDs are country-specific.
Inputs: no named parameters. Returns: storefronts
search_productsA
Find sitemap pages by default; use apple_search for Apple search tabs and priced accessories. Sitemap results are not a complete product catalog and do not have variant prices. Apple search filters apply locally to one page.
Inputs: query (required), tab, page, brand, +6 more. Returns: tab, note, page, cache, +15 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Several pairs are functionally near-identical: find_stores vs list_apple_stores (both return stores for a country), and search_products vs browse_sitemap (both traverse the sitemap to discover product pages). The availability cluster (compare_availability, check_variant_pickup, check_delivery, check_configuration_delivery, get_configuration_pickup) has real pickup/delivery distinctions but enough overlap that an agent can easily pick the wrong one, especially between compare_availability and the individual check_* tools.
All names are snake_case verb_noun (get_product, check_delivery, browse_sitemap), which is a clear predictable pattern. Minor drift: 'list_apple_stores' injects the vendor name where the sibling uses plain 'find_stores', and verbs vary broadly (find/list/search/get/explore/check/compare/browse) for similar read operations.
13 tools sits comfortably in a well-scoped range for a read-only storefront/product/availability server. The count is slightly inflated by redundant store-listing and availability tools that could be consolidated into 2-3, but nothing feels gratuitous at a per-domain level.
The lifecycle is well covered for a read-only server: store discovery, storefront metadata, product search/detail, configuration options, and pickup/delivery estimates, with purchase explicitly out of scope. Minor gaps remain—no get_store for store details/hours by ID and no direct category or product-listing primitive beyond sitemap paging.
Maintenance
Related MCP Connectors
Free, read-only price comparison for products sold in Australia. Search products, browse categories, open a product with every seller's current price (eBay Australia, Amazon, JB Hi-Fi and more), and compare two products head to head. No login or API key. Answers come from Lianex's cached catalogue, so they are fast and never place an order or change anything. Docs: https://lianex.ai/developers
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Routes natural-language shopping queries to merchant storefronts, returns normalized results.
Read products, sales, subscribers and offer codes; verify, enable and disable product licenses.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables product discovery, session-scoped carts, and confirmation-gated checkout through natural language, with deterministic routing and safety features.5 npmISC
- FlicenseNot gradedqualityCmaintenanceEnables users to interact with an e-commerce shopping assistant using natural language to search products, check prices and ratings, compare items, and get personalized recommendations.-
- AlicenseNot gradedqualityCmaintenanceEnables agents to search a public product catalog, inspect product details and variants, browse collections, find gifts by occasion, and generate cart links for users to review and complete checkout themselves.MIT
- AlicenseNot gradedqualityCmaintenanceProvides LLM clients read-only access to product search, pricing, discounts, catalog categories, store locations, and per-store availability through the retailer's official integration API.MIT