Shopigent — Privacy Policy
Last updated: 2026-10-24 | Controller: Greek Nous | Contact: shopigent@greeknous.com
1. What Shopigent is
Shopigent is an MCP server and a Shopify app. Merchants connect an MCP client (for example Hermes, Claude, Cursor, OpenAI Codex, or xAI Grok) to it. It exposes a curated set of read and write operations ("tools") over the Shopify Admin API, gated by the merchant's chosen plan and the scopes they grant at install time.
2. Data we access
At install, the merchant authorizes Shopify OAuth scopes. Shopigent only accesses data required by the tools the merchant enables. Possible scope categories include products, orders, customers, discounts, inventory, fulfillments, online store content, translations, and custom data. Shopigent does not request direct Shopify Theme API scopes and does not directly read, modify, duplicate, or publish Shopify themes. We access store data only to fulfill a tool call the merchant (or their agent, on their behalf) explicitly triggers.
We do not access: payment instrument numbers, passwords, or any data outside the authorized Shopify scopes.
3. Data we store
- Shop connection metadata (store domain, granted scopes, current plan).
- API key hashes — we store a SHA-256 hash of the MCP API key. The hash is not salted. The plaintext key is shown once at creation and never stored.
- Tool-call audit logs — for every tool call we record: shop, tool key, operation type, input arguments, result status, and latency.
- Plan / billing events — subscription status and Shopify charge IDs (received via Shopify webhooks), not card numbers.
- GitHub connection (optional) — repository owner, name, branch, and either an encrypted Shopigent Connector installation marker or the merchant's encrypted fine-grained PAT. Tokens are never returned after saving.
4. Data we share
We do not sell or share merchant data with third parties except:
- with Shopify, necessarily, to perform the requested operations;
- with the merchant's chosen AI client (e.g. OpenAI Codex, Anthropic Claude, xAI Grok), only the data needed to answer the specific request they made;
- with GitHub (optional), when a stored GitHub App installation is already on the shop, or when the merchant supplies a fine-grained PAT. A new store cannot start a GitHub App connection on the Theme Pull Requests page, and the
/auth/githubcallback does not save a first installation. That page tells the merchant to use a repository-scoped personal access token. If the GitHub App is not configured, the page says so and the token form remains. Shopigent reads explicitly requested repository files. A dry-run returns a preview and does not open a pull request. A live call requires confirmation, then can create a branch, commits, and a pull request containing declared changes to valid theme files such as locale JSON, JSON templates, Liquid sections/snippets/blocks, assets, andconfig/settings_data.json. Shopigent never merges, deploys, publishes, or directly edits Shopify theme code through the Admin Theme API. The merchant reviews and merges the PR. Shopify's native GitHub integration then synchronizes the connected branch to the merchant-selected theme; reviewer demonstrations use an unpublished theme so the live storefront remains unchanged. General product, page, collection, article, and metaobject translations remain Shopify Translations API operations.
5. Data retention
Audit logs and connection metadata are kept while the shop row exists. app/uninstalled deletes session rows and clears the MCP API key hash. It does not delete the shop row. shop/redact, which Shopify sends about 48 hours after uninstall, deletes the shop row and the records that cascade from it. customers/redact redacts matching audit payloads for the customer id in the webhook. It does not delete the whole shop.
6. Security
MCP API keys are hashed (never stored in plaintext). GitHub connection tokens (PATs and installation markers) are encrypted at rest with AES-256-GCM before they are written to the database and are never returned by any API or tool response. All Admin API calls use the store's OAuth access token, transmitted only to Shopify over TLS. The high-risk writes carry an explicit confirmation step: the tool returns a signed, single-use, time-limited confirmation_pending result. The human approves in their AI client and the agent re-calls the tool with the signed confirmation token before anything executes, or approves or declines the same pending token on the Confirmations page. Approve on that page asks the MCP server to run the same check. Decline uses the token and does not run the tool. The page does not show the token. Confirmation is on by default for destructive tools. It can never be turned off for publishing a product to a sales channel, changing a variant's shipping weight, uploading product media, or creating a theme pull request. For every other tool the merchant can disable it per store. Translation writes go through the same gate when it is enabled.
7. Your rights
Merchants may request deletion of their data via shopigent@greeknous.com. Uninstalling the app follows the webhook behavior in section 5. Uninstall alone does not delete the shop row.
8. Changes
Material changes to this policy will be communicated via the support email.