Connect an AI Agent (MCP)

Manage your product feeds from claude.ai, Claude Code, Codex, or Cursor — connect the Simple Product Feeds MCP server in under two minutes (one-click on claude.ai, or an API key on the CLI).

Simple Product Feeds ships a hosted MCP (Model Context Protocol) server, so any MCP-capable agent — claude.ai, Claude Code, Codex, Cursor, and others — can inspect, explain, and fix your feeds by talking to it in plain language.

Endpoint: https://app.simpleproductfeeds.com/v1/mcp Auth: one-click OAuth on claude.ai (no key to manage), or your API key as a Bearer token for Claude Code / Codex / Cursor (create one in the app under Settings → API keys).

The tools cover the full loop — inspect, explain, fix, publish, verify:

ToolWhat it does
spf_list_feedsList your feeds with type, product count, run status, and feed URL.
spf_feed_healthOne-call health digest: run status, included/excluded scope counts, and per-channel validation errors and warnings.
spf_feed_findingsDrill into validation problems: issue categories with affected fields, counts, and sample rows with Shopify admin links.
spf_feed_productsBrowse the transformed feed rows themselves — searchable, paginated, with exclusion verdicts.
spf_debug_rowExplain why any product row came out the way it did — transformed output and rule-attributed exclusion reasons, optionally rendered per channel.
spf_channel_statusChannel connections at a glance, with recent sync logs per channel.
spf_preview_ruleDry-run a rule before applying: field-level before/after diffs on sample products, plus a preview token.
spf_apply_ruleCreate or update a rule (requires the preview token — agents must show you the diff first), or activate/deactivate one.
spf_set_overridesOverride product values in the feed (title, brand, condition, exclusion, custom labels…) without touching Shopify.
spf_restore_overridesThe undo: restore products to their original Shopify values.
spf_run_feedPublish changes (regenerate from the existing snapshot) and poll the run to completion.
spf_update_mappingsRemap which Shopify column feeds each feed column. Overrides overlay the defaults; setting a value to null restores the default — every remap is undoable.
spf_sync_channelTrigger a channel sync — SFTP upload for Commission Junction, a fetch-now request for Google Merchant Center — and watch it via the sync logs.
spf_set_cellsEdit individual source cells on any product row — the same cells the in-app spreadsheet edits. Null restores the original; preview mode dry-runs the row first.
spf_set_margin_tiersAssign each product a margin tier written to a custom label — by product category (no cost data needed) or by computed margin band — for per-margin bidding in Google Shopping.

Writing changes is preview-first by design. An agent cannot create or modify a rule without first previewing it — the apply call requires a signed token proving the exact rule text was previewed. Overrides and mappings are typed, validated, and undoable, and validation counts recompute automatically after writes. Every agent mutation is recorded in a per-shop audit trail: which tool, which API key, what arguments, when.

claude.ai (web) — one click, no key

On claude.ai, add Simple Product Feeds as a custom connector — there’s no API key to create or manage:

  1. In claude.ai, add a custom connector with the MCP URL: https://app.simpleproductfeeds.com/v1/mcp
  2. Click Connect, sign in to Simple Product Feeds, choose the store to connect, and pick read-only or read & write.

That’s it — Claude can now inspect and fix that store’s feeds in plain language. Revoke the connection anytime in the app under Settings → AI Agents → Connected apps.

The CLI clients below (Claude Code, Codex, Cursor) authenticate with an API key instead.

Claude Code

Fastest path — the plugin (MCP connection + the feed-ops skill: proven workflows and feed domain knowledge, loaded on demand):

/plugin marketplace add simpleproductfeeds/skills
/plugin install simple-product-feeds@simpleproductfeeds

Set SPF_API_KEY in your environment and you’re connected. Update later with /plugin marketplace update simpleproductfeeds. The skill’s source (and a plain-skills install path) lives at github.com/simpleproductfeeds/skills.

Or connect just the MCP server:

claude mcp add --transport http simple-product-feeds \
  https://app.simpleproductfeeds.com/v1/mcp \
  --header "Authorization: Bearer $SPF_API_KEY"

Or commit a project-scoped .mcp.json (the ${SPF_API_KEY} placeholder reads from the environment, so no secret lands in git):

{
  "mcpServers": {
    "simple-product-feeds": {
      "type": "http",
      "url": "https://app.simpleproductfeeds.com/v1/mcp",
      "headers": { "Authorization": "Bearer ${SPF_API_KEY}" }
    }
  }
}

Codex

Add to ~/.codex/config.tomlbearer_token_env_var names the environment variable holding your key:

[mcp_servers.simple-product-feeds]
url = "https://app.simpleproductfeeds.com/v1/mcp"
bearer_token_env_var = "SPF_API_KEY"

Cursor

Add to mcp.json:

{
  "mcpServers": {
    "simple-product-feeds": {
      "url": "https://app.simpleproductfeeds.com/v1/mcp",
      "headers": { "Authorization": "Bearer ${env:SPF_API_KEY}" }
    }
  }
}

Agencies: one connection per client shop

Organization keys (spf_org_sk_...) manage many client shops. Select the shop in the connection URL:

https://app.simpleproductfeeds.com/v1/mcp?shop_id=123

Add one MCP server entry per client shop (e.g. spf-clientname), each with the same org key and a different shop_id. Shop IDs come from GET /v1/org/shops.

Tell your agent about us (AGENTS.md / CLAUDE.md)

If your project has an AGENTS.md or CLAUDE.md, paste this so any agent working in the repo knows the feed tool exists:

## Product feeds (Simple Product Feeds)
This store's product feeds are managed by Simple Product Feeds. An MCP
server exposes the full loop — diagnose, trace rows, fix (preview-first),
publish, verify: https://app.simpleproductfeeds.com/v1/mcp (Bearer
$SPF_API_KEY). Live docs: https://www.simpleproductfeeds.com/llms.txt ·
REST API: https://app.simpleproductfeeds.com/v1/openapi.json · Deeper
skill: https://github.com/simpleproductfeeds/skills

Try it

Once connected, ask your agent:

Show me the health of my Google feed.

or

Why is product variant 46618568622245 excluded from my primary feed?

Notes

  • The server is stateless JSON-RPC over Streamable HTTP: one request per POST, plain JSON responses, no session to manage.
  • Rate limit: 120 requests/minute per key, shared with the REST API.
  • claude.ai (web) is supported via one-click OAuth — see the claude.ai (web) section above. Claude Code, Codex, and Cursor authenticate with an API key instead.