io.github.taurgis/sfcc-dev-mcp
编码与调试by taurgis
为 Salesforce B2C Commerce Cloud 提供开发辅助的 MCP 服务器,支持常见开发与调试场景。
什么是 io.github.taurgis/sfcc-dev-mcp?
为 Salesforce B2C Commerce Cloud 提供开发辅助的 MCP 服务器,支持常见开发与调试场景。
README
SFCC Development MCP Server
An AI-powered Model Context Protocol (MCP) server that provides comprehensive access to Salesforce B2C Commerce Cloud development tools, documentation, and runtime diagnostics.
✨ Key Features
- 🔍 Complete SFCC Documentation Access - Search and explore all SFCC API classes and methods
- 🏗️ SFRA Documentation - Enhanced access to Storefront Reference Architecture documentation
- 🧱 ISML Template Reference - Complete ISML element documentation with examples and usage guidance
- 📊 Log Analysis Tools - Real-time error monitoring, debugging, and job log analysis for SFCC instances
- ⚙️ System Object Definitions - Explore custom attributes and site preferences
- 🧪 Script Debugger - Execute and inspect script-debugger endpoints in credentialed mode
- 🚀 Cartridge Generation - Automated cartridge structure creation with workspace-bound path safety (writes stay inside workspace roots, or current working directory fallback when roots are unavailable; home-directory fallback is blocked)
- 🧩 Agent Skill Bootstrap - Install or merge AGENTS.md and bundled skills into the current project or a temp directory for AI assistants
- ✅ Tool Argument Validation - Runtime schema validation enforces required fields, type checks, enum constraints, integer/numeric bounds, and strict unknown-key checks for object schemas (top-level and nested) before handler execution
- ⏱️ MCP Progress + Cancellation - Tool calls honor request cancellation signals and emit out-of-band
notifications/progressupdates when clients provide aprogressToken
🚀 Quick Start
Option 1: Documentation-Only Mode (No SFCC credentials needed)
{
"mcpServers": {
"sfcc-dev": {
"command": "npx",
"args": ["sfcc-dev-mcp"]
}
}
}
Option 2: Full Mode (With SFCC credentials for log and job analysis)
{
"mcpServers": {
"sfcc-dev": {
"command": "npx",
"args": ["sfcc-dev-mcp", "--dw-json", "/path/to/your/dw.json"]
}
}
}
Create a dw.json file with your SFCC credentials. You can use either auth mode (or both):
- Basic auth:
username+password - OAuth:
client-id+client-secret
{
"hostname": "your-instance.sandbox.us01.dx.commercecloud.salesforce.com",
"username": "your-username",
"password": "your-password",
"client-id": "your-client-id",
"client-secret": "your-client-secret"
}
At least one complete credential pair is required when hostname is set.
If credentials are provided, hostname is also required.
Option 3: Auto-Discovery (Recommended for VS Code users)
Simply open a VS Code workspace that contains a dw.json file - the server will automatically discover and use it:
{
"mcpServers": {
"sfcc-dev": {
"command": "npx",
"args": ["sfcc-dev-mcp"]
}
}
}
🔧 Configuration Discovery Priority
The server discovers SFCC credentials in this order (highest priority first):
| Priority | Source | Description |
|---|---|---|
| 1 | --dw-json CLI parameter | Explicit path to dw.json file |
| 2 | Environment variables | SFCC_HOSTNAME, SFCC_USERNAME, SFCC_PASSWORD, SFCC_CLIENT_ID, SFCC_CLIENT_SECRET |
| 3 | MCP workspace roots | Automatically discovers dw.json in your VS Code workspace folder(s), and refreshes when the client sends notifications/roots/list_changed |
Note: The server no longer searches the current working directory by default, as MCP servers often start with
cwdset to the user's home directory. The MCP workspace roots mechanism provides reliable project context.
🎯 Operating Modes
| Mode | Tools Available | SFCC Credentials Required |
|---|---|---|
| Documentation-Only | 18 tools | ❌ No |
| Full Mode | 40 tools | ✅ Yes |
Documentation-Only Mode
Perfect for learning and development, no SFCC instance required:
- Complete SFCC API documentation (5 tools)
- SFRA documentation (5 tools)
- ISML template documentation (5 tools)
- Cartridge generation (1 tool, writes constrained to workspace roots/cwd)
- Agent instruction bootstrap (2 tools) to copy/merge AGENTS.md and skills, or disable future prompts
Full Mode
Complete development experience with live SFCC instance access:
- All documentation-only features (18 tools)
- Real-time log analysis and job logs (13 tools)
- System object definitions (6 tools)
- Code version management (2 tools)
- Script debugger operations (1 tool)
🏗️ Architecture Overview
This server is built around a capability-gated, modular handler architecture that cleanly separates tool routing from domain logic:
Core Layers
- Tool Schemas (
src/core/tool-schemas/): Modular, category-based tool definitions (documentation, SFRA, ISML, logs, job logs, system objects, cartridge, code versions, agent instructions, script debugger). Re-exported viatool-definitions.ts. - Server Orchestration Modules (
src/core/server-tool-catalog.ts,src/core/server-tool-call-lifecycle.ts,src/core/server-workspace-discovery.ts): Keepsserver.tsfocused by extracting capability-aware tool catalog logic,tools/calllifecycle (progress/cancellation/preflight), and workspace roots reconfiguration flow. - Tool Argument Validator (
src/core/tool-argument-validator.ts): Enforces runtime argument shape at the MCP boundary for all tools (required fields, primitive/object/array types, enum checks, integer/numeric ranges, string patterns/length, and strict unknown-key checks for object schemas at top-level and nested levels) before tool dispatch. - OCAPI Query Coverage (
src/core/tool-schemas/shared-schemas.ts): Shared search schemas includetext_query,term_query,bool_query,filtered_query, andmatch_all_queryso MCP boundary validation aligns with supported OCAPI query patterns. - Handlers (
src/core/handlers/): Each category has a handler extending a common base for timing, structured logging, and error normalization, with config-driven wiring viaConfiguredClientHandlerto reduce repetitive boilerplate (e.g.log-handler,docs-handler,isml-handler,system-object-handler). - Clients (
src/clients/): Encapsulate domain operations (OCAPI, SFRA docs, ISML docs, modular log analysis, script debugger, cartridge generation, agent-instruction sync). Handlers delegate to these so orchestration and computation remain separate. - Services (
src/services/): Dependency-injected abstractions for filesystem and path operations — improves testability and isolates side effects. - Modular Log System (
src/clients/logs/): Reader (range/tail optimization), discovery, processor (line → structured entry), analyzer (patterns & health), formatter (human output) for maintainable evolution. - Configuration Factory (
src/config/configuration-factory.ts): Determines capabilities (canAccessLogs,canAccessOCAPI) based on provided credentials and filters exposed tools accordingly (principle of least privilege). - Shared Credential Validation (
src/config/credential-validation.ts): Centralizes auth-pair completeness and hostname-format validation for bothdw.jsonloading and runtime configuration creation. - Call-time Capability Guarding (
src/core/server.ts): Rejects execution of tools that are unavailable in the current mode, so hidden tools are not callable via directtools/callrequests. - Call Lifecycle Signals (
src/core/server.ts):tools/callhandling supports cancellation via request abort signals and emits best-effort progress notifications when the caller provides_meta.progressToken. - Tool Error Sanitization (
src/core/tool-error-response.ts): Sanitizes upstream execution errors before returning MCP tool responses, reducing accidental leakage of backend payload details. - Runtime WebDAV Verification (
src/core/server.ts): For OAuth-only configurations (client-id/client-secretwithoutusername/password), log/job-log/script-debugger tool exposure is gated by a one-time WebDAV capability probe to avoid false-positive tool availability. - CLI Option Helpers (
src/config/cli-options.ts): Centralizes command-line parsing and environment credential detection for predictable startup behavior. - Shared Path Security Policy (
src/config/path-security-policy.ts): Reuses allow/block path rules across workspace-root discovery and securedw.jsonloading. - Shared Abort Utility (
src/utils/abort-utils.ts): Centralized timeout and abort-signal composition used by HTTP and debugger clients for consistent cancellation semantics and timer cleanup.
Why This Matters
- Extensibility: Adding a new tool usually means adding a schema + minimal handler logic (or a new handler if a new domain).
- Security: Tools that require credentials are never exposed when capability flags are false.
- Testability: Unit tests target clients & modules; integration/MCP tests validate handler routing and response structure.
- Performance: Tail log reads + lightweight caching (
cache.ts,log-cache.ts) reduce unnecessary I/O.
Adding a New Tool (High-Level)
- Add schema to the appropriate file in
src/core/tool-schemas/(or create new file for new category). - Export new schema from
src/core/tool-schemas/index.tsif adding a new file. - Implement domain logic in a client/service (avoid bloating handlers).
- Extend an existing handler or create a new one if it's a new category.
- (Only for a new category) register the new handler inside
registerHandlers()inserver.ts. - Discover actual response shape with
npx aegis querybefore writing tests. - Add Jest unit tests + YAML MCP tests (docs vs full mode if credentials required).
- Update documentation (AGENTS.md + README counts if changed).
For a deeper internal view, see the Development Guide in the docs site.
🤖 AI Interface Setup
Choose your preferred AI assistant:
| Interface | Best For | Setup Guide |
|---|---|---|
| Claude Desktop | Multi-turn conversations, debugging | 📖 Setup Guide |
| GitHub Copilot | VS Code integration, inline suggestions | 📖 Setup Guide |
| Cursor | Modern AI-powered editor | 📖 Setup Guide |
📦 Installation
Using npx (Recommended)
Tip: Add
-y(or--yes) to suppress the interactive prompt npx shows before downloading a package. This prevents AI clients (Claude Desktop, Copilot, Cursor) from hanging waiting for confirmation.
# Test the server
npx -y sfcc-dev-mcp
# Use with your configuration
npx -y sfcc-dev-mcp --dw-json /path/to/your/dw.json
Global Installation
npm install -g sfcc-dev-mcp
sfcc-dev-mcp --dw-json /path/to/your/dw.json
🐛 Debug Mode & Logging
Enable Debug Logging
# Enable debug mode for detailed logging
npx -y sfcc-dev-mcp --debug
# Or with configuration file
npx -y sfcc-dev-mcp --dw-json /path/to/your/dw.json --debug
--debug accepts true/false, 1/0, or yes/no. Invalid values fail fast with a clear error message.
Log File Locations
The server writes logs to your system's temporary directory:
- macOS:
/var/folders/{user-id}/T/sfcc-mcp-logs/ - Linux:
/tmp/sfcc-mcp-logs/ - Windows:
%TEMP%\sfcc-mcp-logs\
Log Files Created:
sfcc-mcp-info.log- General application logs and startup messagessfcc-mcp-debug.log- Detailed debug information (only when--debugis enabled)sfcc-mcp-error.log- Error messages and stack tracessfcc-mcp-warn.log- Warning messages
Finding Your Log Directory
// The exact path varies by system - to find yours:
node -e "console.log(require('os').tmpdir() + '/sfcc-mcp-logs')"
🧪 Release Validation (Maintainers)
The publish workflow runs MCP tests against the just-published npm artifact (npx sfcc-dev-mcp@<version>) before publishing to the MCP Registry.
You can run the same validation locally:
# Ensure docs-site tool catalog stays in sync with runtime tool definitions
npm run validate:tools-sync
# Ensure docs-site skills catalog stays in sync with bundled skills
npm run validate:skills-sync
# Ensure MCP registry metadata stays in sync with package.json
npm run validate:server-json
# In a separate terminal, start the mock server first for full-mode MCP tests
npm run test:mock-server:start
# Uses latest published version by default
npm run test:mcp:published-npx
# Or pin a specific published version
bash ./scripts/test-published-npx.sh 1.0.21
In GitHub Actions, the publish workflow manages the mock server lifecycle automatically.
📖 Documentation
📚 Complete Documentation - Comprehensive guides and references
Documentation source lives in docs-site-v2/ (VitePress). The legacy React site remains in docs-site/.
Quick Links:
- Getting Started - Installation and first-run setup
- AI Interface Setup - Configure Claude Desktop, GitHub Copilot, or Cursor
- Configuration Guide - SFCC credentials and Data API setup
- Available Tools - Complete tool reference
- Examples - Real-world usage patterns
- Troubleshooting - Common issues and solutions
🛠️ Example AI Interactions
🧑💻 "Create a new SFCC controller for product search"
🤖 Generates complete controller with proper imports, route handling, and SFRA patterns
🧑💻 "What's wrong with my checkout flow? Check the logs"
🤖 Analyzes recent error logs, identifies issues, and suggests fixes
🧑💻 "Show me how to implement OCAPI hooks for order validation"
🤖 Retrieves related SFCC classes and methods, then proposes a concrete hook implementation pattern
🔒 Security Notes
- Local Development Focus: Designed for individual developer use on local machines
- Credential Protection: dw.json files should never be committed to version control
- Network Security: All API calls use HTTPS with proper authentication
- No Data Storage: Server doesn't persist any SFCC data locally
🔮 Future Plans
We're continuously improving the SFCC Development MCP Server with exciting new features planned:
🎯 Upcoming Enhancements
- 🧠 Smarter Log Fetching - Enhanced log analysis with intelligent filtering, pattern recognition, and contextual error correlation
- 🚀 Deployment Tools - Integration with SFCC deployment processes and code version management
🤝 We Welcome Your Contributions!
Have ideas for new features or improvements? We'd love to hear from you!
- 💡 Feature Requests: Open an issue to discuss your ideas
- 🐛 Bug Reports: Help us improve by reporting any issues you encounter
- 🔧 Pull Requests: Contribute code, documentation, or examples
- 📚 Documentation: Help expand our guides and best practices
Check out our Contributing Guide to get started, or browse our open issues to see where you can help.
Your expertise and feedback make this tool better for the entire SFCC community!
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🚀 Ready to supercharge your SFCC development with AI?
常见问题
io.github.taurgis/sfcc-dev-mcp 是什么?
为 Salesforce B2C Commerce Cloud 提供开发辅助的 MCP 服务器,支持常见开发与调试场景。
相关 Skills
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
相关 MCP Server
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。