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.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| 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. |
| list_languages | List supported languages (language code + display name). |
| list_publications | List published article snapshots (read-only history) for the project, with traffic signals. |
| gsc_query_details | GSC performance for a specific list of queries. |
| list_domain_history | Return the calling user's recent domain search history. |
| keyword_gap | Keywords the competitor ranks for that the primary domain doesn't (highest-opportunity gap targets), or common keywords. Returns { totalCount, items }. |
| list_audit_issues | Filtered list of issues from an audit. Filter by category (on-page, technical, content, performance, ...) or severity (critical, warning, info). |
| autocomplete_keywords_batch | Bulk 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_keywords | Google-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_keywords | Question-format suggestions (what/how/why/when/...) for a seed keyword. Useful for FAQ and informational content. |
| comparison_keywords_batch | Bulk 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_history | Clear the calling user's domain search history. |
| gsc_top_queries | Top search queries from GSC for a project. |
| domain_traffic_history | Monthly organic traffic history for a domain. |
| reject_post | Reject a Ready post: clears the body and returns it to Drafting with the reason recorded. |
| gsc_status | GSC connection status for a project: connected/pending/invalid, bound site, last sync time. |
| list_competitors | List the project's tracked competitors. |
| backlink_history | Historical backlink count trend for the domain. |
| refill_queue | Append new Idea-status posts to the queue (additive β does not touch existing posts). |
| list_audits_for_project | All audits previously run for a project, newest first. |
| list_gsc_sites | List Google Search Console sites accessible via a previously-connected GSC connection. |
| get_audit_summary | Condensed audit scorecard: category breakdown, top recurring rule codes, average response time, indexable pages percent. |
| get_project | Get a single project by ID. |
| list_projects | List the calling user's VibeSEO projects. |
| get_audit | Audit metadata + summary scores by audit ID. |
| analyze_for_onboarding | Run the onboarding analyzer on a domain: surfaces opportunity gaps, audit issues, and competitor insights as initial recommendations. |
| update_project | Rename or change the domain of an existing project. |
| start_site_audit | Trigger a new site audit (crawl + on-page/technical analysis). Runs asynchronously; poll get_audit until status="completed". |
| clear_keyword_history | Clear the calling user's keyword search history. |
| question_keywords_batch | Bulk 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_pages | Top landing pages from GSC for a project. |
| domain_competitor_suggestions | Suggested competitor domains based on keyword overlap and similar audience. |
| backlink_anchors | Top anchor texts pointing at the domain. |
| delete_project | Delete a project. This action is irreversible. |
| get_keyword_metrics | KEYWORD 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_information | Run the AI strategist to propose site information values from the latest crawl. |
| get_keyword_metrics_batch | MAX 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_history | Return the calling user's recent keyword search history. |
| backlink_profile | Aggregate backlink profile for a domain: total backlinks, referring domains, spam score, broken links. |
| preposition_keywords | Suggestions containing prepositions (for/with/near/...) for a seed keyword. |
| schedule_post | Set or change the scheduled_for date on a post (Idea, Drafting, or Ready). |
| gsc_trend | Daily GSC trend (clicks, impressions, position) over a window. |
| approve_post | Approve a Ready post and queue it for publication at its scheduled time. |
| domain_overview | Authority, organic/paid traffic estimate, keyword count, backlink count, and rank distribution for a domain. |
| search_locations | Search countries and cities by name. Useful for resolving a city name to its DataForSEO location code. |
| create_project | Create a new VibeSEO project for a domain. |
| get_publication | Read a single publication snapshot including daily impression/click signals. |
| gsc_summary | Aggregate GSC performance for the project over a window: clicks, impressions, CTR, avg position, deltas vs previous period. |
| comparison_keywords | Comparison-style suggestions ("X vs Y", "X alternative", ...) for a seed keyword. |
| list_posts | List posts for a project. Filter by status: Idea, Drafting, Ready, Approved, Published. |
| generate_post | Trigger AI draft generation for a scheduled Idea or Drafting post. Returns the post ID. |
| get_post | Read a single post (markdown body, FAQ, internal links, SEO score, status, schedule). |
| preposition_keywords_batch | Bulk 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_pages | Top 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_ideas | Replace existing Idea-status posts with a fresh strategist-generated batch. Drafting/Ready/Approved/Published posts are untouched. |
| backlink_referring_domains | Paginated list of domains linking to the target. |
| create_publishing_target | Add a new publishing target (Subdomain or CustomDomain). |
| competitive_overview | Side-by-side metrics for a primary domain and its competitors: traffic, keywords, backlinks, common keywords, gap size, monthly trend. |