---
title: Shopify
description: Search products and manage carts and checkouts on a Shopify storefront.
type: connection
keywords:
  - mcp
  - ucp
  - commerce
  - products
  - carts
  - checkouts
---

# Shopify

Connection integration for eve. Search products and manage carts and checkouts on a Shopify storefront.

## Install

Add the connection from eve's registry. This writes the initial definition under `agent/connections/` and installs its authentication dependency when needed:

```bash
eve add connection/shopify
```

## Quick start

Create `agent/connections/shopify.ts`:

```ts
import { defineMcpClientConnection } from "eve/connections";

const SHOPIFY_EXAMPLE_PROFILE =
  "https://shopify.dev/ucp/agent-profiles/examples/2026-04-08/valid-with-capabilities.json";

// Shopify cannot reach localhost. Use its public profile, or expose this route with a tool like ngrok.
function agentProfileUrl(): string {
  if (process.env.EVE_DEV === "1") return SHOPIFY_EXAMPLE_PROFILE;

  return `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}/.well-known/ucp`;
}

export default defineMcpClientConnection({
  url: `https://${process.env.SHOPIFY_STORE_DOMAIN!}/api/ucp/mcp`,
  description: "Search products and build carts and checkouts on a Shopify storefront.",
  toolCall: {
    providedArguments: {
      meta: ({ callId, session, toolName }) => ({
        "ucp-agent": {
          profile: agentProfileUrl(),
        },

        // Include callId so sibling calls are unique while durable replays reuse the same key.
        ...(["cancel_cart", "complete_checkout", "cancel_checkout"].includes(toolName)
          ? {
              "idempotency-key": `${session.id}:${session.turn.id}:${toolName}:${callId}`,
            }
          : {}),
      }),
    },
  },
});
```

## Configure

Set your Shopify storefront domain:

```bash
SHOPIFY_STORE_DOMAIN=your-store.myshopify.com
```

During local development, the connection uses Shopify's public example because Shopify cannot reach localhost. To test your profile locally, expose `/.well-known/ucp` with [ngrok](https://ngrok.com/). In production, the connection uses the anonymous profile at `/.well-known/ucp`.

See Shopify's [agent profile documentation](https://shopify.dev/docs/agents/profiles) for profile requirements.

[Read the full connection documentation](https://shopify.dev/docs/apps/build/storefront-mcp)

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)