vibeseo-mcp

VibeSEO MCP brings live SEO work into your AI assistant.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Get Location By Code: Look up a single location by its DataForSEO location code, e.g. 2840 for United States.
  • Score Keyword: Score a candidate keyword against this project's archetype to get a 0-100 priority score with breakdown. The keyword must already appear in the project's top-100 ranking set.
  • Update Site Information: Save the project's site information. All optional fields default to existing values when omitted.

What data it sees

Do you need an account

No: the server works without sign-in

VibeSEO MCP brings live SEO work into your AI assistant. Connect Claude, ChatGPT, Cursor, VS Code, or a CLI client to VibeSEO, then ask for keyword research, audits, backlinks, Search Console trends, and content workflow actions in natural language.

What you can do from chat:

  • πŸ” Keyword research β€” volumes, CPC, difficulty, intent, autocomplete, questions, comparisons.
  • 🌐 Domain analysis β€” overview, top keywords and pages, traffic history, competitor ideas.
  • πŸ”— Backlinks β€” profile, referring domains, anchors, history.
  • πŸ› οΈ Site audits β€” start audits, read crawl results, prioritize fixes by impact.
  • πŸ“Š GSC performance β€” connected Google Search Console summaries, top queries, trends, query diagnostics.
  • πŸš€ Content workflow β€” list posts, refresh ideas, generate drafts, approve, schedule, and publish.

Built for real work, not demos:

  • OAuth-secured. Tokens scoped to mcp:tools, tied to your VibeSEO account, revocable any time from the connected-clients table.
  • Approval gate stays. MCP can help manage the workflow, but VibeSEO keeps the human approval step before content goes live.
  • Streamable HTTP transport. Works with Claude (web & desktop), ChatGPT, Cursor, VS Code, Claude Code, Gemini CLI, and Codex CLI.

Setup: open vibeseo.dev/mcp, pick your client, authorize via OAuth. One connection per client, lasts until you revoke.

How to connect

How to connect vibeseo-mcp to Claude

The server address to paste into Claude settings:

https://vibeseo-mcp--vibeseo.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings β†’ Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + β†’ Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings β†’ Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect vibeseo-mcp to ChatGPT

The server address to paste into ChatGPT settings:

https://vibeseo-mcp--vibeseo.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings β†’ Apps β†’ Advanced settings β†’ Developer mode.
  3. Open Settings β†’ Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + β†’ Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors β†’ Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect vibeseo-mcp to Cursor

The server address to paste into Cursor settings:

https://vibeseo-mcp--vibeseo.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings β†’ Cursor Settings β†’ MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (60)

Raw names from tools/list. Only developers need these.

get_location_by_codeLook up a single location by its DataForSEO location code, e.g. 2840 for United States.
score_keywordScore a candidate keyword against this project's archetype to get a 0-100 priority score with breakdown. The keyword must already appear in the project's top-100 ranking set.
update_site_informationSave the project's site information. All optional fields default to existing values when omitted.
list_languagesList supported languages (language code + display name).
list_publicationsList published article snapshots (read-only history) for the project, with traffic signals.
gsc_query_detailsGSC performance for a specific list of queries.
list_domain_historyReturn the calling user's recent domain search history.
keyword_gapKeywords the competitor ranks for that the primary domain doesn't (highest-opportunity gap targets), or common keywords. Returns { totalCount, items }.
list_audit_issuesFiltered list of issues from an audit. Filter by category (on-page, technical, content, performance, ...) or severity (critical, warning, info).
autocomplete_keywords_batchBulk autocomplete suggestions for 1 to 5 seed keywords per call. MAX 5: sending more returns a 400 validation error β€” split larger lists across multiple calls.
autocomplete_keywordsGoogle-autocomplete-style keyword suggestions for a seed keyword. Filter results by volume, CPC, difficulty, intent. Each suggestion comes back with its own locationCode/languageCode β€” use this tool (or related_keywords) to discover the right market before calling get_keyword_metrics for keyword difficulty.
question_keywordsQuestion-format suggestions (what/how/why/when/...) for a seed keyword. Useful for FAQ and informational content.
comparison_keywords_batchBulk comparison-style suggestions for 1 to 5 seed keywords per call. MAX 5: sending more returns a 400 validation error β€” split larger lists across multiple calls.
clear_domain_historyClear the calling user's domain search history.
gsc_top_queriesTop search queries from GSC for a project.
domain_traffic_historyMonthly organic traffic history for a domain.
reject_postReject a Ready post: clears the body and returns it to Drafting with the reason recorded.
gsc_statusGSC connection status for a project: connected/pending/invalid, bound site, last sync time.
list_competitorsList the project's tracked competitors.
backlink_historyHistorical backlink count trend for the domain.
refill_queueAppend new Idea-status posts to the queue (additive β€” does not touch existing posts).
list_audits_for_projectAll audits previously run for a project, newest first.
list_gsc_sitesList Google Search Console sites accessible via a previously-connected GSC connection.
get_audit_summaryCondensed audit scorecard: category breakdown, top recurring rule codes, average response time, indexable pages percent.
get_projectGet a single project by ID.
list_projectsList the calling user's VibeSEO projects.
get_auditAudit metadata + summary scores by audit ID.
analyze_for_onboardingRun the onboarding analyzer on a domain: surfaces opportunity gaps, audit issues, and competitor insights as initial recommendations.
update_projectRename or change the domain of an existing project.
start_site_auditTrigger a new site audit (crawl + on-page/technical analysis). Runs asynchronously; poll get_audit until status="completed".
clear_keyword_historyClear the calling user's keyword search history.
question_keywords_batchBulk question-format suggestions for 1 to 5 seed keywords per call. MAX 5: sending more returns a 400 validation error β€” split larger lists across multiple calls.
gsc_top_pagesTop landing pages from GSC for a project.
domain_competitor_suggestionsSuggested competitor domains based on keyword overlap and similar audience.
backlink_anchorsTop anchor texts pointing at the domain.
delete_projectDelete a project. This action is irreversible.
get_keyword_metricsKEYWORD DIFFICULTY REQUIRES locationCode AND languageCode β€” worldwide calls (both omitted) return null KD. If the target market is unknown, first call autocomplete_keywords or related_keywords; their results include locationCode/languageCode per suggestion, which you can then pass back here. Looks up search volume, CPC, keyword difficulty, competition, and search intent for a single keyword.
propose_site_informationRun the AI strategist to propose site information values from the latest crawl.
get_keyword_metrics_batchMAX 5 KEYWORDS PER CALL. Sending 6 or more returns a 400 validation error β€” split larger lists across multiple calls. KEYWORD DIFFICULTY REQUIRES locationCode AND languageCode β€” worldwide calls (both omitted) return null KD for every keyword. If the target market is unknown, first call autocomplete_keywords or related_keywords; their results include locationCode/languageCode per suggestion, which you can then pass back here. Looks up search volume, CPC, KD, and intent for 1 to 5 keywords.
list_keyword_historyReturn the calling user's recent keyword search history.
backlink_profileAggregate backlink profile for a domain: total backlinks, referring domains, spam score, broken links.
preposition_keywordsSuggestions containing prepositions (for/with/near/...) for a seed keyword.
schedule_postSet or change the scheduled_for date on a post (Idea, Drafting, or Ready).
gsc_trendDaily GSC trend (clicks, impressions, position) over a window.
approve_postApprove a Ready post and queue it for publication at its scheduled time.
domain_overviewAuthority, organic/paid traffic estimate, keyword count, backlink count, and rank distribution for a domain.
search_locationsSearch countries and cities by name. Useful for resolving a city name to its DataForSEO location code.
create_projectCreate a new VibeSEO project for a domain.
get_publicationRead a single publication snapshot including daily impression/click signals.
gsc_summaryAggregate GSC performance for the project over a window: clicks, impressions, CTR, avg position, deltas vs previous period.
comparison_keywordsComparison-style suggestions ("X vs Y", "X alternative", ...) for a seed keyword.
list_postsList posts for a project. Filter by status: Idea, Drafting, Ready, Approved, Published.
generate_postTrigger AI draft generation for a scheduled Idea or Drafting post. Returns the post ID.
get_postRead a single post (markdown body, FAQ, internal links, SEO score, status, schedule).
preposition_keywords_batchBulk preposition-style suggestions for 1 to 5 seed keywords per call. MAX 5: sending more returns a 400 validation error β€” split larger lists across multiple calls.
list_crawled_pagesTop crawled pages from the project's most recent completed audit (URL, title, meta, word count). Useful for fact-checking and finding internal-link targets.
refresh_ideasReplace existing Idea-status posts with a fresh strategist-generated batch. Drafting/Ready/Approved/Published posts are untouched.
backlink_referring_domainsPaginated list of domains linking to the target.
create_publishing_targetAdd a new publishing target (Subdomain or CustomDomain).
competitive_overviewSide-by-side metrics for a primary domain and its competitors: traffic, keywords, backlinks, common keywords, gap size, monthly trend.