ECommerce Server
БесплатноНе проверенEnables querying ecommerce data (customers, products, orders, reviews) using natural language via Cortex Analyst and Cortex Search, with SQL execution capabilit
Описание
Enables querying ecommerce data (customers, products, orders, reviews) using natural language via Cortex Analyst and Cortex Search, with SQL execution capability, all exposed as MCP tools.
README
End-to-end demo: Iceberg tables federated to DuckDB via Horizon Catalog, Cortex AI stack (Analyst, Search, Agent), and MCP Server exposed externally.
Architecture
┌─────────────────────────── Snowflake ───────────────────────────┐
│ │
│ Iceberg Tables (v2) Cortex AI │
│ ┌──────────────────┐ ┌─────────────────────────────┐ │
│ │ CUSTOMERS │───────▶│ Semantic View (Analyst) │ │
│ │ PRODUCTS │ │ Cortex Search (Reviews) │ │
│ │ ORDERS │ │ Cortex Agent │ │
│ └────────┬─────────┘ └──────────────┬──────────────┘ │
│ │ │ │
│ │ S3 (Parquet) │ MCP Server │
│ │ │ │
├───────────┼──────────────────────────────────┼───────────────────┤
│ Horizon REST Catalog │ │
│ (OAuth2 + vended credentials) │ (PAT / OAuth2) │
└───────────┼──────────────────────────────────┼───────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌───────────────────────┐
│ DuckDB │ │ External Clients │
│ (read + write) │ │ Claude · Cursor · │
│ │ │ Python · curl │
└─────────────────┘ └───────────────────────┘
Demo Steps
Part A: Iceberg + DuckDB Federation
Step 1: Run setup_snowflake.sql in Snowsight
Creates database, Iceberg tables, sample data, service user, and PAT. Save the PAT token from the output.
Step 2: Set Up Python
python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
Step 3: Export PAT
export HORIZON_PAT="<paste PAT from Step 1 output>"
All scripts read from this environment variable — set it once per terminal session.
Step 4: Run DuckDB Demo
python3 step1_connect.py # Connect DuckDB to Horizon
python3 step2_read.py # Read Iceberg tables
python3 step3_write.py # Write new rows from DuckDB
python3 step4_verify.py # Verify round-trip
Step 5: Verify from Snowflake
SELECT * FROM ICEBERG_DUCKDB_DEMO.PUBLIC.CUSTOMERS WHERE customer_id = 200;
Part B: Cortex AI Stack
Step 5: Run setup_cortex.sql in Snowsight
Creates Semantic View, Cortex Search, Agent, and MCP Server.
Step 6: Test in Snowsight
Go to AI & ML > Agents > ECOMMERCE_AGENT and ask:
- "What is the total revenue?"
- "Which city has the most customers?"
- "What do customers say about the mechanical keyboard?"
Part C: MCP Server (External Access)
Step 7: Run Python MCP Client
python3 mcp_client.py
This discovers tools, then enters interactive mode where you ask questions and get answers via Cortex Analyst + SQL execution.
Step 8: Test via curl
export MCP_URL="https://<ORG>-<ACCOUNT>.snowflakecomputing.com/api/v2/databases/ICEBERG_DUCKDB_DEMO/schemas/PUBLIC/mcp-servers/ECOMMERCE_MCP_SERVER"
export PAT="<YOUR_PAT>"
# Discover tools
curl -s -X POST "$MCP_URL" \
-H "Authorization: Bearer $PAT" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | python3 -m json.tool
# Ask a question (Cortex Analyst)
curl -s -X POST "$MCP_URL" \
-H "Authorization: Bearer $PAT" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ecommerce-analytics","arguments":{"message":"What is the total revenue?"}}}' | python3 -m json.tool
# Execute the SQL
curl -s -X POST "$MCP_URL" \
-H "Authorization: Bearer $PAT" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"run-sql","arguments":{"sql":"SELECT * FROM SEMANTIC_VIEW(ICEBERG_DUCKDB_DEMO.PUBLIC.ECOMMERCE_ANALYTICS_SV METRICS total_revenue)"}}}' | python3 -m json.tool
# Search reviews
curl -s -X POST "$MCP_URL" \
-H "Authorization: Bearer $PAT" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"product-reviews-search","arguments":{"query":"keyboard typing experience","limit":3}}}' | python3 -m json.tool
Step 9: Connect Claude.ai (optional)
- Settings > Connectors > Add custom connector
- URL:
https://<ORG>-<ACCOUNT>.snowflakecomputing.com/api/v2/databases/ICEBERG_DUCKDB_DEMO/schemas/PUBLIC/mcp-servers/ECOMMERCE_MCP_SERVER - Authentication: Bearer token using your PAT
Key Notes
- DuckDB ATTACH requires:
DISABLE_MULTI_TABLE_COMMIT true,SKIP_CREATE_TABLE_METADATA_UPDATES true,REMOVE_FILES_ON_DELETE false CORTEX_AGENT_RUNtool type does not work with external MCP clients — use Analyst + Search + SQL individually- Service user needs
DEFAULT_WAREHOUSEset forSYSTEM_EXECUTE_SQLtool - PAT expires in 30 days — regenerate if needed
Files
| File | Purpose |
|---|---|
setup_snowflake.sql |
Database, Iceberg tables, data, service user, PAT |
setup_cortex.sql |
Semantic View, Search, Agent, MCP Server |
step1_connect.py |
DuckDB: Connect to Horizon |
step2_read.py |
DuckDB: Read Iceberg tables |
step3_write.py |
DuckDB: Write to Iceberg |
step4_verify.py |
DuckDB: Verify round-trip |
mcp_client.py |
Python MCP client (external access demo) |
requirements.txt |
Python dependencies |
from github.com/curious-bigcat/snowflake-iceberg-duckdb-cortex-demo
Установка ECommerce Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/curious-bigcat/snowflake-iceberg-duckdb-cortex-demoFAQ
ECommerce Server MCP бесплатный?
Да, ECommerce Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для ECommerce Server?
Нет, ECommerce Server работает без API-ключей и переменных окружения.
ECommerce Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить ECommerce Server в Claude Desktop, Claude Code или Cursor?
Открой ECommerce Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolCompare ECommerce Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
