Read-only MCP server for Shopify analytics with client credentials or static token auth.
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flin_shopify_analytics_mcp-0.3.0.tar.gz.
File metadata
- Download URL: flin_shopify_analytics_mcp-0.3.0.tar.gz
- Upload date:
- Size: 45.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de49e290078812c50179541ed5ebf7244c691fe5318836b3146256732fe7dbaa
|
|
| MD5 |
3475d4611baee0d43e466df8585b1d6c
|
|
| BLAKE2b-256 |
3059f3952de69e48f627606232ce7bc731d00b2eb7d47af7d9758d41619ac690
|
Provenance
The following attestation bundles were made for flin_shopify_analytics_mcp-0.3.0.tar.gz:
Publisher:
release.yml on flin-agency/flin-shopify-analytics-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flin_shopify_analytics_mcp-0.3.0.tar.gz -
Subject digest:
de49e290078812c50179541ed5ebf7244c691fe5318836b3146256732fe7dbaa - Sigstore transparency entry: 1279671363
- Sigstore integration time:
-
Permalink:
flin-agency/flin-shopify-analytics-mcp@ee69b22f3f3e497fd1115db050ec69142caad1bf -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/flin-agency
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ee69b22f3f3e497fd1115db050ec69142caad1bf -
Trigger Event:
push
-
Statement type:
File details
Details for the file flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b2db9f0e679cad69846a364fbdd33d30aa21a73aa0d4ab0f934037575de5cf8
|
|
| MD5 |
33ade619231e5a37cbdf5aa0f49f7a5f
|
|
| BLAKE2b-256 |
f7e5cd5d2bf3c91c03d5dd2de11d97bf02fc7ea99d338f5c351b292434d16bd8
|
Provenance
The following attestation bundles were made for flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl:
Publisher:
release.yml on flin-agency/flin-shopify-analytics-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flin_shopify_analytics_mcp-0.3.0-py3-none-any.whl -
Subject digest:
3b2db9f0e679cad69846a364fbdd33d30aa21a73aa0d4ab0f934037575de5cf8 - Sigstore transparency entry: 1279671371
- Sigstore integration time:
-
Permalink:
flin-agency/flin-shopify-analytics-mcp@ee69b22f3f3e497fd1115db050ec69142caad1bf -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/flin-agency
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ee69b22f3f3e497fd1115db050ec69142caad1bf -
Trigger Event:
push
-
Statement type: