Docs

Documentation

Add an SEO tool to Cursor

Install the RankReactorAI Cursor plugin or add the hosted SEO MCP server in mcp.json. Authenticate with a project API key as an Authorization Bearer header.

Every RankReactor plan, including Free, can connect an assistant and create a project API key. Free can generate its one lifetime article through an assistant (the same article as the dashboard). Ongoing generation needs a paid plan. UGC video needs Pro or Ultra.

  • Free includes 1 lifetime article, shared across the dashboard and any assistant. After that article is used, ongoing generation needs a paid plan.
  • Starter is $39/month and includes a 3-day trial.
  • Pro is $79/month.
  • Ultra is $159/month.
  • Read tools work on every plan. Refreshing metrics through an assistant needs Starter, Pro, or Ultra. Queuing a UGC video needs Pro or Ultra.

Cursor connects to RankReactor over Streamable HTTP at https://www.rankreactor.ai/mcp. Install the RankReactorAI plugin (rankreactorai) from GitHub, or add the same server by hand in mcp.json. The plugin authenticates with a project API key: it sends Authorization: Bearer ${RANKREACTOR_API_KEY}.

Install the RankReactorAI plugin

The package name is rankreactorai. Its plugin.json declares a secret variable RANKREACTOR_API_KEY that you set in Cursor. Its mcp.json points at the hosted server and sends that key as an Authorization Bearer header. The package is manifests and skills only; it does not ship a local server or the key itself.

  1. In Cursor, open Plugins and install RankReactorAI (rankreactorai) from the GitHub repo https://github.com/rankreactorai/rankreactorai-mcp. Do not look for it in the Cursor marketplace yet — that listing is coming soon.
  2. Sign in to RankReactor, select the project Cursor should use, and open API Key in the dashboard sidebar (/dashboard#api-key). Choose Generate. If a key already exists, use the value you saved, or choose Regenerate only when you intend to replace it. RankReactor shows the full key once.
  3. In Cursor, open Plugins → Configure and set RANKREACTOR_API_KEY to that project key. Never paste the key into chat.
  4. Reload Cursor so the plugin picks up the key.

Manual mcp.json

Cursor’s official MCP docs use a mcpServers object. Put the file in one of these locations if you add the server by hand instead of using the plugin:

  • Project: .cursor/mcp.json in the project folder. Commit it if the team should share the server (do not commit a live project key).
  • Global: ~/.cursor/mcp.json in your home directory, for every project.
  • Both files are merged. If the same server name appears in both, the project file wins.

Use the same header form as the plugin. Cursor fills ${RANKREACTOR_API_KEY} from the value you set under Plugins → Configure. If you paste a key into a private config instead, do not commit that file.

{
  "mcpServers": {
    "rankreactor": {
      "url": "https://www.rankreactor.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${RANKREACTOR_API_KEY}"
      }
    }
  }
}

Save the file and reload Cursor, or reload MCP from Customize. The hosted URL is https://www.rankreactor.ai/mcp.

Available tools

This connection is scoped to one project. Do not ask the assistant to guess another site. Write tools ask for confirmation first.

  • List projects (list_projects) — List the RankReactor project this API key can use. The key is scoped to exactly one project, so the result is that single site. Example: “Which RankReactor site is this connection using?”
  • Get reactor status (get_reactor_status) — Read this site's plan, quotas, and recent article or video activity. Example: “How many articles are left on this project today?”
  • Get metrics (get_metrics) — Read stored search and site health numbers for this RankReactor project. Example: “Show the stored search metrics for this site.”
  • Refresh metrics (refresh_metrics) — Refresh one stored metric for this project (analytics, technical SEO, website audit, or keywords), subject to that metric's plan limit. Confirmation required. Example: “Refresh analytics for this project if that metric is due.”
  • List articles (list_articles) — List generated articles for this RankReactor project. Example: “List the generated articles for this site.”
  • Get article (get_article) — Get one generated article for this RankReactor project by id, including markdown and HTML. Example: “Get the full article for this id.”
  • Generate article (generate_article) — Queue an article for this project. Uses the same article limits as the RankReactor dashboard. Confirmation required. Example: “After I confirm, queue an article for the keyword running shoes.”
  • List UGC videos (list_ugc_videos) — List generated short videos for this RankReactor project. Example: “List UGC videos for this project.”
  • Get UGC video (get_ugc_video) — Get one generated short video for this RankReactor project by id, including a download URL when the video is ready. Example: “Get the download URL for this video id.”
  • Generate UGC video (generate_ugc_video) — Queue a short product video for this project. Uses the same monthly video limits as the RankReactor dashboard. Confirmation required. Example: “After I confirm, queue a short product video about our trail runner.”
  • Get shop schedule (get_shop_schedule) — Read whether automatic shop articles are enabled and whether this Shopify shop is eligible. Example: “Is automatic article generation on for this shop?”
  • Set shop schedule (set_shop_schedule) — Turn automatic shop article generation on or off for this Shopify shop. Confirmation required. Example: “After I confirm, turn on automatic articles for this shop.”
  • List Buyer Radar leads (list_buyer_radar_leads) — List Buyer Radar leads for this RankReactor project. Read-only; nothing is sent automatically. Paid plans only (Starter 5 / Pro 20 / Ultra 40 leads per month). Example: “Show this week's new Buyer Radar leads.”
  • Get Buyer Radar lead (get_buyer_radar_lead) — Get one Buyer Radar lead for this RankReactor project by id, including draft text and send links. Read-only; nothing is sent automatically. Open a link to review and send it yourself. Example: “Show the draft reply for this lead id.”

Troubleshooting

  • 401, invalid, or revoked key — the server returns 401 when no Authorization header is sent, or when the token is invalid or revoked. Generate a key on the matching project, set RANKREACTOR_API_KEY under Plugins → Configure, and reload Cursor.
  • Regenerated key — the previous key stops working as soon as you confirm Regenerate on the API Key page. Put the new value in RANKREACTOR_API_KEY and reload Cursor.
  • Revoke — Revoke on the API Key page stops the current key immediately. Existing header connections are refused until you generate a new key and update Plugins → Configure.
  • Wrong project or domain — each key belongs to one project. A domain that names a different site is rejected. Create a key on the project you want, or omit the domain so the keyed site is used.
  • Plan-gated tools — Free can generate its one lifetime article through an assistant; that count is shared with the dashboard. Ongoing article generation needs a paid plan. Refreshing metrics through an assistant needs Starter, Pro, or Ultra. Queuing a UGC video needs Pro or Ultra. Read tools still work on Free.
  • Article limit — Free has one lifetime article across the dashboard and assistants. Paid plans have a daily article cap (UTC). When a paid daily cap is reached, the tool reports that the article limit has been reached and when it resets.
  • Video limit — Pro and Ultra have a monthly UGC video cap (UTC). When it is reached, the tool reports that the monthly video limit has been reached.
  • Metrics cooldown — Starter, Pro, and Ultra can refresh one metric at a time, then wait that metric’s interval. Analytics, technical SEO, and website audit wait 7 days on Starter, 1 day on Pro, and 8 hours on Ultra. Keywords wait 21 / 14 / 7 days. Free does not refresh metrics through the assistant.

Cursor-specific notes

  • Remote HTTP needs a current Cursor build that speaks Streamable HTTP (Cursor documents this from v0.48.0).
  • Set RANKREACTOR_API_KEY under Plugins → Configure. Do not paste the key into chat so the model can “remember” it.
  • Cursor can interpolate values in url and headers. Prefer the plugin secret over committing the key.
  • Team allowlists can block a URL that is not approved. Ask an admin to allow https://www.rankreactor.ai/mcp.

Need help?

Email rankreactor@mail.grokbot.com or reach out on X at @rankreactorai if Cursor cannot load the plugin or mcp.json stays disconnected. Include the project domain and which assistant you used.

Questions? Email rankreactor@mail.grokbot.com or reach out on X at @rankreactorai and include your project domain.