Skip to content
pcreative Commerce

Let ChatGPT and Claude sell your products

The store can speak the language of AI agents (the MCP protocol).

The store can speak the language of AI agents (the MCP protocol). With it, Claude, ChatGPT or Perplexity can search your catalogue and recommend specific products, with their real price and stock.

The buy link always points at your site. You win the channel without giving up the checkout or paying anyone a cut per sale. That is the whole idea.

It is off until you switch it on

A fresh store does not answer agents. /mcp is a public address that anyone can call, and a search by meaning costs a little money, so it only opens when you decide to.

To switch it on:

  1. Put at least one AI provider key in the backend .env and restart (the same keys as in AI → Connectors: ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY, VOYAGE_API_KEY or COHERE_API_KEY).
  2. In the panel, go to AI → Agents and turn on Let AI agents read the catalogue.

Without any key the switch stays greyed out, and the backend refuses it too («It cannot be switched on without an AI provider key»). The setting is saved in the store settings (store.metadata.mcp.activo), not in the .env.

Also make sure you have set where to send people to buy:

STOREFRONT_URL=https://mystore.com
STOREFRONT_RUTA_PRODUCTO=producto     # /producto/<handle>

If your theme uses a different path, change it or the links will 404.

Connecting it

Once it is on, AI → Agents shows the address to give the agent. It is the backend's /mcp, for example https://mystore.com/mcp. In Claude Desktop, in the MCP server configuration:

{
  "mcpServers": {
    "my-store": {
      "url": "https://mystore.com/mcp"
    }
  }
}

Each agent is configured its own way, but they all ask for the same thing: that address.

What an agent can do

Three things, and none of them touches anything:

ToolFor
buscar_productosSearch the catalogue for whatever the customer asks
ver_productoThe full record of one: price, stock, description
informacion_tiendaName, currency, shipping zones and how to buy

Read-only. An agent cannot create orders, or see customers, or touch prices. The only thing that leaves here is the catalogue that is already public on your site.

Prices

Each variant carries precio: { "amount": 19.99, "currency": "eur" }: the same shape as the rest of the public API. amount is a decimal in major units (19.99, not 1999) and currency is your store's default currency in ISO 4217, lower case. A store that sells in dollars answers in dollars. A variant with no price in that currency comes with precio: null.

Limits and spend

  • Per address. Each IP can send 30 messages a minute (each message inside a batch counts, and a batch holds at most 20). Past that it answers 429. You can change the number with PCC_MCP_POR_MINUTO in the backend .env.
  • The AI daily cap. A search by meaning turns the question into a vector, and that costs money. It is logged under AI → Spend as Search and adds to the store's daily cap. Once the cap is passed, agents keep getting answers, searched by keyword only.

When it is off

/mcp answers 403 and runs no tool:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32001,
    "message": "This store's AI agent server is switched off. …",
    "data": { "motivo": "desactivado" }
  }
}

motivo is desactivado (switched off in the panel) or sin_claves (there is no AI key in the .env, so it cannot be on). The message comes in the language the agent asks for with Accept-Language (English or Spanish).

Sessionless, on purpose

The protocol allows keeping a session between requests. Here each one stands on its own, and no login is needed.

Storing sessions would force you to clean them up, to share them between processes if there is more than one, and to decide what happens when they are lost — a whole layer of complexity for something that only reads a public catalogue.

Checking it works

curl -X POST https://mystore.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

It should answer with the three tools. A 403 means it is off (look at motivo). A 404 means the route is not published in your proxy: /mcp has to reach the backend.

Worth keeping in mind

An agent recommends what it understands. If your product pages say "Model XR-200" and nothing more, no agent will know what it is for.

That is where the AI that writes product copy pays for itself: not for writing nicely, but because a page that explains what problem the product solves is one an agent can recommend.