Ametller Origen
Click on "Install 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., "@Ametller Origensearch for fresh bread"
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.
Ametller Origen — Claude Desktop shopping extension
Shop your Ametller Origen online groceries by talking to Claude. The extension drives your own authenticated Ametller Origen session: it browses the catalog, reads your purchase history, and adds, changes, or removes items in your real cart so you and Claude fill it together.
You stay in control of payment. There is no checkout or payment tool, by design — Claude fills the cart and you review and pay on the Ametller Origen site, where Strong Customer Authentication (SCA) happens. Sign in once through a browser window (handling any 2FA); the session is stored locally on your machine and never leaves it.
It installs as a Claude Desktop extension (described by manifest.json) — load it unpacked via
developer mode (see Install; the packed .mcpb doesn't install reliably). It can also run as a
plain local MCP server.
Independent project. Not affiliated with, endorsed by, or sponsored by Ametller Origen.
How it works
The /ca/online store is a headless Salesforce Commerce Cloud (PWA Kit) storefront, so the extension talks
to the documented SCAPI shopper APIs, authenticated with a SLAS token.
Auth — a headed browser login (
playwright-coredriving your installed Chrome) lets you sign in; the extension captures the registered SLAS token (access + refresh + customer id) straight from the/oauth2/tokenresponse and saves it to~/.ametller/session.json. Access tokens last ~30 min and are refreshed silently from the refresh token, so you only sign in about every ~90 days.Catalog —
shopper-search(product search) andshopper-products(product detail).Cart —
shopper-baskets(your real basket: add / set quantity / remove). Every mutation returns the updated basket, so there are no redundant round-trips.Orders —
shopper-customersorder history, used by reorder / "buy again".
Storefront config (public, read from the page): siteId=ametller, org=f_ecom_blzv_prd,
shortCode=4jppt37a, API base https://4jppt37a.api.commercecloud.salesforce.com.
Related MCP server: oda-mcp
Tools
All tools are prefixed with ametller_ so they never collide with another grocery extension's tools
(e.g. a Mercadona one) when both are installed in Claude Desktop at the same time.
Tool | What it does |
| The shopping playbook — read first. |
| Whether the session is valid. |
| Open a browser to sign in (handles 2FA); saves the session. |
| Find products + ids (Catalan works best). |
| Details for one product. |
| The current real cart. |
| Past orders (date, total, status, count). |
| Items in a past order (no changes). |
| Mutate the real cart (reversible). |
| Add a whole past order to the cart ("buy again"). |
No checkout / pay tool — ever.
Deferred: a "my regulars" suggestion and delivery-slot lookup. Ametller fulfils via Instaleap, so slots live in a separate system, not SCAPI — to be added after recon.
Install
Install it unpacked (developer mode). This is the recommended and reliable path — the packed
.mcpbdoes not currently install cleanly in Claude Desktop, so use the unpacked folder below.
As an unpacked Claude Desktop extension (recommended)
Load this folder directly. The build output (dist/) and runtime dependency (node_modules/playwright-core)
are git-ignored, so after cloning you must produce them first:
npm install # installs playwright-core into node_modules/
npm run build # writes dist/server.mjs (inlines the shopping guide)The folder then contains everything an unpacked extension needs:
manifest.json
icon.png
dist/server.mjs
node_modules/playwright-coreIn Claude Desktop: Settings → Extensions → Advanced settings → "Install unpacked extension…", then select
this folder (the one containing manifest.json). It loads as the "Ametller Origen" extension; run the
ametller_login tool once, then try "show me milk options" (expect a photo-grid artifact) and "add 2 to my cart".
Requirements: Node ≥ 18 on your PATH and Google Chrome installed (the ametller_login tool opens it).
Rebuild (npm run build) after changing anything under src/, then reload the extension.
As a local MCP server
If you don't want a Claude Desktop extension at all, run it as a plain MCP server:
npm install && npm run build
node dist/server.mjsPoint any MCP client at node /path/to/dist/server.mjs (set AMETLLER_BROWSER_CHANNEL=chrome).
As a packed Claude Desktop extension (.mcpb)
⚠️ Not currently recommended — Claude Desktop does not install the packed bundle reliably. Use the unpacked path above instead. Kept here for completeness.
npm run pack # builds dist/, then packs ametller-origen.mcpb via @anthropic-ai/mcpbThen open the resulting .mcpb with Claude Desktop. (The bundle includes dist/ and the production
node_modules, i.e. playwright-core.)
Development
npm install
npm run spike # guest read + basket round-trip against the live API (no login)
npm run login # headed browser login -> ~/.ametller/session.json
npm run whoami # verify the registered session (cart + orders)
npm run build # esbuild bundle -> dist/server.mjs (inlines the shopping guide)
npm run test:mcp # drive the built server over MCP, incl. a real cart round-trip
npm run icon # regenerate the placeholder icon (icon.png)
npm run pack # build -> ametller-unpacked/ + ametller-origen.mcpb + zipLayout:
src/
server.mjs MCP server (the 12 tools)
ametller/api.mjs SCAPI client + compact mappers
auth/slas.mjs SLAS: guest PKCE token, refresh, JWT status
auth/login.mjs headed-browser token harvest
auth/store.mjs load the saved session
shopping-guide.md shopping playbook (bundled into the server)
scripts/ spike / login / whoami / test-mcp / make-icon / packPrivacy
The session token lives only in ~/.ametller/session.json on your machine. The packaged bundle contains
only the server, icon, manifest, and playwright-core — no credentials. All API calls go directly from your
Mac to Salesforce Commerce.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/igorsafonov-gif/ametller-origen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server