luxare-retail-mcp
This server provides an MCP interface to the Diaspark retail management platform, exposing three tools for querying customer, sales, and inventory data.
list_customers— Search the customer database using filters such asfirst_name,last_name,email,phone,address,city,state,zip,billto_id,salesperson_code, or a genericsearch_value.sales_history_report— Retrieve sales receipt and item history over a date range (start_date/end_datein YYYY/MM/DD format), with optional scoping bycompany_id,user_id, ordocument_id. Useraw_overridesto pass advanced criteria fields (str1–str60,all1–all30, etc.).inventory_search— Query on-hand inventory bysku,serial,upc,rmsa,brand,category,subcategory,department,group,group_code,classification,collection,designer,vendor,vendor_style,store, orlocation. Supportsraw_overridesfor advanced filtering.
raw_overrides (available for sales and inventory tools) allows direct manipulation of underlying XML tags for highly specific or uncommon filter criteria. The server can be run locally for MCP-compatible clients (e.g., Claude Desktop) or deployed as a remote HTTP service.
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., "@luxare-retail-mcpsearch customers by name 'David'"
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.
luxare-retail-mcp
An MCP (Model Context Protocol) server that exposes three Diaspark
(diasparkonline.com) reporting/lookup APIs as tools an MCP-compatible
client (e.g. Claude Desktop, Claude Code) can call.
Tools
Tool | Endpoint | Purpose |
|
| Search the customer list by name, city, email, phone, etc. |
|
| Sales receipt / item sales history report over a date range. |
|
| On-hand inventory report, filterable by SKU, serial #, brand, category, vendor, store, location, etc. |
All requests are sent as Content-Type: application/xml POST bodies. No
authentication is required against the demo environment currently
configured (https://diasparkdemo.rw.diasparkonline.com).
Related MCP server: GigAPI MCP Server
How it works
Each Diaspark endpoint expects a large, mostly-static XML payload (see
src/templates.ts, copied verbatim from the sample requests). Rather than
generating XML from scratch, each tool takes a known-good template and
only overwrites the specific <tag> values relevant to the fields you
pass in — every other default/hidden field the API depends on is left
untouched.
list_customers— nearly every field maps 1:1 to a tag (first_name,last_name,city, ...).sales_history_report— exposescompany_id,user_id,document_id,start_date(→dt1),end_date(→dt2), plus araw_overridesobject for any other criteria field (str1-str60,all1-all30,dec1-dec10,multiselect1-30, etc).inventory_search— exposes friendly names (sku,serial,brand,category,vendor,store,location,department,subcategory,group,group_code,classification,collection,designer,vendor_style,rmsa,upc) that are mapped to the underlyingstrN/strN+1"from/to" tag pairs (derived from the report's column definitions), plusraw_overridesfor anything else.
Passing a friendly inventory field sets both the "from" and "to" tag to
that value, i.e. an exact-match filter. If a filter doesn't seem to take
effect, the report may also require its corresponding allN "select all"
checkbox flag to be turned off — pass that via raw_overrides (e.g.
{ "all5": "N" }). The full column-to-tag mapping is documented in the
original OnHandStockReportBySerialCriteriaStru.xml column definitions
file if you need to extend this further.
applyOverrides (in src/xmlUtils.ts) throws if you reference a tag name
that doesn't exist anywhere in the template, so typos in raw_overrides
fail loudly instead of being silently ignored.
Setup
npm install
npm run buildConfiguration
By default the server targets the demo environment:
https://diasparkdemo.rw.diasparkonline.comTo point at a different environment (e.g. production), set the
DIASPARK_BASE_URL environment variable.
Claude Desktop / Claude Code MCP config
Add to your MCP config file (e.g. claude_desktop_config.json):
{
"mcpServers": {
"luxare-retail": {
"command": "node",
"args": ["/absolute/path/to/luxare-retail-mcp/build/index.js"],
"env": {
"DIASPARK_BASE_URL": "https://diasparkdemo.rw.diasparkonline.com"
}
}
}
}Restart Claude Desktop / Claude Code after editing the config.
Running as a remote HTTP server
The tools are defined once in src/server.ts and exposed over two
entrypoints:
src/index.ts(npm start) — stdio transport, for a local MCP client (Claude Desktop/Code) that spawns the process directly, as above.src/http.ts(npm run start:http) — MCP Streamable HTTP transport, for a remote client connecting over the network. Listens onPORT(defaults to3000), exposes a health check at/and the MCP endpoint atPOST /mcp.
Deploying to Render
This repo includes a render.yaml Blueprint that deploys the HTTP
entrypoint as a Node web service:
Build:
npm install && npm run buildStart:
npm run start:httpHealth check:
/DIASPARK_BASE_URLdefaults to the demo environment; override it in the Render dashboard for a different environment.
In the Render dashboard, use New > Blueprint and point it at this
repo/branch — Render will read render.yaml and provision the service.
Once deployed, remote MCP clients connect to
https://<your-service>.onrender.com/mcp.
Adding more endpoints
To add another Diaspark API as a tool:
Add its sample request body as a new exported template string in
src/templates.ts.Add a new
server.tool(...)block insrc/index.ts, listing the fields you want to expose as friendly parameters (map them to the underlying tag names), plus araw_overridesescape hatch.npm run buildand restart your MCP client.
Example tool calls
// list_customers
{ "first_name": "david", "company_id": 3 }
// sales_history_report
{ "company_id": 7, "start_date": "2026/07/01", "end_date": "2026/07/10" }
// inventory_search
{ "company_id": 7, "sku": "ABC123" }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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/akshayadeodiaspark/luxare-retail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server