title | emoji | colorFrom | colorTo | sdk | sdk_version | app_file | pinned | license | tags | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Enneagora - E-commerce MCP Server |
ποΈ |
blue |
purple |
gradio |
5.33.0 |
main.py |
true |
mit |
|
Enneagora is a Universal E-commerce Customer Support Assistant using the Model Context Protocol (MCP) that provides a platform-agnostic solution for customer support across different e-commerce platforms. This comprehensive MCP server can be integrated with Claude Desktop or any MCP-compatible client to handle all aspects of customer inquiries.
- MCP-Compliant: Dual MCP server implementation using both Gradio and FastMCP with SSE and STDIO transports
- 14 Comprehensive Customer Support Tools:
- Order Management:
get_order_status
,cancel_order
,process_return
,track_package
- Support Information:
get_support_info
,get_return_policy
,get_shipping_info
,get_contact_information
- Product Guidance:
get_size_guide
,get_warranty_information
,get_product_care_info
- Account & Payment:
get_payment_information
,get_account_help
,get_loyalty_program_info
- Order Management:
- Platform Agnostic: Strategy pattern for easy integration with any e-commerce platform
- Dynamic Mock Data: Intelligent test data system with pattern-based order behavior
- Dual Implementation Support: Gradio MCP server for web deployment, FastMCP for Claude Desktop STDIO integration
- Production Ready: CI/CD pipeline with automated deployment to Hugging Face Spaces
- Python 3.10 or higher
- pip package manager
- (Optional) Hugging Face account for deployment
- Clone the repository:
git clone https://github.com/slavpilus/mcp.git
cd mcp
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
Use the hosted Gradio MCP server on Hugging Face Spaces:
Gradio MCP Endpoint: https://huggingface.co/spaces/SlavPilus/mpc-for-commerce-platforms
Advantages:
- Native Gradio MCP server implementation with
mcp_server=True
- No local setup required
- Always up-to-date with latest features
- Perfect for MCP-compatible clients and integrations
- Seamless Hugging Face Spaces deployment
python main.py
The Gradio MCP server starts on http://localhost:7860
with MCP SSE endpoint at http://localhost:7860/gradio_api/mcp/sse
.
Step 1: Configure Claude Desktop
macOS: Edit ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: Edit %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"enneagora": {
"command": "python",
"args": ["/full/absolute/path/to/mcp/main_stdio.py"],
"env": {}
}
}
}
- Use the full absolute path to
main_stdio.py
- Ensure your Python environment has all dependencies installed
- Restart Claude Desktop after configuration changes
Step 2: Test Configuration
You can test the STDIO version manually:
python main_stdio.py
- get_order_status - Get detailed order status and tracking information
- cancel_order - Cancel orders with validation checks
- process_return - Handle return requests with prepaid labels
- track_package - Track package delivery with real-time updates
- get_support_info - General support information and guidance
- get_return_policy - Detailed return policies by product category
- get_shipping_info - Shipping rates, delivery times, and international options
- get_contact_information - Contact details by issue type and urgency
- get_size_guide - Size charts for clothing, shoes, and accessories
- get_warranty_information - Warranty coverage and claims processing
- get_product_care_info - Care instructions and maintenance guidance
- get_payment_information - Payment methods, billing help, and troubleshooting
- get_account_help - Account troubleshooting and login assistance
- get_loyalty_program_info - Rewards program details and member benefits
Enneagora features an intelligent mock data system where order behavior is determined by ID patterns:
ORD-XXXX-D
- Delivered orders (e.g., ORD-1001-D)ORD-XXXX-S
- Shipped orders with tracking (e.g., ORD-1002-S)ORD-XXXX-T
- In Transit with location updates (e.g., ORD-1003-T)ORD-XXXX-P
- Processing orders (e.g., ORD-1004-P)ORD-XXXX-R
- Ready for Pickup (e.g., ORD-1005-R)ORD-XXXX-C
- Cancelled orders (e.g., ORD-1006-C)ORD-XXXX-F
- Failed/Problem orders (e.g., ORD-1007-F)ORD-XXXX-E
- Error/Not Found (e.g., ORD-1008-E)ORD-XXXX
- Pending orders (no suffix, e.g., ORD-1009)
Once connected to Claude Desktop or an MCP client, you can use natural language:
Order Management:
- "Check the status of order ORD-1001-S"
- "Cancel order ORD-1004-P because I found a better price"
- "I want to return my order ORD-1002-D, it didn't fit properly"
Product Information:
- "What's your return policy for electronics?"
- "How much does shipping cost to Canada for a $45 order?"
- "What's the size guide for men's shirts?"
- "Is my laptop still under warranty? I bought it on 2023-06-15"
Account & Payment:
- "My credit card was declined, what should I do?"
- "I forgot my password, how can I reset it?"
- "How does your loyalty program work?"
Product Care:
- "How do I care for my silk dress?"
- "What's the best way to clean leather shoes?"
βββββββββββββββββββββββββββββββββββββββ
β MCP Clients β
β (Claude Desktop, Web Clients) β
ββββββββββββββββ¬βββββββββββββββββββββββ
β MCP Protocol Transport
ββββββββββββββββΌβββββββββββββββββββββββ
β Dual MCP Implementation β
β β’ main.py (Gradio MCP Server) β
β β’ main_stdio.py (FastMCP STDIO) β
βββββββββββββββββββββββββββββββββββββββ€
β 14 MCP Tools: β
β β’ Order Management (4 tools) β
β β’ Information & Support (4 tools) β
β β’ Product & Service (3 tools) β
β β’ Account & Payment (3 tools) β
βββββββββββββββββββββββββββββββββββββββ€
β E-commerce Strategy Layer β
β β’ Mock Strategy (Demo/Testing) β
β β’ Shopify Strategy (Future) β
β β’ Magento Strategy (Future) β
β β’ WooCommerce Strategy (Future) β
βββββββββββββββββββββββββββββββββββββββ
The server is deployed and accessible at:
- Web UI: https://huggingface.co/spaces/SlavPilus/mpc-for-commerce-platforms
- SSE Endpoint: https://huggingface.co/spaces/SlavPilus/mpc-for-commerce-platforms/sse
# Build Docker image
docker build -t enneagora .
# Run container
docker run -p 7860:7860 enneagora
- Fork this repository
- Set up GitHub secrets:
HF_TOKEN
: Your Hugging Face tokenHF_USERNAME
: Your Hugging Face usernameHF_SPACE_NAME
: Name for your Space
- Push to main branch to trigger deployment
# Install dev dependencies
pip install -r requirements-dev.txt
# Run tests with coverage
pytest --cov=mcp_server --cov=main
# Run linting and formatting
pre-commit run --all-files
mcp/
βββ main.py # Gradio MCP server (mcp_server=True)
βββ app.py # MCP tools for Gradio registration
βββ main_stdio.py # FastMCP server (STDIO transport for Claude Desktop)
βββ mcp_server/ # Core server implementation
β βββ server.py # Main server logic
β βββ mcp_tools.py # All 14 MCP tool definitions
β βββ strategies/ # E-commerce platform strategies
β βββ base.py # Base strategy interface
β βββ mock_strategy.py # Mock data strategy
βββ tests/ # Comprehensive test suite
β βββ unit/ # Unit tests (96%+ coverage)
β βββ integration/ # Integration tests
βββ static/ # Web UI assets
β βββ index.html # Server info and documentation page
βββ requirements.txt # Python dependencies
βββ requirements-dev.txt # Development dependencies
βββ pyproject.toml # Project configuration
Currently uses mock data for demonstration. In production, configure:
ECOMMERCE_PLATFORM
: Platform to use (e.g., "shopify", "magento")- Platform-specific credentials (API keys, endpoints, etc.)
- Create a new strategy in
mcp_server/strategies/
:
from .base import EcommerceStrategy
class ShopifyStrategy(EcommerceStrategy):
async def get_order(self, order_id: str):
# Implement Shopify API integration
pass
- Register the strategy in your configuration
- Configure credentials and endpoints
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
-
Claude Desktop doesn't see the tools
- Verify the configuration file path and syntax
- Ensure you're using the full absolute path to
main_stdio.py
- Check that Python environment has all dependencies
- Restart Claude Desktop after configuration changes
-
Server connection issues
- Ensure the server is running on the correct port
- Check firewall settings for local development
- Verify the SSE endpoint is accessible
-
Import errors or missing dependencies
- Activate your virtual environment
- Run
pip install -r requirements.txt
- Ensure Python 3.10+ is installed
Test your local setup:
# Test STDIO version
python main_stdio.py
# Test SSE version
python main.py
# Then visit http://localhost:7860
- Project Repository: https://github.com/slavpilus/mcp
- MCP Documentation: Model Context Protocol
- FastMCP Documentation: FastMCP GitHub
- Hugging Face Spaces: HF Spaces Documentation
Enneagora was built to demonstrate the power of Model Context Protocol for creating comprehensive AI-powered customer support systems as part of the Hugging Face MCP Hackathon. It showcases how MCP can bridge the gap between AI assistants and real-world e-commerce operations.
Key Features Demonstrated:
- Comprehensive tool ecosystem (14 interconnected tools)
- Dynamic mock data with intelligent behavior patterns
- Multi-transport support (SSE + STDIO)
- Production-ready deployment and CI/CD
- Type-safe implementation with 96%+ test coverage