SEOLinkMap Private MCP Server and Agentic SEO
Statistical SEO intelligence for AI agents. Access correlation coefficients, p-values, and SERP-specific analysis through natural language.
Quick Start
Connecting takes one URL and one sign-in. Your MCP URL is on the SEOLinkMap dashboard, top right, and every client below takes that same URL.
- Active SEOLinkMap account
- Your unique MCP URL (found in dashboard, top right)
- MCP-compatible client (see integrations below)
Find Your MCP URL
Log into SEOLinkMap, open the Dashboard, and copy the MCP URL from the top right corner. It looks like this:
https://seolinkmap.com/private-mcp/{YOUR-UNIQUE-UUID}
Connect Your Client
The server speaks MCP over HTTP with OAuth, so any client that can add a remote MCP server can add this one. The first call from a new client opens a SEOLinkMap sign-in in your browser.
Claude.ai
Add the server as a connector in Claude.ai:
- Open Claude.ai Settings
- Go to Connectors
- Click "Add custom connector"
- Paste your SEOLinkMap MCP URL:
https://seolinkmap.com/private-mcp/{YOUR_UUID} - Complete the SEOLinkMap sign-in
Claude Desktop
Claude Desktop shares connectors with Claude.ai. Add the server under Settings, then Connectors, and it appears in the desktop app on the same account.
Claude Code
Add from the terminal:
claude mcp add --transport http seolinkmap https://seolinkmap.com/private-mcp/{YOUR_UUID}How To Do SEO With Claude Code walks the full loop -- reading the audit, editing the source, and remeasuring the live page.
Claude API
The Messages API connects to remote MCP servers through the MCP connector. Name the server once in mcp_servers and expose its tools with an mcp_toolset entry:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-5",
max_tokens=16000,
betas=["mcp-client-2025-11-20"],
mcp_servers=[{
"type": "url",
"url": "https://seolinkmap.com/private-mcp/{YOUR_UUID}",
"name": "seolinkmap",
"authorization_token": "{OAUTH_ACCESS_TOKEN}"
}],
tools=[{
"type": "mcp_toolset",
"mcp_server_name": "seolinkmap"
}],
messages=[{
"role": "user",
"content": "Switch to client-website.com and tell me what to work on next"
}]
)The access token comes from completing the SEOLinkMap OAuth flow once from your application.
VS Code with GitHub Copilot
Add to your VS Code MCP configuration:
{
"mcpServers": {
"seolinkmap": {
"type": "http",
"url": "https://seolinkmap.com/private-mcp/{YOUR_UUID}"
}
}
}Cursor IDE
Configure in Cursor's MCP settings:
{
"mcpServers": {
"seolinkmap": {
"type": "http",
"url": "https://seolinkmap.com/private-mcp/{YOUR_UUID}",
"description": "SEOLinkMap statistical SEO analysis"
}
}
}Windsurf IDE
Add to Windsurf MCP configuration:
{
"mcpServers": {
"seolinkmap": {
"type": "http",
"url": "https://seolinkmap.com/private-mcp/{YOUR_UUID}",
"name": "SEOLinkMap"
}
}
}Other Clients And Custom Code
Any MCP client library that supports the HTTP transport and OAuth connects to the same URL. There is nothing SEOLinkMap-specific to implement: the client discovers the tools over the standard protocol and your sign-in scopes what they can see.
What The Server Does
It puts every dataset SEOLinkMap holds on a project in front of the agent, and it puts the platform's own prioritised to-do list first. An agent that starts with get_next_actions gets the same ordered answer the dashboard shows, and every other tool drills into one item on that list.
The read side covers the crawl, the audit, internal links, Search Console rankings, Analytics traffic, keyword data, the change log, competitor research statistics, backlink prospects and AI Overview tracking. The write side records what was done to the site and moves outreach through its states, so the work an agent does lands on the client's report.
Paid operations queue rather than run. A crawl, a layout recalculation, a competitor research order, a prospecting order or a new tracked prompt all wait for a human to approve them on the dashboard or hand the agent an approval code. Prices are on the pricing page.
Example Agent Conversations
Complete SEO Audit
Agent Response: Switches project, reads the prioritised list from get_next_actions, and relays its first three items with the audit pages and correlation ranges behind each one.
Statistical Validation
Agent Response: Returns the correlation coefficient, p-value and confidence interval for title length on that keyword's SERP, the observed range across the ranking pages, and which of the four resource allocation buckets the factor landed in.
Content Optimization
Agent Response: Measures the draft with the same code that measured the ranking pages and places it beside their ranges, metric by metric.
Available Tools
The tools come in families, and each family below opens with what it lets an agent do. Read the opening paragraph of each and skip the cards unless you are building an agent and need the parameters.
Where To Start
Three tools frame every session. One returns the prioritised to-do list, one returns the accuracy notice an agent should carry into any SEO advice, and one describes the platform and the account behind the connection.
get_next_actions
The platform's prioritised to-do list for the active project, returned as prose in the order it should be acted on. Answers "how is this project doing" and "what do I do next" in every wording.
Requires: an active project, so call switch_project first
Use Case: "What should I work on for this site?"
llm_seo_warning
SEOLinkMap's standing accuracy notice: models can state invented facts, and SEO changes affect a live site, so verify recommendations against the data first.
Use Case: Read at the start of an SEO conversation and before acting on a recommendation
get_platform_info
What the platform can do, the agency context behind this connection, and the features available to it
Use Case: "What can SEOLinkMap do for me?"
Projects And Account
Data is scoped per project, and an agency can hold fifty or more, so the agent lists projects and the user picks one before anything else runs. New projects queue for approval like any other paid operation.
list_projects
All projects on the authenticated agency
Use Case: "Show me all my client websites"
switch_project
Set the active project for every later call. The user chooses; the agent does not pick one on its own.
Use Case: "Switch to client-website.com"
create_new_project
Queue a new target website for addition to the account
Optional: notes (for the approver)
Use Case: "Add new-client.com as a project"
account_info
Credits and the status of queued operations
Use Case: "How many credits do I have?"
Site Audit
The audit is the last scheduled pass over the crawl, grouped by category and issue. The summary shows only issues with findings, and the pages tool lists what each issue touches.
get_audit_summary
Every audit category and issue that has findings, with counts
Use Case: "What is wrong with this site?"
get_audit_issue_pages
Paginated pages affected by one audit issue
Optional: limit (default 100, max 500), offset
Use Case: "Which pages have short titles?"
Pages And Links
Page data comes from the stored crawl. The list tool finds pages, the page tool details one, and the two link tools walk the internal link graph in either direction.
list_pages
Pages in the active project with basic metrics
Use Case: "Show me all pages on this site"
get_page
Detailed data for one page
Use Case: "Analyze the homepage"
get_links_in
Internal links pointing to one page
Use Case: "What pages link to my homepage?"
get_links_out
Internal links from one page
Use Case: "What does this page link to?"
Content Analysis
These measure text or a live URL with the same code that measured the pages in the correlation sets, so a draft can be placed beside the ranking pages metric by metric. The URL tool also audits the page live against the scheduled audit's rules, which is how an agent confirms a fix landed.
analyze_text_content
Readability, word count, headings, keyword analysis and structure for any text. Strip markup first.
Optional: target_keyword, include_ngrams (default true)
Use Case: "Analyze this article for SEO factors"
analyze_url_content
Fetch and measure a live page on the active project host, and audit it against the current rules. Nothing is stored.
Optional: target_keyword, include_ngrams, refresh_robots
Use Case: "Does https://client.com/new-page still fail the audit?"
clean_ai_chars
Strip hidden Unicode, odd spaces, special dashes and smart quotes from text
Use Case: Clean generated copy before it is published
Rankings, Traffic And Keywords
Rankings come from Google Search Console and traffic from Google Analytics, each connected on the project's settings page. Keyword data draws on both plus the crawl and any competitor research.
get_ranking_data
Search Console rankings and clicks for pages and keywords
Requires: Google Search Console integration
Use Case: "How are my rankings trending?"
get_traffic_data
Google Analytics traffic for pages
Requires: Google Analytics integration
Use Case: "Which pages get the most traffic?"
get_keyword_data
Keyword information and associations for the active project
Use Case: "What keywords does this page rank for?"
The Change Log
The change log is what ranking and traffic movements get explained against. The crawler logs on-page edits it detects between crawls. The agent logs what the crawler cannot see: links won, redirects, schema, sitemap and robots work, a Business Profile change, or the date of a Google update.
get_seo_actions
What was done to the site over a period, newest first. Link churn from the crawler is excluded by default.
Use Case: "What changed in the weeks before rankings dropped?"
log_seo_action
Record one change actually made to the site. Do not log on-page edits the crawler will detect on its own.
Optional: page_id or url (page-level types), details (old_value and new_value where there is a before and after), notes
Use Case: "Log the backlink we got from example.org today"
Competitor Research
Competitor research measures the pages that rank for one keyword and reports which factors correlate with position on that SERP. The tools return the written action plan, the correlation statistics with their four resource allocation buckets, and the backlink picture. Two tiers exist, standard and premium; the pricing page has what each includes.
list_competitor_researches
Competitor research orders on the active project
Use Case: "What competitor research do I have?"
get_competitor_research_action_plan
The written reports from one order, and with a keyword_id the measured verdict for that keyword: build a page, fix the one you have, or earn links to it
Optional: keyword_id (call once per keyword you intend to discuss)
Use Case: "What does the research say I should do for 'seo tools'?"
get_serp_correlations
Correlation data for one keyword's SERP, with each factor classified CRITICAL, OPPORTUNITY, GAMBLE or AVOID
Returns: Correlation coefficients, p-values, confidence intervals, observed ranges
Requires: Competitor research on the keyword
Use Case: "What factors correlate with rankings for keyword X?"
get_backlink_data
Backlinks from Search Console referring domains and competitor research, with guidance
Use Case: "Where do my links come from?"
queue_competitor_research
Order research on a list of keywords. Queues for approval.
Optional: notes (for the approver)
Use Case: "Research competitors for these 5 keywords"
Backlink Prospector
The Backlink Prospector reads dozens of SERPs per keyword and returns the sites worth writing to, each with a contact route and a drafted pitch. Its tools cover read, write, order and detailed reports: list orders, work the prospects as a queue, record what came of each outreach, and order more keywords. Sending happens in the user's own mail tool, never here.
list_backlink_prospecting_orders
Completed prospecting orders with keyword and prospect counts
Use Case: "What prospecting have I run?"
list_backlink_prospects
Every prospect in one order as a work queue: domain, viability, contact route and outreach state
Optional: status (not_contacted, contacted, responded_yes, responded_no, link_secured, dead_lead), followup_due, viable_only (default true), include_pitch, limit (default 25, max 200), offset
Use Case: "Who have we not contacted yet?"
get_backlink_prospecting_detail
One order in depth. With a keyword_id, each prospect's reasoning, contact route and drafted outreach email.
Optional: keyword_id (from completed_keywords), viable_only
Use Case: "Show me the prospects for 'seo tools' with their pitches"
update_backlink_prospect
Record the outcome of outreach to one prospect: move its state, add notes, or save the rewritten pitch
Optional: contact_status, user_notes (up to 5000 characters), suggested_email_pitch
Use Case: "Mark example.org as contacted"
queue_backlink_prospecting
Order prospecting on a list of keywords. Queues for approval.
Optional: notes (for the approver)
Use Case: "Find link prospects for these 3 keywords"
AI Visibility
AI Visibility tracks, every day, whether Google shows an AI Overview for a prompt and whether this project is cited in it. Its tools cover write, read and order: list the tracked prompts, read the verdict and the citation rate with its confidence interval, and queue a new prompt, which waits for human approval like every other paid operation.
list_ai_visibility
Prompts this project tracks, with state, observation count and monthly cost
Use Case: "What prompts are we tracking?"
get_ai_visibility_results
The verdict for one prompt, then the evidence: Overview rate and citation rate over the trailing 30 days, each with a 95% Wilson interval
Optional: days (per-day captures to include, default 7, max 90, 0 for statistics only)
Use Case: "How often are we cited for 'best seo tool for agencies'?"
queue_ai_visibility
Start daily tracking of one prompt. Queues for approval.
Optional: country (ISO alpha-2, default US), state (US only), notes
Use Case: "Track 'which seo tool shows internal links' from the US"
Crawls And Approvals
A crawl re-fetches the site; a layout recalculation recomputes PageRank and the link map from the pages already crawled at half the credit cost. Both queue with an estimated cost, and both wait for a human. The human approves on the dashboard, or hands the agent an approval code to submit.
queue_crawl
Queue an updated crawl and analysis. Returns queue ID and estimated cost.
Use Case: "Update my site analysis"
queue_layout
Queue a PageRank and layout recalculation without re-fetching. The right call when links changed but content did not.
Use Case: "Recalculate the link map after the nav change"
approval_code
Submit an approval code to activate a queued operation
Use Case: Complete a paid operation after the user approves it
Knowledge Base
The SEOLinkMap article corpus is searchable from the same connection, so an agent can cite the documentation for a feature it is using.
search
Search the SEOLinkMap articles
Use Case: "How does SEOLinkMap classify a factor as CRITICAL?"
fetch
The full text of one article by ID
Use Case: Read the article a search result pointed at
Authentication And Permissions
SEOLinkMap is the OAuth provider for its own MCP server. The client sends you to a SEOLinkMap sign-in, and you sign in however you sign in to SEOLinkMap: Google, LinkedIn, GitHub, or a SEOLinkMap username and password. The token the client receives is scoped to your account.
The agent sees only the projects your account can see and only the project it has switched to. It cannot edit your website. Anything that costs credits queues for approval, and the approval is yours, on the dashboard or by handing the agent a code.
Errors
Errors come back as instructions rather than codes. When a call cannot proceed, the response says what blocked it and what to do next in plain language written for the model reading it: no project selected, so list projects and switch first; no ranking data, so connect Search Console on the settings page; an order saved but short of credits, and where credits are bought.
That means an agent rarely needs error handling of its own. It reads the sentence and follows it.
Why SERP-Specific Statistics
Generic SEO advice is a global average, and the SERP you are competing on is a local forecast. The correlation data here is measured on the ten pages ranking for one keyword, with outliers removed and the relationship tested for significance, so it can and does contradict the average from one keyword to the next.
Each factor lands in one of four buckets. CRITICAL is what every ranking page already satisfies. OPPORTUNITY is where the ranking pages vary and the SERP says the factor matters. GAMBLE is a relationship too thin to confirm. AVOID has no measured relationship with rank. SEO Resource Allocation explains how the buckets are derived.
Support
Connection and tool problems go to SEOLinkMap support. Account and billing live on the dashboard, and missing ranking or traffic data is almost always the Google integration on the project's settings page.
What Does the Math Say
About Your Site?
Finding out is free and takes minutes.