MCP Integration
Connect Claude, ChatGPT, Cursor or any other Model Context Protocol client to BlogSEO, so your AI assistant can work directly in your account: read your articles and keywords, plan the calendar, run SEO checks and publish.
The Model Context Protocol (MCP) is the open standard AI assistants use to talk to external tools. BlogSEO exposes a remote MCP server, so there is nothing to install and no API key to copy: your assistant signs in as you through OAuth and acts with your own permissions.
You can ask it in plain language to:
- Review what is published, what is scheduled and what is out of sync with your CMS
- Research keywords, refresh their metrics and grow topic clusters
- Fill the content calendar, rewrite headlines and move articles around
- Rewrite an article with AI, fix its SEO score and publish it to your CMS
- Score any content, benchmark it against the pages ranking for a keyword and apply the fixes
- Check a domain's rating, its backlink profile or the keyword density of any page
- Read your rankings, clicks and impressions from Search Console
MCP is a data integration, not a publishing destination. It sits alongside whatever CMS you already use, so connecting it never replaces or disables your WordPress, Shopify, Webflow or webhook integration.
Before you start
You need a BlogSEO account with at least one website. Everything else is handled during the connection: your assistant registers itself, you sign in once, and you approve what it can reach.
The server is rolling out gradually. Until it is enabled for your account, every call answers "The MCP server is in private beta for your account". Ask support to be added.
Reading your data does not need an active subscription, so a lapsed plan still reads fine. A website that never completed checkout is refused, reads included. Actions gated behind a subscription in the app stay gated here.
Server URL
The server URL is the same for every client:
https://mcp.blogseo.io/mcp
The server uses the streamable HTTP transport and OAuth 2.1 with PKCE and dynamic client registration. Most clients configure themselves once you point them at that URL.
Connect your assistant
| Client | How to add it |
|---|---|
| Claude (web, desktop, mobile) | Settings → Connectors → Add custom connector |
| Claude Code | claude mcp add --transport http blogseo https://mcp.blogseo.io/mcp |
| ChatGPT | Settings → Connectors → Create (developer mode) |
| Cursor | .cursor/mcp.json entry, or Settings → Tools & Integrations |
| VS Code (Copilot) | code --add-mcp "{\"name\":\"blogseo\",\"type\":\"http\",\"url\":\"https://mcp.blogseo.io/mcp\"}" |
| Codex CLI | codex mcp add blogseo --url https://mcp.blogseo.io/mcp |
| Gemini CLI | gemini mcp add --transport http blogseo https://mcp.blogseo.io/mcp |
| Windsurf | mcp_config.json entry |
Details for each client are below. The last step is the same everywhere: a browser window opens, you sign in to BlogSEO, and you approve the access request.
Claude (web, desktop and mobile)
- Open Settings, then Connectors, then Add custom connector.
- Enter the name
BlogSEOand the URLhttps://mcp.blogseo.io/mcp, then save. - Click Connect, sign in to BlogSEO, and approve the access request.
Claude Desktop cannot reach remote MCP servers through claude_desktop_config.json. Add BlogSEO
through Connectors instead. The connector then works in Claude on the web, on desktop and on mobile.
Claude Code
claude mcp add --transport http blogseo https://mcp.blogseo.io/mcp
Then type /mcp, choose to authenticate, and approve the access request in the browser window that opens. Tools appear as mcp__blogseo__*.
ChatGPT
- Open Settings, then Connectors, then Advanced settings, and turn on Developer mode.
- Back in Connectors, click Create.
- Enter the name
BlogSEO, the MCP server URLhttps://mcp.blogseo.io/mcp, and pick OAuth authentication. - Sign in to BlogSEO and approve the access request. The connector then shows up in the composer's developer-mode tools.
Cursor
Add BlogSEO to your project's .cursor/mcp.json, or to the global one in ~/.cursor/mcp.json:
{
"mcpServers": {
"blogseo": {
"url": "https://mcp.blogseo.io/mcp"
}
}
}
Cursor then shows a Needs login prompt next to the server. Click it and approve the access request.
You can do the same from the UI: Settings, then Tools & Integrations, then Add custom MCP.
VS Code (GitHub Copilot)
code --add-mcp "{\"name\":\"blogseo\",\"type\":\"http\",\"url\":\"https://mcp.blogseo.io/mcp\"}"
Or add it to .vscode/mcp.json for a single workspace:
{
"servers": {
"blogseo": {
"type": "http",
"url": "https://mcp.blogseo.io/mcp"
}
}
}
Start the server from the MCP view in Copilot Chat and approve the access request.
Codex CLI
codex mcp add blogseo --url https://mcp.blogseo.io/mcp
codex mcp login blogseo
The login command opens your browser for the OAuth flow.
Gemini CLI
gemini mcp add --transport http blogseo https://mcp.blogseo.io/mcp
The browser opens for authorization the first time a BlogSEO tool is used.
Windsurf
Add BlogSEO to Windsurf's mcp_config.json, at ~/.codeium/windsurf/mcp_config.json (create it if it is missing). Windsurf uses serverUrl rather than url:
{
"mcpServers": {
"blogseo": {
"serverUrl": "https://mcp.blogseo.io/mcp"
}
}
}
Any other client
Point it at https://mcp.blogseo.io/mcp over the streamable HTTP transport and let it run the OAuth flow. Clients that support dynamic client registration need no further configuration.
Your first conversation
Ask your assistant to read your account:
list my BlogSEO websites and how many credits I have
That calls get_account, which returns your websites, your role on each of them, your credit balances and your plan. It is the quickest way to confirm the connection works.
After that, plain requests are enough:
what did we publish last month, and is anything out of sync with WordPress?
Choosing the website
If your organization has a single website, every action targets it automatically. If you have several, ask the assistant to list them first, or name the site in your request:
schedule three articles about winter tyres on example.com next week
Each action takes a website_id, and the assistant can only reach websites you are a member of.
What your assistant can do
BlogSEO exposes 45 tools. Your assistant picks them from what you ask, so you never have to name one. Costs are in AI brain credits and match the app.
Account
| Tool | Cost | What it does |
|---|---|---|
get_account | Free | Lists your websites with their role, credit balances and plan. The recommended first call. |
get_credit_balance | Free | AI brain credits, article credits and backlink credits of one website. |
Articles
| Tool | Cost | What it does |
|---|---|---|
list_articles | Free | Lists generated articles with status and target keyword, filterable by search, status and date. |
get_article | Free | One article with its metadata, translations and optionally its full body. |
update_article_headline | Free | Renames an article or one of its translations. |
update_article_meta_description | Free | Rewrites the SEO meta description. |
update_article_slug | Free | Changes the URL slug. |
edit_article_with_ai | 1 credit per language | Rewrites the body with AI following your instructions. |
batch_edit_articles_with_ai | 1 credit per article | Queues the same AI rewrite across up to 50 articles. |
publish_article | Free | Queues an article for publishing to a connected integration. |
sync_article_to_cms | Free | Pushes current content to your CMS, clearing the Out of Sync state. |
Content calendar
| Tool | Cost | What it does |
|---|---|---|
list_scheduled_articles | Free | The upcoming calendar, one row per day slot. |
schedule_article | Free | Adds a custom article on a given date. Consumes 1 article credit when it is generated. |
update_scheduled_article | Free | Edits the headline, brief, keyword or products of a pending article. |
reschedule_article | Free | Moves an article to another date, optionally swapping with the article already there. |
delete_scheduled_article | Free | Removes a pending article from the calendar. |
suggest_headline | Free | Asks the AI for an alternative headline without saving it. |
regenerate_headlines | Free | Queues a rewrite of every upcoming automatically planned headline. |
Keywords
| Tool | Cost | What it does |
|---|---|---|
list_keywords | Free | Tracked keywords with volume, difficulty, CPC, opportunity and intent. |
get_keyword | Free | One keyword with 90 days of position history and the articles targeting it. |
get_keyword_rankings | Free | Rank tracking from Search Console: position, ranking page, clicks and impressions per keyword. |
research_keywords | 1 credit | Adds keywords from up to 20 seeds, optionally expanding them into related ideas. |
refresh_keyword_metrics | 1 credit | Re-fetches metrics for one keyword plus up to 49 companions. |
expand_keyword_cluster | 1 credit | Grows a topic cluster with semantically related ideas. |
schedule_articles_for_keywords | Free | Queues one article per keyword in the calendar. |
set_keyword_favorite | Free | Stars or unstars a keyword. |
delete_keywords | Free | Permanently deletes keywords. Refused when an article already targets one. |
SEO analysis
| Tool | Cost | What it does |
|---|---|---|
check_article_seo_score | Free | The on-page score of one of your articles, with every failing check and how to fix it. |
check_seo_score | Free | The same score for any content you paste, even from a site that is not in BlogSEO. |
run_advanced_seo_check | 1 credit | Benchmarks one of your articles against the pages ranking for its keyword. Runs in the background. |
get_advanced_seo_report | Free | Reads the stored competitor analysis: gaps, strengths, recommendations and recommended keywords. |
run_advanced_seo_check_for_content | 1 credit | The same competitor benchmark for content you paste, returned in the same call. Takes 1 to 3 minutes. |
improve_article_seo | 1 credit | Rewrites one of your articles to fix its failing checks, like the Improve with AI button. |
improve_content_seo | 1 credit | Returns an SEO-improved version of content you paste, without saving anything. |
Free SEO tools
| Tool | Cost | What it does |
|---|---|---|
check_domain_rating | Free | The Ahrefs Domain Rating of any domain. |
check_keyword_density | Free | Keyword density of any public page URL or block of text, with the top phrases. |
check_backlinks | 1 credit | The backlink profile of any domain: referring domains, anchors, top links and Domain Rating. |
Settings, integrations and backlinks
| Tool | Cost | What it does |
|---|---|---|
get_website_settings | Free | Your website configuration, grouped like the settings tabs. |
update_general_settings | Free | Sitemap URL, automatic scheduling, publishing time and timezone. |
update_content_settings | Free | Default language, audiences, offer summary and writing instructions. |
update_image_settings | Free | Image styles, brand color and image instructions. |
update_competitors | Free | The competitor list used for tracking and analysis. |
list_integrations | Free | Connected CMS, e-commerce and webhook integrations, plus Search Console. |
get_backlinks_overview | Free | Domain Rating, backlink credits and the backlinks you received. |
convert_credits_to_backlink_credits | 1 to 100 credits | Converts AI brain credits into backlink credits, 5 backlink credits per AI brain credit. Irreversible. |
Example prompts
What to ask once BlogSEO is connected.
Reviewing your content
- "How many articles are scheduled for next month?"
- "Show me everything published this quarter that targets a keyword we rank below position 10 for"
- "Which articles are out of sync with my CMS?"
- "Read me the intro of the article about winter tyres"
Planning the calendar
- "Fill next week with articles about e-bike maintenance"
- "Move Thursday's article to the following Monday"
- "Suggest a better headline for the article scheduled on the 12th"
- "Schedule one article for each of my five favorite keywords"
Keyword work
- "Research keywords around cold email deliverability"
- "Which of my keywords gained positions in the last 30 days, and which page ranks for each?"
- "Expand the cluster around indoor cycling into related ideas"
- "Refresh the metrics for my top 20 keywords"
Improving articles
- "Score my article about hydraulic brakes and tell me what is failing"
- "Fix the failing SEO checks on that article"
- "Rewrite the meta description of the last three published articles so they mention the brand"
- "Here is a draft from our newsletter: score it and give me an SEO-optimized version"
Publishing
- "Publish the article about tubeless tyres to WordPress"
- "Sync everything that is out of sync"
SEO research
- "What is the Domain Rating of competitor.com?"
- "Show me the backlink profile of competitor.com"
- "What is the keyword density of https://example.com/blog/post?"
Settings
- "Set the publishing time to 8am Paris time"
- "Add these three competitors to my website"
- "What writing instructions is my website using?"
Credits
Actions that spend AI brain credits cost what the same action costs in the app. Before running one, your assistant receives the price and your balance, and has to confirm with you:
You: research keywords around "cold email deliverability"
Assistant: This will use 1 AI brain credit and you have 31. Should I run it?
You: yes
Assistant: Added 24 keywords. 30 AI brain credits left.
Every credit-spending result ends with your remaining balance. Free actions never ask for confirmation.
A few specifics:
- Scheduling an article is free, but generating it later consumes 1 article credit, exactly as in the app.
check_backlinkscosts 1 credit per request, including when the profile comes from cache.improve_article_seoandedit_article_with_aicharge after the rewrite.improve_content_seoreturns the improved text without touching your saved article.- Batch actions charge per article, so ask for the count before confirming a large batch.
Permissions and security
- Your assistant acts as you, on the websites you are a member of. Actions that require an admin role in the app still require it here.
- Payment details, Stripe identifiers, API keys and integration tokens are never returned. Billing cannot be changed through MCP: no cancelling, no purchasing, no plan changes.
- The consent screen names the assistant, says where it will send you back, and lists the websites it can reach.
- Deleting a keyword that an article already targets is refused.
Managing connected assistants
Open Integrations, then MCP (AI assistants) in your dashboard, or Settings, then Security. Both list every connected assistant with the date it was connected, and let you revoke it.
Revoking takes effect immediately for new sessions. A session already in progress stops working within an hour.
Troubleshooting
The assistant says it cannot reach the server. Check the URL is exactly https://mcp.blogseo.io/mcp with no trailing slash, and that you completed the sign-in step.
The client shows "Needs login" or lists no tools. The OAuth flow was not finished. Click the login prompt (/mcp in Claude Code, the Needs login badge in Cursor, the MCP view in VS Code) and approve the request.
"Your account has N websites, pass website_id". The message lists every website with its id: name the site in your request.
"This feature needs an active subscription". The action is gated in the app too. Reading your data keeps working.
Tools stopped working after you revoked an assistant. That is expected. Reconnect it from your client to get a new grant.
Actions time out on long rewrites. AI rewrites and competitor benchmarks take one to three minutes. Some clients give up sooner; ask the assistant to retry, or use the background variants (run_advanced_seo_check then get_advanced_seo_report).