mon-marche-mcp
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., "@mon-marche-mcpSearch for 'lait demi-écrémé' and add 1 to cart"
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.
mon-marche-mcp
An MCP server that lets an AI assistant search the mon-marché catalog and build a grocery basket from a few instructions. It is a thin, pure-HTTP client over mon-marché's internal API (the Keplr commerce platform) and Constructor.io search — no browser automation.
It deliberately stops at the cart: there is no checkout or payment tool. You review the basket and pay yourself on the website.
Tools
Tool | Purpose | Auth |
| Search the catalog (name, slug, price, bio/anti-gaspi) | none |
| Resolve a slug to its article id + SKU | none |
| Set the quantity of one product (by slug) | sign-in |
| Build a whole basket in one call | sign-in |
| Show lines and total | sign-in |
| Remove a line by article id | sign-in |
| Empty the cart (does not delete it) | sign-in |
| List most frequently ordered products | sign-in |
| List bookable delivery slots for the saved address | sign-in |
| Attach a slot — creates the cart | sign-in |
Related MCP server: MatMCP
Order flow
A cart can only hold products once a delivery slot is attached. Authentication is automatic from the env credentials (it uses a bearer token and a session cookie). Follow this sequence:
Find products —
my_usual_products(frequently ordered) and/orsearch_products.Pick a slot —
list_delivery_slots, choose aslotId.Create the cart —
set_delivery_slot(slotId). This creates the cart (or updates the slot on an existing one) and is required before adding products. Skipping it makesadd_to_cart/add_many_to_cartfail with404 "Le panier est introuvable".Add products —
add_to_cart/add_many_to_cart(by slug).Confirm —
view_cart.
Checkout and payment are intentionally not automated — review and pay on the website.
Setup
npm install
cp .env.example .env # fill in MM_EMAIL / MM_PASSWORD
npm run buildThe account in .env must already have a delivery zone/address configured on the website —
the cart is tied to that.
Run
npm run dev # tsx, reads .env
# or
npm run build && npm startRegister with an MCP client
{
"mcpServers": {
"mon-marche": {
"command": "node",
"args": ["/absolute/path/to/mon-marche-mcp/dist/server.js"],
"env": {
"MM_EMAIL": "you@example.com",
"MM_PASSWORD": "your-password"
}
}
}
}Configuration
Var | Required | Default |
| for cart ops | — |
| for cart ops | — |
| no |
|
| no | public key from the site bundle |
Notes & caveats
No payment. By design. The assistant fills the cart; you check out manually.
Unofficial API. mon-marché has no public API; this calls the same endpoints the website uses. It may change without notice — keep usage personal, single-account, and low-rate, and review your basket before paying. This may run against the site's terms of service; use at your own discretion.
Cart shape. The authenticated cart is normalized in
src/client.ts(normalizeCart). The upstream API uses cents; tools expose euros. Line quantity comes fromquotation.count, unit price fromitemPrice, cart total fromprice.quotation.preauthorization(includes shipping + prep fee).clear_cartonly empties. There is no endpoint to fully delete a cart —DELETE /api/cartclears the contents but the cart shell and its delivery slot persist for the period. So theGET /api/cart→ 404 ("no cart") state cannot be reproduced once a cart exists;set_delivery_slotthen just updates the slot instead of creating a new cart.
Verified API contract
Reverse-engineered from the site's JS bundle and confirmed live. Base
https://www.mon-marche.fr.
Operation | Call |
Sign in |
|
Search |
|
Resolve product |
|
Usual products |
|
Saved addresses |
|
Delivery slots |
|
Create/set delivery |
|
Add one |
|
Add many |
|
View cart |
|
Empty cart |
|
Payment |
|
License
MIT. Note: this license covers only this project's code. It grants no rights to mon-marché's API, data, or trademarks, and does not override the site's terms of service.
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/theomartiz/mon-marche-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server