Docs menuConnect Claude or Cursor to your site

Connect Claude or Cursor to your site

Step by step, connect Claude Code, Claude Desktop or Cursor to Vireo's MCP server, ask your first questions about your traffic, and fix the usual connection problems.

On this page

Vireo runs an MCP server on your WordPress site. Once an AI assistant is connected to it, you can ask about your traffic in plain language, and the assistant answers from your own numbers by calling Vireo’s tools. Every tool is read-only: the assistant can look, never change anything.

You’ll need about ten minutes, an administrator login, and the assistant you want to use.

1. Pick the user the assistant signs in as

The assistant signs in as a WordPress user and sees exactly what that user can see in Vireo’s dashboard. Only users who can open the dashboard can connect: administrators, plus any role you’ve ticked under Settings, General, “Roles with access”. See Who can see the numbers.

If you don’t want the assistant using an administrator account, create a user with a role that has dashboard access and nothing more, and connect as them.

2. Create an application password

  1. In WordPress, go to Users, Profile (or edit the user from step 1).
  2. Scroll to Application Passwords. Enter a name after the assistant, such as “Claude Desktop”, and click “Add Application Password”.
  3. Copy the password WordPress shows. It’s only shown once. The spaces in it can stay.

Vireo’s settings link straight to this: Vireo Analytics, Settings, Search Console & API, “Connect an AI assistant”, “Create one on your profile”.

To cut an assistant off later, revoke its password in the same place.

3. Copy your endpoint and config

Go to Vireo Analytics, Settings, open the Search Console & API tab and find “Connect an AI assistant”. It shows:

  • your “MCP endpoint”, which is your site address followed by /wp-json/vireo-analytics/mcp
  • a ready-made command for Claude Code
  • a ready-made config for Claude Desktop, Cursor and others

Your username is already filled in. Each has a Copy button. Paste your application password where the snippet says APP_PASSWORD.

4. Add it to Claude Code

Run the command from the settings screen in a terminal. It looks like this:

claude mcp add --transport http vireo-analytics https://example.com/wp-json/vireo-analytics/mcp --header "Authorization: Basic $(printf 'your-username:APP_PASSWORD' | base64)"

Run claude mcp list to check it’s connected, then start Claude Code and ask away.

Or add it to Claude Desktop

Claude Desktop connects through @automattic/mcp-wordpress-remote, a small proxy that runs on your computer and talks to your site over HTTPS. It needs Node.js installed.

  1. Open Claude Desktop’s Settings, Developer, and click Edit Config.
  2. Paste the config from the settings screen into claude_desktop_config.json. If the file already has an mcpServers section, add the vireo-analytics entry inside it.
{
  "mcpServers": {
    "vireo-analytics": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
      "env": {
        "WP_API_URL": "https://example.com/wp-json/vireo-analytics/mcp",
        "WP_API_USERNAME": "your-username",
        "WP_API_PASSWORD": "APP_PASSWORD"
      }
    }
  }
}
  1. Quit and reopen Claude Desktop. Vireo’s tools appear in the tools menu of a new chat.

Or add it to Cursor

Add the same mcpServers entry to ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project. Open Cursor’s settings, MCP, to check the server shows as connected.

5. Ask your first question

Start with something broad:

How is the site doing this month compared with last month?

The assistant should call vireo-analytics-get-changes and answer with the change in pageviews, the pages and sources behind it, and any warnings, such as tracking having stopped.

Questions to try

Ask Tools it will likely call
Which posts got the most views last week? get-top-pages
Where did visitors come from this month? get-traffic-sources, then get-top-referrers
What did Hacker News send us, and to which posts? get-referrer-detail
What did people search on Google to find my pricing page? get-search-console
How much do AI crawlers take compared with the readers AI assistants send? get-ai-referrals, get-bot-stats
Do I have broken links? get-404s
Why did traffic spike on the 3rd? get-daily-stats, get-annotations, get-changes
Which of my pages are slow for real visitors? get-vitals
Write me a summary of my year. get-year-review

Tool names on the server start with vireo-analytics-, for example vireo-analytics-get-top-pages. The full list is in the API reference.

Search Console questions need Search Console connected. If it isn’t, the tool says so and the assistant should tell you.

What Vireo Pro adds

With an active Vireo Pro license, the same server offers Pro’s tools as well, so you can ask:

Ask Tools
Which sources made money last month? get-revenue-by-source
Which blog posts lead to sales? get-revenue-by-landing-page
How many people are on the site right now? get-realtime
Did the October newsletter campaign bring traffic? get-campaigns
Where do people drop out of my checkout funnel? get-funnels, get-store-funnel
Which pages do people actually read to the end? get-engagement

The store tools appear when WooCommerce, Easy Digital Downloads, FluentCart or Freemius is active.

If your clients’ sites report into this install as connected sites, the same connection can answer about every one of them: see Ask one AI assistant about all your client sites. On a free site, the server tells the assistant which questions need Pro, so it can say so instead of guessing.

With Vireo Pro you can also skip the setup and ask inside WordPress: Ask Vireo uses the same tools through the AI provider you set up under Settings, Connectors. If your clients’ sites are MainWP children, connect the assistant to the MainWP dashboard instead: see With a MainWP dashboard.

If you get a 401 error

WordPress didn’t accept the login. Check:

  • the username is the login name, not the email or display name
  • the application password is pasted in full, and wasn’t revoked
  • for Claude Code, the printf part is username:password in single quotes, with no extra spaces around the colon

If you get a 403 error

WordPress knows who you are, but that user can’t see Vireo’s numbers. Connect as an administrator, or give the user’s role access under Settings, General, “Roles with access”.

If application passwords are missing from the profile

WordPress only offers application passwords on sites served over HTTPS, unless the site is marked as a local development site. Some security plugins and hosts also switch application passwords off, or block the REST API for logged-out requests. Allow application passwords, and allow requests to /wp-json/vireo-analytics/, for the user you connect as.

If the address starts with http://

Use the exact endpoint from the settings screen, including https://. If you type http:// and your site redirects to HTTPS, some clients drop the login on the redirect and get a 401.

If the tools don’t show up

  • Claude Desktop and Cursor need Node.js, because the proxy runs through npx. Install it and restart the app.
  • Restart the assistant after editing its config.
  • If the settings screen says “The bundled MCP adapter is missing from this install”, reinstall Vireo from its release package.

If another plugin’s MCP connection stopped working

Rank Math, and WooCommerce with its MCP feature on, serve their own tools through the MCP Adapter’s shared endpoint at /wp-json/mcp/mcp-adapter-default-server. Vireo Analytics 0.12.4 and earlier switched that endpoint off, so those plugins’ MCP connections stopped answering once Vireo was active. Update to 0.12.5 or later: Vireo now leaves the shared endpoint alone whenever another plugin uses the adapter, and only turns it off on sites where nothing but Vireo does. Vireo’s own endpoint at /wp-json/vireo-analytics/mcp isn’t affected either way.

If the numbers look wrong

The assistant sees the same numbers as your dashboard. If an answer looks off, open the same range on the Overview. Dates default to the last 30 days, in your site’s timezone.