flin-shopify-analytics-mcp
Read-only MCP server for Shopify analytics.
Der Server ist dafür gedacht, Shopify-Shop-Daten in Claude oder anderen MCP-Clients lesend abzufragen, zum Beispiel:
- Welche Kunden haben bestellt?
- Welche Produkte wurden gekauft?
- Wie viele Einheiten wurden gekauft?
- Wie viel Umsatz hat ein Kunde erzeugt?
Was dieser MCP kann
Der Server stellt diese Tools bereit:
-
Basisdaten:
-
shopify_list_orders -
shopify_list_customers -
shopify_list_products -
shopify_customer_purchase_summary -
shopify_sales_by_customer_product -
Reporting Core (
v2, aufmain): -
shopify_sales_overview -
shopify_sales_timeseries -
shopify_top_products -
shopify_top_customers -
shopify_discount_analysis -
Retention / CRM Health (
v3, aufmain): -
shopify_retention_overview -
shopify_repeat_purchase_windows -
shopify_time_to_second_order -
shopify_inactive_customer_summary -
Attribution (
v4, aufmain): -
shopify_attribution_quality_summary -
shopify_sales_by_source -
shopify_sales_by_utm -
shopify_new_customers_by_attribution -
shopify_landing_page_analysis
Write-Operationen sind nicht erlaubt. GraphQL-Mutationen werden blockiert.
Wichtig: Ohne Shopify-App funktioniert dieser MCP nicht
Du brauchst für den Ziel-Shop immer eine installierte Shopify-App mit Admin-API-Rechten.
Je nach App-Typ bekommst du unterschiedliche Credentials:
- Neue Apps ab 2026:
Client ID+Client Secret - Bestehende Legacy-Custom-Apps:
Admin API access token(shpat_...)
Ohne installierte App und passende Scopes kann der MCP keine Orders, Kunden oder Produkte lesen.
Voraussetzungen
- Python 3.10+
uvoderuvx- Zugriff auf den Shopify-Store
- Berechtigung, eine App für den Store zu erstellen und zu installieren
Shopify-App erstellen
Empfohlen: Dev Dashboard App mit Client Credentials
Das ist der richtige Weg für neue Shopify-Apps.
- Öffne den Shopify Dev Dashboard Bereich für deine App.
- Erstelle eine App für den Ziel-Store.
- Konfiguriere die Admin-API-Scopes.
- Release die App-Version mit diesen Scopes.
- Installiere die App auf dem Store.
- Öffne in der App
Settingsund kopiere:Client IDClient secret
Für diesen MCP brauchst du mindestens diese Scopes:
read_productsread_customersread_orders
Optional:
read_all_orders
read_all_orders ist sinnvoll, wenn du nicht nur die normalen Standard-Zeiträume von Shopify auslesen willst.
Für v3 Retention-KPIs ist read_all_orders faktisch empfohlen, weil Wiederkauf- und Inaktivitätskennzahlen sonst auf unvollständiger Historie basieren können.
Für v4 Neukunden-Attribution ist read_all_orders ebenfalls empfohlen, weil der MCP dafür die erste bekannte Bestellung eines Kunden bis dateTo korrekt erkennen muss.
Legacy: Bestehende Custom App im Shopify Admin
Nur für bereits existierende Admin-Custom-Apps.
- Öffne die bestehende Custom App im Shopify Admin.
- Stelle sicher, dass die App installiert ist.
- Prüfe die Admin-API-Scopes.
- Kopiere den
Admin API access token.
Auch hier brauchst du mindestens:
read_productsread_customersread_orders
Welche Credentials du eintragen musst
Option A: Dev Dashboard App
Verwende diese Variablen:
SHOPIFY_STORE_DOMAIN="your-store.myshopify.com"
SHOPIFY_CLIENT_ID="your_client_id"
SHOPIFY_CLIENT_SECRET="your_client_secret"
SHOPIFY_API_VERSION="2026-04"
Der MCP holt das Access Token automatisch über den Client-Credentials-Flow und erneuert es selbst.
Option B: Legacy Custom App
Verwende diese Variablen:
SHOPIFY_STORE_DOMAIN="your-store.myshopify.com"
SHOPIFY_ADMIN_ACCESS_TOKEN="shpat_xxx"
SHOPIFY_API_VERSION="2026-04"
Wenn SHOPIFY_ADMIN_ACCESS_TOKEN gesetzt ist, verwendet der MCP den statischen Token-Modus.
Claude Desktop Konfiguration
Variante 1: Über PyPI mit uvx
Die Beispiele unten sind auf die letzte veröffentlichte PyPI-Version gepinnt. main kann bereits zusätzliche, noch nicht veröffentlichte Tools enthalten.
{
"mcpServers": {
"flin-shopify-analytics-mcp": {
"command": "uvx",
"args": [
"--refresh",
"-q",
"flin-shopify-analytics-mcp@0.3.0"
],
"env": {
"SHOPIFY_STORE_DOMAIN": "your-store.myshopify.com",
"SHOPIFY_CLIENT_ID": "your_client_id",
"SHOPIFY_CLIENT_SECRET": "your_client_secret",
"SHOPIFY_API_VERSION": "2026-04"
}
}
}
}
Variante 2: Lokal aus dem Repo
Das ist die stabilste Variante für Entwicklung und Debugging.
{
"mcpServers": {
"flin-shopify-analytics-mcp": {
"command": "uv",
"args": [
"run",
"--quiet",
"--directory",
"/Users/nicolasg/Antigravity/flin-shopify-analytics-mcp",
"flin-shopify-analytics-mcp"
],
"env": {
"SHOPIFY_STORE_DOMAIN": "your-store.myshopify.com",
"SHOPIFY_CLIENT_ID": "your_client_id",
"SHOPIFY_CLIENT_SECRET": "your_client_secret",
"SHOPIFY_API_VERSION": "2026-04"
}
}
}
}
Lokaler Start ohne Claude
Mit Client ID / Client Secret
uvx --refresh -q flin-shopify-analytics-mcp@0.3.0 \
--domain your-store.myshopify.com \
--clientId your_client_id \
--clientSecret your_client_secret \
--apiVersion 2026-04
Mit statischem Admin-Token
uvx --refresh -q flin-shopify-analytics-mcp@0.3.0 \
--domain your-store.myshopify.com \
--accessToken shpat_xxx \
--apiVersion 2026-04
TLS / SSL
Der MCP verwendet standardmäßig das certifi-CA-Bundle.
Falls deine Umgebung einen Firmen-Proxy oder eigene Root-Zertifikate benutzt, kannst du zusätzlich setzen:
SHOPIFY_CA_BUNDLE="/path/to/ca-bundle.pem"
Alternativ funktioniert auch:
SSL_CERT_FILE="/path/to/ca-bundle.pem"
Troubleshooting
Attribution-Daten sind leer oder unvollständig
Die v4 Attribution-Tools basieren auf Shopify-Order-Attribution und Customer Journey Daten.
Wichtig:
- Shopify-Attribution ist nicht für jede Order vollständig vorhanden.
shopify_attribution_quality_summaryzeigt dir zuerst, wie viele Orders überhaupt Source-, Landing-Page- oder UTM-Daten haben.shopify_sales_by_sourceundshopify_sales_by_utmreporten fehlende Daten bewusst alsunattributedoder<none>, statt Werte zu raten.shopify_new_customers_by_attributionundshopify_landing_page_analysismitnewCustomerssind am belastbarsten, wenn die Appread_all_ordershat.
SSL: CERTIFICATE_VERIFY_FAILED
Dann kann die Python-Umgebung die Zertifikatskette nicht verifizieren.
Prüfe in dieser Reihenfolge:
- Ob du auf
0.3.0oder neuer bist - Ob ein Firmen-Proxy oder eigenes Root-CA im Spiel ist
- Ob
SHOPIFY_CA_BUNDLEoderSSL_CERT_FILEgesetzt werden muss
no version of flin-shopify-analytics-mcp == ...
Dann hängt uvx meistens noch auf einem alten Index-Stand.
Hilfreich:
uv cache clean flin-shopify-analytics-mcp
Und in der Claude-Konfiguration:
"args": ["--refresh", "-q", "flin-shopify-analytics-mcp@0.3.0"]
Entwicklung
Tests:
python -m unittest discover -s py_tests -v
Build:
uv build
Release
- Version in
pyproject.toml,flin_shopify_analytics_mcp/__init__.pyundflin_shopify_analytics_mcp/mcp_server.pyanheben - Commit erstellen
- Tag
vX.Y.Zpushen - GitHub Actions Workflow
.github/workflows/release.ymlveröffentlicht auf PyPI
Offizielle Shopify-Doku
- Dev Dashboard App und Client Credentials: https://shopify.dev/docs/apps/build/dev-dashboard/get-api-access-tokens
- Legacy Custom Apps im Shopify Admin: https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin
Metadata
Release files for flin-shopify-analytics-mcp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flin_shopify_analytics_mcp-0.3.0.tar.gz | 45.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.1 kB
Release files / flin_shopify_analytics_mcp-0.3.0.tar.gz
| Download URL | flin_shopify_analytics_mcp-0.3.0.tar.gz |
|---|---|
| Size | 45.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de49e290078812c50179541ed5ebf7244c691fe5318836b3146256732fe7dbaa
|
|
BLAKE2b-256 checksum How to use checksums |
3059f3952de69e48f627606232ce7bc731d00b2eb7d47af7d9758d41619ac690
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 11, 2026.
Transparency logRelease files / flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl
| Download URL | flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 24.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b2db9f0e679cad69846a364fbdd33d30aa21a73aa0d4ab0f934037575de5cf8
|
|
BLAKE2b-256 checksum How to use checksums |
f7e5cd5d2bf3c91c03d5dd2de11d97bf02fc7ea99d338f5c351b292434d16bd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 11, 2026.
Transparency log