commerce-mcp
Provides tools for interacting with SAP Commerce Cloud (Hybris), enabling agents to inspect item types, list type codes, run read-only FlexibleSearch SELECT queries, and validate ImpEx against the live model.
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., "@commerce-mcpWhy did order PROD-4471 fail validation?"
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.
commerce-mcp
An AI / MCP control plane for SAP Commerce Cloud (Hybris).
๐ Live site: https://alextsvetkov.github.io/commerce-mcp/
commerce-mcp exposes a SAP Commerce estate to LLM agents and developer copilots as a set of safe, typed, read-only tools over the Model Context Protocol (MCP). Instead of clicking through HAC and Backoffice, an engineer (or an agent acting on their behalf) can ask:
"Describe the
Ordertype." "Why did orderPROD-4471fail validation?" "Write ImpEx to add aloyaltyTierattribute toCustomerโ and validate it against the live model first."
โ ๏ธ Status: early scaffold. The tool surface, safety model and mock connector are real and tested; the live Hybris connector is a documented extension point, not yet implemented. See Roadmap.
Why this exists
SAP Commerce is powerful but opaque and expertise-gated. Every meaningful interaction โ inspecting the type system, running a FlexibleSearch, writing correct ImpEx, tracing an order โ requires deep tribal knowledge and manual navigation. LLMs can't help today because they have no safe, structured way in.
commerce-mcp is that way in. It is the "hands and eyes" that make a legacy commerce platform legible to agents โ collapsing the single biggest cost driver on any SAP Commerce program: scarce expertise and slow onboarding.
See docs/ (the GitHub Pages site) for the full benefits narrative.
Related MCP server: Enterprise MCP Gateway and Tool Registry
Design principles
Read-only by default. Every shipped tool is non-mutating.
run_flexible_searchrejects anything that isn't aSELECT; write paths (applying ImpEx) are deliberately out of scope for this surface and require separate, explicit authorization.Safe by construction. Row caps, keyword denylists, and (planned) PII redaction + audit logging are product features, not afterthoughts.
Offline-first. A fixture-backed
MockConnectormakes the entire tool surface runnable and testable with zero configuration โ no live instance needed for demos or CI.Transport-neutral core. Tools are plain (schema, description, handler) triples; MCP is one adapter. A CLI or HTTP surface can reuse the same catalogue.
Architecture
LLM / Agent (Claude, Copilot, โฆ)
โ MCP (stdio)
โโโโโโโโโโโโโผโโโโโโโโโโโโ
โ commerce-mcp server โ src/server/index.ts
โโโโโโโโโโโโโโโโโโโโโโโโโโค
โ tool catalogue โ src/tools/index.ts (zod-typed, read-only)
โโโโโโโโโโโโโโโโโโโโโโโโโโค
โ CommerceConnector โ src/types.ts (interface)
โ โโ MockConnector โ fixtures โ offline
โ โโ LiveConnector* โ HAC / OCC / read-only DB view (*planned)
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
SAP Commerce Cloud (Hybris)Tools (v0.1)
Tool | Purpose |
| Full definition of an item type (attributes, parent, deployment table). |
| Enumerate type codes, optional substring filter. |
| Execute a read-only FlexibleSearch |
| Statically validate ImpEx against the live type model before applying. |
Quick start
npm install
npm run build
npm start # runs the MCP server on stdio against the MockConnector
npm test # unit tests, no live instance requiredUse from an MCP client
Add to your client's MCP server config (example for a Claude-style client):
{
"mcpServers": {
"commerce": { "command": "node", "args": ["dist/server/index.js"] }
}
}Usage
This snippet is distilled from the runnable example below; the Output: block is the real captured stdout.
MockConnector + buildTools() โ describe, query, and the read-only guard
import { MockConnector } from "commerce-mcp/src/mock-connector.js";
import { buildTools } from "commerce-mcp/src/tools/index.js";
const connector = new MockConnector();
const tools = buildTools(connector);
const call = (name: string) => tools.find((t) => t.name === name)!;
console.log("tools:", tools.map((t) => t.name).join(", "));
// describe_type: full type definition (parent, deployment table, attributes).
const product = await call("describe_type").handler({ code: "Product" }) as any;
console.log(`describe_type Product: extends=${product.extends}, table=${product.deploymentTable}, attrs=[${product.attributes.map((a: any) => a.qualifier).join(", ")}]`);
// run_flexible_search: a read-only SELECT returns capped fixture rows.
const res = await call("run_flexible_search").handler({ query: "SELECT {code},{name} FROM {Product}", maxRows: 10 }) as any;
console.log("run_flexible_search:", JSON.stringify(res));
// SAFETY: a mutating statement is rejected before it reaches the backend.
try {
await call("run_flexible_search").handler({ query: "DELETE FROM {Product}", maxRows: 10 });
} catch (err) {
console.log(`DELETE rejected: ${(err as Error).name}: ${(err as Error).message}`);
}Output:
tools: describe_type, list_types, run_flexible_search, validate_impex
describe_type Product: extends=GenericItem, table=products, attrs=[code, name, catalogVersion]
run_flexible_search: {"columns":["code","name"],"rows":[{"code":"PROD-001","name":"Sample Product"},{"code":"PROD-002","name":"Another Product"}],"rowCount":2,"capped":false,"tookMs":3}
DELETE rejected: ReadOnlyViolationError: Only SELECT queries are permitted through this tool.Examples
Runnable, heavily-commented tutorials live in examples/. Run them
with tsx (already a dev dependency) โ no build step:
Example | Run it | Teaches |
|
|
|
|
| The |
Run example 02 against a local SAP Commerce / HAC instance:
COMMERCE_BASE_URL=https://localhost:9002 \
COMMERCE_USER=admin COMMERCE_PASSWORD=nimda COMMERCE_INSECURE_TLS=true \
npx tsx examples/02-live-connector.tsRoadmap
LiveConnectorover HAC (login + FlexibleSearch + type introspection), verified against a real instance.OCC read paths + a read-only DB view connector.
PII redaction layer + structured audit log for every tool call.
explain_business_process,list_feature_toggles,trace_ordertools.zod-to-json-schemawiring so tool input schemas are fully published to the client.Opt-in, separately-authorized write surface (apply validated ImpEx).
Connecting to a real Hybris instance
By default the server uses the offline MockConnector. Set these env vars to point it at a live SAP Commerce instance (it auto-switches to LiveConnector):
export COMMERCE_BASE_URL=https://localhost:9002 # HAC base (root context)
export COMMERCE_USER=admin
export COMMERCE_PASSWORD=nimda
export COMMERCE_INSECURE_TLS=true # allow self-signed TLS (local dev)
npm startVerified live against the SAP cloud-commerce-sample-setup: run_flexible_search, list_types, and describe_type return real data; run_flexible_search rejects any non-SELECT statement.
Contributing
See CONTRIBUTING.md. This project follows conventional commits and keeps generated code out of version control.
License
MIT ยฉ 2026 Aliaksandr Tsviatkou
Honest assessment
From the v2 self-critical analysis. Scores use Gap ยท Value ยท Moat ยท Time-to-revenue ยท Risk (for Risk, higher = safer). Prior art is named deliberately โ "no competitor" is almost never true.
Scores: Gap 5 ยท Value 4 ยท Moat 3 ยท TTR 4 ยท Risk 3 (higher=safer)
Prior art / competition. MCP is new; SAP's Joule/CX AI is storefront-facing, not developer/ops-facing. Thin prior art โ the strongest of the suite.
True differentiator. Depth and safety of type-system / ImpEx / FlexibleSearch semantics, and being the first safe agent entry point others build on.
Kill criterion. If target teams won't let an agent touch prod data even read-only, and won't pay for a sandboxed variant, the wedge is weaker than it looks.
Verdict. Build this as the one commercial wedge โ but from public HAC/OCC APIs, never internal employer code.
This assessment is part of a broader, self-critical analysis of the whole tool suite (problem landscape, go-to-market, and an IP / conflict-of-interest review) maintained privately by the author.
Part of a suite of backend tools for SAP Commerce Cloud. commerce-mcp is the AI-native flagship; sibling projects cover schema migration, ImpEx tooling, tracing, upgrades, and eventing correctness.
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.
Related MCP Servers
- Alicense-qualityAmaintenanceA local-first control plane for AI agent tools, providing policy enforcement, spend caps, rate limiting, and audit trails for MCP servers.Last updated1Apache 2.0
- Alicense-qualityCmaintenanceEnables AI agents to discover and execute tools via a secure MCP server with JWT authentication, RBAC, rate limiting, and audit logging.Last updated1MIT
- Alicense-qualityDmaintenanceA config-driven MCP server that exposes OData and REST APIs as MCP tools, enabling AI assistants to query, manage, and monitor SAP backends through natural language.Last updated7126MIT
- Flicense-qualityBmaintenanceEnables AI agents to interact with SAP Cloud Integration (CPI) by exposing CPI APIs as MCP tools for inspecting metadata, runtime artifacts, message logs, and failed messages.Last updated3
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/AlexTsvetkov/commerce-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server