This listing identifies a third-party MCP server. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
This server may ask you to sign in when your AI client connects.
Last probed Nov 3, 2026 · api.shopsandstream.com
23tools discovered
For AI agents — MCPBundles Directory API
For MCP client apps (human connect):
MCP connect URL: https://api.shopsandstream.com/mcp
Skill page: https://www.mcpbundles.com/skills/shopsandstream-mcp-2379f16aec
Explore capabilities (23)
read 5
write 1
other 17
Get
4
Request
3
Check
2
Other capabilities
14
Agent Ping
other
agent_ping
Ping the Sandstream backend to verify agent connectivity
Round-trip connectivity check. Call this to confirm the Sandstream backend is reachable. It echoes your message and reports whether your API key was received, and whether it arrived in a form the other tools accept. Use it to verify the integration before running any engineering or project workflows.
**Diagnostic only** — it touches no customer data and is not part of any sales conversation. Never call it while assisting a customer.
###
Description may be truncated on the public preview.
Agent Ping — Ping the Sandstream backend to verify agent connectivity
Round-trip connectivity check. Call this to confirm the Sandstream backend is reachable. It echoes your message and reports whether your API key was received, and whether it arrived in a form the other tools accept. Use it to verify the integration before running any engineering or project workflows.
**Diagnostic only** — it touches no customer data and is not part of any sales conversation. Never call it while assisting a customer.
###
Open Design Panel — Put the segment cards on the customer's screen
Opens the guided design panel. Call this as soon as the customer wants a system sized, quoted or designed — *'how much for my shop?'*, *'can you size something for my house?'*, *'I want to go solar'*.
The chat opens as an ordinary conversation, so until this is called there is nothing on screen but your reply. After it, the customer is asked what they want to power and the panels collect the location, the load, the spend and the roof in turn. **Do
Record Journey Answer — Record what the customer told you in the chat
Puts an answer the customer **typed in the conversation** onto the journey, so the panels move on and nobody is asked the same thing twice.
The panels beside the chat are a convenience, not the only way to answer. Somebody who ignores the location field and writes *'we're in Kano, off Zaria Road'* has answered it — call this, and the panel advances to the next question by itself.
## Record only what they actually said
**Never infer, never fill a
Request Engineering Design — Record that the customer wants the paid engineering design
Call this when the customer says they want to go ahead with the detailed engineering design — *'ok, I want the proper design'*, *'let's do the engineering assessment'*, *'how do I proceed?'* after you have given them their free assessment.
There is a button that does the same thing, and plenty of customers say it instead of pressing it. Without this call, saying it out loud does nothing at all.
**It charges nothing and asks for nothin
Get Journey — The customer's whole journey, in order, and whose move it is
Every step from the free assessment to the finished installation, in order, each `done`, `skipped`, `current`, `waiting` or `upcoming`. **Exactly one step is open**: `current` means it is the customer's move and `tool` says which tool does it; `waiting` means an engineer or Sandstream has to act and nothing is needed from the customer.
Call it whenever you are unsure what to ask next, and before offering payment options — `choose_pay
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
How many tools does Sandstream provide?
Operate this server?
Request removal if you do not want Sandstream listed here, or claim the listing if you want to manage it on MCPBundles.
Operate Sandstream?
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms · Request removal
More in developer tools
Other MCP servers in this category from the directory index
Accept Design In Chat — Accept the published design, because the customer said so
Call this only when the customer has **clearly** said they accept the design — *'yes, I accept'*, *'go ahead with this design'*. A vague *'ok'* or *'sounds good'* to a question you did not ask is not a yes: ask them directly first.
Pass their words in `customer_words` exactly as typed; they are checked against their latest message and kept as the evidence.
**Charges nothing.** The next step is how they would like to pay, and the reply
Request Design Changes In Chat — Pass the customer's request about the design to their engineer
Call this when the customer asks for something to change on their published design, or has a question only the engineer can answer.
`customer_words` is **sent to the engineer as written**, so it must be their sentence from their latest message — never your summary of it.
`kind` decides how far it reaches: only `design_change` withdraws the design for the engineer to redraw. Same effect as the panel's request form.
### Responses:
Choose Payment Option — Act on how the customer chose to pay
Call this once the customer has picked one of the options from `get_journey` — *'I'll pay in full'*, *'the 12-month plan'*. Pass its `option_id`, and their words.
**Paying in full** returns a checkout link for the whole price in `pay_url`. **Paying over time** sends the plan to Sandstream for approval and returns **no link** — nothing is payable until they decide, and you must never offer one. Choosing again replaces the earlier choice. The same as clicking
Get Payment Link — The link to pay the deposit or the full price, once it is payable
Call this when the checklist's `payment` step is current — they chose to pay in full, or Sandstream approved their financing — and they want to pay. Returns the same link each time until it is paid; it never raises a second charge. Give `pay_url` exactly as written.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
Check Financing Request — Tell the customer where their financing request has got to
Call this when the customer asks about a financing request they are waiting on — *'has my financing been approved?'*, *'any news on my plan?'*, *'it's been a week'*.
**It decides nothing.** Sandstream's financing decision is made by a person and this tool cannot make, hurry or predict it. It reports the state, and — if the request is still waiting and the approver's email has not just gone — sends that email again with a fresh link, be
Withdraw Acceptance — Take back an acceptance the customer has changed their mind about
Call this when the customer clearly says they no longer want to go ahead with the design they accepted — *'actually, cancel that'*, *'I changed my mind'*. Pass their words.
Only possible **before any payment has been made**. It also withdraws a financing request waiting on Sandstream. The design stays published so they can decide again later; to change the design itself use `request_design_changes_in_chat` instead.
### Response
Redeem Access Code — Redeem the customer's Engineering Assessment code
Call this the moment the customer gives you a code for their Engineering Assessment purchase. It unlocks the engineering design for them, so `create_opensolar_project` will then succeed.
**This call always succeeds** — a code that does not work comes back as `redeemed: false` with a `reason` and a `next_step`. Read the `next_step` to the customer; it already says what they should do. Never describe a rejected code as a system problem, and never
Propose Installation Dates — Record the customer's preferred installation dates
Captures which days suit the customer. **This does not book anything** — Sandstream confirms the date, because crew availability and equipment lead times are not visible to you.
Say the dates have been passed to the team and that they will confirm. Never tell the customer their installation is scheduled from this call.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**Example Response:**
```json
Request Assessment Payment — Give the customer a link to pay the Engineering Assessment
Creates the order in the Sandstream store and returns a checkout link. Give the customer the `pay_url` and read out `wording`.
Prefer this over asking them to find the product themselves — the link is already for the right item, at the right price, tied to this customer, so nothing has to be copied back afterwards.
**Never ask for contact details.** Who the customer is, is settled by the chat panel: it collects their phone number and
Check Payment Status — Has the customer's payment landed?
Check after giving the customer a payment link. Pass the `payment_id` that `request_assessment_payment` returned — **not** the `session_id`; if you only have the session, pass that and it will be resolved.
**Always succeeds** — if the store cannot be reached it reports the payment as still pending rather than failing, so never tell the customer the system is down because of this call.
Only when `paid` is true may you say the payment is confirmed and move on
List Products — The Sandstream product range, with photographs and store links
Every bundle Sandstream publishes — name, specification, price, photograph and shop page — read live from the store.
**Call this for any question about what Sandstream sells**, including 'do you have a picture of the Mini?', 'what's in the range?', 'is there anything smaller?' and 'how much is the Chill?'. It is free, needs no payment and no assessment, and it is the *only* source of a Sandstream product image.
**Never answer a ca
Solar Assessment — Run a preliminary solar assessment
Sizes a system from the customer's load and the site's solar resource (PVGIS, with NASA POWER as fallback), and returns an explained recommendation with an indicative price range.
**Free to run and creates no OpenSolar project** — every data source here is keyless, so the agent can answer general enquiries and size a system for anyone — the estimate is free and anonymous, so produce it before asking who anyone is. Results are flagged `preliminary: true` and m
Calculate Financing — Calculate deposit + installment financing options
Deposit and instalment options for a system.
Give it an `amount`, a `project_id` or an `assessment_id`. With none of the three it falls back to the session's own most recent project, and when there is nothing to finance yet you get `ok: false` with `reason: project_required` — a normal answer meaning 'run the assessment first', never an outage to report to the customer.
**Every figure comes from here — never estimate a deposit, term or rate.**
Create Opensolar Project — Create the OpenSolar project (the commitment gate)
The one place an OpenSolar project is created. Requires the customer to have confirmed **and** paid for their Engineering Assessment (`payment_reference`), so engineering time and the per-project cost are only spent on committed leads. From here OpenSolar is the authoritative source for the design, energy production, bill of materials and quotation.
**Only say the project has been created when this call succeeds and returns `created: true` wit
Generate Quotation — Generate a quotation from the OpenSolar design
Pulls the engineering design from OpenSolar, maps it to Sandstream products, and prices it. All prices come from WooCommerce only.
Call the result by its `document_type`: a quotation is a *Preliminary Commercial Proposal* until the OpenSolar design has been produced and synced (`design_confirmed: true`), and only then an *Official Quotation*.
**Present exactly what it returns** — the line items, the totals and the document name as given. Never re
Get Profile — Customer profile + business summary (memory recall)
Looks a customer up by email or phone and returns what we already know about them, so the agent never re-asks.
**Recall needs a confirmed number.** Pass the `session_id` from SESSION_CONTEXT. If that session has not verified a phone number, this answers `found: false` with `reason: verification_required` and opens the details form below the chat — tell the customer to confirm their number there, and ask for nothing yourself. Confirming it res
Get Project Status — Where a project has got to (status recall)
Answers 'any update on my project?' — the workflow stage, what happens next, and the milestones already reached, plus the assessment, design and quotation attached to the project.
**Always call this rather than repeating what you were told earlier.** OpenSolar sends us no notification when an engineer finishes a design, so this endpoint re-fetches it (through a short cache window) — it is the only way the agent learns that a design is ready. Safe to c
Explain Recommendation — Why did we recommend this? (the engineering reasoning)
Answers **"why 20 kWh?"**, **"why that many panels?"**, **"why did you recommend this?"** with the actual engineering reasoning behind the sizing.
**Read `rationale` back; do not work anything out yourself.** Each entry was recorded by the sizing engine at the moment it made that decision, with the arithmetic that produced it. A figure you re-derive is a figure that can disagree with the design the customer was shown, and that contradictio
MCPBundles probed 23 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
What authentication does Sandstream require?
Sandstream may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
Don't want this listed?
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.