How we use MCP while we build this site
A working session on seoperception.com: which URL already owns “seo mcp,” why the PDF pages hold the impressions, and how MCP fits the edit in Cursor.

Share this article
I keep Cursor open on this repo. The next change is usually a page, a doc, or a paragraph on seoperception.com. Before that edit, we ask SEO Perception what the site already earns.
That question goes through SEO Perception MCP. The tools read stored weekly Search Console facts and the crawl we already collected. They do not call Google, refresh Search Console, or recrawl. On 20 October 2026 the crawl of this site was 127 pages, all completed, and the latest stored Search Console import was the same day.
Ask which URL already owns the query, and whether that URL is close enough to earn a click. Then edit that page.
The catalog of prompts lives in 7 SEO workflows from Cursor. This is the session we actually ran, with the numbers the tools returned. Window for the query totals below: 26 April 2026 through 18 October 2026.
The order, every time
The order is the whole method. A rewrite that starts before the evidence is a guess with better grammar.
1. Name the site
seoperception_list_sites first. This account has more than one property. The model does not get to guess. For this session the site is seoperception.com.
2. Read the overview
seoperception_get_site_overview returns a bounded picture: top queries, the pages that hold the impressions, and rank movement between the last two fortnights. Enough to see the week. Short of a 40-page audit.
3. Open the URL you are about to touch
seoperception_get_page_diagnostics takes a path. It joins the latest crawl (title, canonical, indexability, status) with the stored weekly trend, the top queries on that URL, and any open Possibilities.
If you are editing a file that will become a URL, this is the call. The file and the query evidence sit in the same window.
4. Search the phrase, not the vibe
seoperception_search_queries can filter by phrase, landing page, position, impressions, and whether the stored content match says the query is already in the copy. We use it to see if a new section would steal a job an existing URL already has.
5. Ask the lists, and keep the empty ones
Four lists often decide whether today is a writing day:
seoperception_find_cannibalizationfor a query with more than one URLseoperception_find_content_gapsfor query-not-in-content, weak titles, and question queriesseoperception_find_content_decayfor pages with a stored declineseoperception_suggest_internal_linksfor destinations worth linking while the file is open
An empty list is a result. For decay, empty means no stored decay rows, which is different from “this site has no decay.”
6. Edit, then close the to-do if one exists
seoperception_list_opportunities is the Possibilities queue. seoperception_update_possibilities can mark an existing row done or ignored, only when the connection includes that permission, and only for an id copied from the list. Done can come back on the next crawl if the issue is still there. Ignore stays hidden and needs a reason. The tool does not invent tasks, recrawl, or call Google.
On this date the open list was empty, so there was nothing to close. The step stays in the session for the day a row comes back.
What the tools returned
Clicks on the queries below are zero. Positions are stored averages, rounded to one decimal. Google can omit low-volume rows before we store them.
| Query | Impressions | Avg. position | Clicks | Landing page |
|---|---|---|---|---|
| seo mcp | 104 | 50.9 | 0 | /blog/7-seo-workflows-cursor-mcp |
| model context protocol for seo | 74 | 85.9 | 0 | Mostly /blog (57 of them, position 85.9) |
| generate pdf seo reports | 773 | 17.6 | 0 | Mostly /docs/export-pdf-report (413, position 16.8) |
| seo pdf reports | 279 sitewide | 17.9 | 0 | /blog/pdf-seo-reports-what-to-include holds 214 at position 15.7 |

“seo mcp” has a single landing page. The stored content match says the phrase is already in the copy. Page diagnostics put all 108 impressions for that URL in two weeks: 12 in the week of 10 August 2026, and 96 in the week of 17 August. Average position is about 51. People can see the listing. They are not clicking it, and we are not on the first page.
“model context protocol for seo” is a different problem. The definition article, What is an SEO MCP server?, returned no weekly series and no top queries in diagnostics. The blog index is the URL collecting that phrase, around position 86. An index is a directory. It is a weak page to leave in charge of a definition.
The impression volume is on PDF reports, and it is split by job. The export guide is the page for “generate pdf seo reports”: 413 impressions at position 16.8, with the weekly series rising through late September and early October (99, then 177, then 106) and still no clicks. The checklist is the page for the wider “seo pdf reports” family: 214 impressions at position 15.7. That URL spiked to 1,188 impressions in the week of 17 August, then settled near 70–80 impressions a week in October. Clicks stayed at zero.
Between 21 September–4 October and 5–18 October, “generate pdf seo reports” moved from average position 19.8 to 15.5. “pdf seo reports” moved from 12.6 to 17.7. Movement without a click is a packaging problem: title, the first screen, and which URL is supposed to answer.
Cannibalization, content gaps, content decay, internal-link suggestions, and open Possibilities all came back empty. We did not invent a conflict to write about. The same query family showing up on both the checklist and the export guide is visible in the overview, and the cannibalization tool did not store it as a conflict row. Those two URLs have different jobs: one generates the file, one says what belongs in it. We kept both, and we said so on the checklist.
What we changed
We did not publish a second “what is MCP” article. Google is already sending “seo mcp” to the workflows page. This piece is the session that page was missing, and the workflows page now points here.
We also corrected the older MCP posts. They still said the server was read-only and could not close a Possibility, and that access was a personal token on a paid plan. Current behavior: connect with OAuth or a personal token, on the 7-day Starter trial or a paid plan. Closing a Possibility needs the separate permission. A connection that only asked to read stays read-only.
On the PDF side, the checklist’s first screen now states its job next to the export guide, so the two URLs stop sounding like the same article. Positions in the teens with zero clicks will not move because a blog post wishes them to. They move when the page that ranks says, in the first lines, the thing the query asked.
Where this sits in the week
The weekly habit is still the one in SEO progress is built weekly: a short list, a fix, a note about what to watch. MCP is how that list enters the editor on the days we are already in the code.
When the decay list is the one with rows, the move is the one in Revive old content. Publish the next article after an existing URL has been given a fair chance.
The July write-up, SEO report for humans and AI, is the same habit with a PDF in the middle, on a different property. This one skips the export. The evidence and the file are already open.
The same habit on a site we ship for someone else is Building Ted Auto with MCP: the homepage is the offer, and the guide is the private sale.
Frequently asked questions
Does this replace the seven workflows?
The seven workflows are the menu. This article is one sitting: the calls, in order, on seoperception.com, including the lists that came back empty.
Can MCP mark work done?
Yes, for a Possibility that already exists, when the connection includes that permission. Copy the id from seoperception_list_opportunities. Done can reopen if the issue remains. Ignore is permanent and needs a reason. The tool still does not recrawl or call Google.
What should I do when a list is empty?
Record it and move on. An empty decay list means no stored decay rows. An empty cannibalization list means no stored conflict rows. Confirm the Search Console import and the crawl are fresh, then spend the session on the URL that already has impressions.
Do I need a paid plan?
MCP is included on the 7-day Starter trial and on Starter, Pro, Business, and Enterprise. Connect with OAuth, or create a personal token under Account → MCP. Setup lives on SEO Perception MCP and in the MCP docs.
The prompt catalog is 7 SEO workflows from Cursor with MCP. The checklist those PDF queries land on is PDF SEO reports: what to include and leave out.
Share this article
Evidence and update policy
These articles are written from crawl diagnostics, Search Console interpretation, and cited public documentation when platform behavior is referenced. Guidance is updated when source platforms change materially.