| Question | Answer |
|---|---|
| What is it? | One Cursor mcp.json with three servers: Shopify's Dev MCP, Meta's Ads MCP and Anry |
| Who makes them? | Shopify, Meta and Anry. Each is the official server for its own product |
| Who it's for | Agencies and technical store owners who edit the theme in a repo |
| Where the file lives | .cursor/mcp.json in the theme repo, or ~/.cursor/mcp.json for every project |
| Read or write? | Dev MCP: docs and code checks, no store access. Meta: reads and changes ads. Anry: read-only |
| The catch | In Cursor, Meta's server needs your own Meta developer app as of October 2026 |
What each server does in Cursor
Shopify has several MCP servers (which one is which). For theme work you want the Dev MCP, and the other two bring the ad and on-site data.
| Server | Runs | Sign-in | What you use it for |
|---|---|---|---|
| Shopify Dev MCP | Locally, through npx | None | Shopify docs, API schemas, and checks on Liquid, theme files and GraphQL |
| Meta Ads MCP | Hosted by Meta at https://mcp.facebook.com/ads | OAuth through your own Meta app | Spend and results, delivery errors, pausing or editing ads |
| Anry | Hosted at https://mcp.anry.io/mcp | OAuth 2.1 with your Anry account | Which page and which ad leak money, priced in the store's own orders, with sessions and heatmaps |
The Dev MCP is the theme half. On 21 October 2026, version 1.17.0 listed five tools, and the one that matters here is validate_theme. It checks Liquid plus the theme's JSON, JavaScript, CSS and SVG files for "hallucinated Liquid content, invalid syntax, or incorrect references", in the words of its own tool description. It reads your theme folder from disk, which is why this setup lives in an editor.
Meta's server listed 97 tools when I connected it in Claude Code. Anry adds 16 read-only ones (Anry docs).
Before you start
- Cursor, plus Node.js 18 or later for the Dev MCP (Shopify.dev).
- Your theme in the repo you open in Cursor.
shopify theme pulldownloads it from the store (Shopify CLI). - A Meta developer app with the "Create & manage ads with ads MCP server" use case, and Cursor's desktop redirect
http://localhost:8787/callbackadded in its Facebook Login for Business settings (Meta, Cursor). Agencies working on clients' ad accounts also need Advanced Access onads_mcp_management, which means an app review (Meta). - An Anry account with the store connected. One login covers every store you manage.
Set it up in Cursor
- Create
.cursor/mcp.jsonin the theme repo, or~/.cursor/mcp.jsonto get the servers in every project. Cursor merges both, and the project file wins when both name the same server (Cursor help). - Paste the config below.
- Add your Meta app ID to your shell profile as
META_APP_ID. Cursor fills in${env:...}values, so the ID never sits in a file you commit. - Restart Cursor, open Customize, then MCPs, and sign in to Meta and Anry when Cursor asks.
- In a new Agent chat, ask which MCP tools it has, and check that all three servers show up.
{
"mcpServers": {
"shopify-dev-mcp": {
"command": "npx",
"args": ["-y", "@shopify/dev-mcp@latest"]
},
"meta-ads": {
"url": "https://mcp.facebook.com/ads",
"auth": { "CLIENT_ID": "${env:META_APP_ID}" }
},
"anry": {
"url": "https://mcp.anry.io/mcp"
}
}
}
The Shopify and Anry entries come straight from their docs (Shopify.dev, Anry). The Meta entry combines Cursor's static OAuth format with Meta's own-app route, because the plain URL fails in Cursor: Meta hasn't allowlisted Cursor's redirect (Cursor forum). Our Meta Ads MCP guide has the full story. We've run Meta's server in Claude Code, not in Cursor yet, so treat that entry as the documented route, not a tested one.
Claude Code
The same three servers, for anyone on the team who works in the terminal:
claude mcp add --transport stdio shopify-dev-mcp -- npx -y @shopify/dev-mcp@latest
claude mcp add --transport http meta-ads https://mcp.facebook.com/ads
claude mcp add --transport http anry https://mcp.anry.io/mcp
Shopify's plugin instead
Shopify's recommended Cursor route is /add-plugin shopify in chat (Shopify.dev). Since 1 October 2026, the plugin also connects to Shopify's hosted store server, the one behind the Shopify connector in Claude, so the agent can read orders and products too (AI Toolkit changelog). Pick the mcp.json entry when you want every server in one file your team commits.
One workflow: from a leaking page to a theme fix
This is the loop the setup is for. Each step names the server doing the work.
- Find the leak (Anry). "Which page loses the most paid visitors this month, and is it one device?"
get_revenue_leaksandget_issuereturn the leak, priced in the store's orders, with the device and source breakdown behind it. - Find the ad (Anry, then Meta). "Which ads send people to that page who leave right away?"
get_campaign_spendputs Meta's spend and clicks next to the sessions and orders Anry counted on the site, per ad. Then ask Meta's server for the same ads' numbers, or to pause the worst one. - Look at the page (Anry). "Show how far people scroll on that page, and two sessions that left." That's
get_heatmap_summary, thenget_session. - Fix the theme (Shopify Dev MCP). Open the section file and describe the change: "Move the price and Add to cart above the image gallery on mobile." The agent reads Shopify's Liquid docs, edits the file, and runs
validate_themeon what it changed until it comes back clean. - Preview, then publish yourself.
shopify theme push --unpublished --theme "mobile-atc-fix"uploads the edit as a new unpublished theme and returns a preview link (Shopify CLI). Check it on a real iPhone, then publish from your admin.
Nothing here edits the live theme. The change happens in your repo, and you publish it.
Here's what step 1 looks like on our own site. anry.io isn't a Shopify store, but Anry reads it the same way. On our /shopify landing page, iPhone visits record no scroll or tap 47% of the time, against 15% on Android. So the fix starts with the phone layout, and mobile-only leaks have their own checks.
Who sees what
| Shopify Dev MCP | Meta Ads MCP | Anry | |
|---|---|---|---|
| Shopify docs and theme checks | Yes | No | No |
| The store's orders | No | No | Yes, to price each leak |
| Meta spend and results | No | Yes, Meta's own count | Yes, next to the visits on the site |
| What visitors do on the page | No | No | Yes, sessions and heatmaps |
| Changes things | No, the agent edits your files | Yes, ads and campaigns | No, read-only |
If all you do is theme work, the Dev MCP or Shopify's plugin is enough. If you only manage ads, Meta's server alone does that job, and today it connects more easily in Claude. The three together earn their place when the same person fixes the page and answers for the ad spend.
Is it safe?
- The Dev MCP never sees the store, but Shopify's published builds send usage events that "can include tool inputs and results" (npm). Add
"env": { "OPT_OUT_INSTRUMENTATION": "true" }to its entry to switch that off. - Meta's server can create and edit campaigns, and its write tools create them paused (Meta). By default Cursor asks before it runs an MCP tool, and in Auto-review mode anything off your allowlist goes through its safety checks (Cursor help). Keep Meta's write tools off the allowlist.
- Anry's tools are read-only. It can't change the theme, the store, the campaigns or the ads.
- Never put a token or app secret in a project
mcp.json. Use${env:NAME}instead.
Common errors and the fix
| Error | What it means | Fix |
|---|---|---|
| "Dynamic registration is not available for this client" on Meta | Meta hasn't allowlisted Cursor's redirect | Use your own Meta app's ID in auth, as above |
| "Cannot find module '@shopify/liquid-html-parser'" | A broken npx cache | Run npm cache clean --force or delete ~/.npm/_npx, then restart Cursor (Shopify community) |
| Dev MCP won't connect on Windows | npx doesn't start from Cursor | Use "command": "cmd" with ["/k", "npx", "-y", "@shopify/dev-mcp@latest"] (Shopify.dev) |
No validate_theme tool | LIQUID_VALIDATION_MODE is set to partial | Remove it, or set it to full (npm) |
| "Too many MCP tools are enabled for this model" in Cursor's CLI | Older CLI builds sent every tool definition at once | Update the CLI, which loads tools only when needed since September 2026, or switch a server off (Cursor forum) |
Where Anry fits
Shopify's Dev MCP gets the theme edit right, and Meta's server reports on and changes the ads. Anry tells you which page and which ad to work on first, with each leak priced in the store's own orders. It's read-only, so the fix stays in your repo and in your hands. If you're building a theme for a store with no paid traffic yet, skip it.
Frequently asked questions
Where does Cursor's mcp.json go?
.cursor/mcp.json in your project, or ~/.cursor/mcp.json in your home folder for every project. Cursor merges the two, and the project file wins when both name the same server.
Does the Shopify Dev MCP work in Cursor?
Yes. Add it to mcp.json with npx -y @shopify/dev-mcp@latest, or install Shopify's plugin with /add-plugin shopify. It runs locally on Node.js 18 or later, with no login.
Can the Shopify Dev MCP edit my live theme?
No. It searches docs and checks code, and the agent edits files in your repo. You push them with Shopify CLI and publish them yourself.
Can one Cursor setup cover several client stores?
For Anry, yes: one login covers every store, and list_sites shows each one. The Dev MCP doesn't care which store a theme belongs to, so keep one repo per client theme.
Can Anry change my theme or my ads?
No. All 16 tools are read-only. Anry finds and prices the leak, and your agent in Cursor makes the change once you approve it.
What's the difference between a Cursor plugin and an MCP server?
A plugin is a bundle. Cursor says it can package rules, skills, subagents, commands, MCP servers and hooks in one install (Cursor docs). An MCP server is one connection to one tool, which you can add on its own in mcp.json.
Sources
- Model Context Protocol (MCP), MCP integrations and Customize Cursor, Cursor docs
- CLI MCP tool limits and Official Meta Ads MCP OAuth fails, Cursor forum
- Shopify AI Toolkit, Shopify.dev
- Shopify AI Toolkit changelog, GitHub
- @shopify/dev-mcp, npm
- theme pull and theme push, Shopify CLI reference
- Shopify Dev MCP not working on Cursor, Shopify developer community
- Ads MCP server: get started and ad creation and management tools, Meta for Developers
- Meta ads MCP server update, Meta for Developers, July 2026
- Anry MCP server docs
See which ad clicks leave your store before they buy.
14-day free trial, no card. Works in Claude, Claude Code and Cursor.