Shopify Global Catalog MCP Adapter
# Shopify Global Catalog MCP Adapter
This Python service exposes a legacy SSE MCP endpoint that XiaoYi can register as a plugin. It translates the `search_catalog` call into Shopify's Streamable HTTP MCP request and always supplies Shopify's required UCP agent profile.
## MCP endpoint
When deployed with `MCP_TRANSPORT=sse`, the MCP SDK exposes its legacy SSE endpoint at:
```text
/sse
```
Register that full URL in XiaoYi, not Shopify's original endpoint.
## Local setup
```bash
cd /Users/hanlufeng/Desktop/AI-INSIGHT-REPORT/Ceilia/shopify-global-catalog-mcp-adapter
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
pytest
```
## Run locally
For a local command-line MCP client:
```bash
python -m shopify_global_catalog_mcp_adapter.server
```
For SSE HTTP mode:
```bash
MCP_TRANSPORT=sse PORT=8080 python -m shopify_global_catalog_mcp_adapter.server
```
## Deploy to Cloud Run
Create a Cloud Run service from this directory using Buildpacks. Set the entrypoint to:
```text
python -m shopify_global_catalog_mcp_adapter.server
```
Set environment variable:
```text
MCP_TRANSPORT=sse
```
After deployment, use:
```text
https://YOUR-CLOUD-RUN-DOMAIN/sse
```
in XiaoYi's MCP plugin configuration. The plugin should then load the `search_catalog` tool.
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion between tools. The search_catalog tool has a clear, singular purpose.
With a single tool, the naming follows a consistent and predictable verb_noun pattern (search_catalog). No conflicting conventions exist.
The server exposes only one tool, which feels too few for an 'adapter' covering a global catalog. A search-only tool may be useful but the surface is extremely thin and lacks supporting operations.
For a search-oriented endpoint, the tool covers core search needs with filters for country, currency, language, price, and availability. However, it lacks product detail retrieval or other catalog operations, making it slightly incomplete relative to the server's broader adapter naming.