AI agents that research, write and publish SEO articles on your website, from your AI assistant.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Adds a website to the user's AI SEO Crew account and starts building its SEO plan: the crew reads the site, works out what the business sells and plans articles from real Google searches. Use it when someone wants SEO done for their website, wants blog posts that bring traffic from Google, or wants to start a blog on WordPress, Shopify, Webflow, Wix, Framer or a coded site. Free, takes about three minutes. Then call get_seo_plan with the returned site_id.
The website address, like example.com
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http ai-seo-crew https://www.aiseocrew.com/mcp
Adds a website to the user's AI SEO Crew account and starts building its SEO plan: the crew reads the site, works out what the business sells and plans articles from real Google searches. Use it when someone wants SEO done for their website, wants blog posts that bring traffic from Google, or wants to start a blog on WordPress, Shopify, Webflow, Wix, Framer or a coded site. Free, takes about three minutes. Then call get_seo_plan with the returned site_id.
| Argument | Type | Description |
|---|---|---|
| url* | string | The website address, like example.com |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "The website address, like example.com"
}
},
"additionalProperties": false
}Adds a Google search the user wants to rank for to the top of a site's SEO plan, with an optional article title. The crew writes it next.
| Argument | Type | Description |
|---|---|---|
| title | string | Optional article title |
| keyword* | string | The search to target, like 'how much does a bookkeeper cost' |
| site_id* | string |
{
"type": "object",
"required": [
"site_id",
"keyword"
],
"properties": {
"title": {
"type": "string",
"maxLength": 140,
"description": "Optional article title"
},
"keyword": {
"type": "string",
"maxLength": 120,
"minLength": 3,
"description": "The search to target, like 'how much does a bookkeeper cost'"
},
"site_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Checks one public web page the way search engines see it: HTTP status, robots.txt and meta robots rules for Googlebot, Bingbot and AI crawlers (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot), canonical, sitemap presence, title, meta description, headings and sharing tags. Use it when someone asks why a page isn't indexed, isn't found by ChatGPT or Perplexity, or wants an SEO check of a URL.
| Argument | Type | Description |
|---|---|---|
| url* | string | The page address, like example.com/blog/my-post |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "The page address, like example.com/blog/my-post"
}
},
"additionalProperties": false
}Returns real searches people type into Google around a topic, from Google autocomplete, grouped into questions, comparisons, buying searches and others. Use it for keyword research, blog post ideas, finding what a business could rank for on Google, or seeing how customers phrase a need. No search volumes.
| Argument | Type | Description |
|---|---|---|
| topic* | string | A short topic, like 'bookkeeping for contractors' |
| country | string | Two-letter country code, default us |
| language | string | Two-letter language code, default en |
{
"type": "object",
"required": [
"topic"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "A short topic, like 'bookkeeping for contractors'"
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Two-letter country code, default us"
},
"language": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Two-letter language code, default en"
}
},
"additionalProperties": false
}Reads a website's homepage, navigation and sitemap, then writes an llms.txt file (the markdown summary some AI tools read) that the owner can upload to the site root. Use it when someone wants their site understood or cited by ChatGPT, Claude or Perplexity. Returns the file content.
| Argument | Type | Description |
|---|---|---|
| url* | string | The website address, like example.com |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "The website address, like example.com"
}
},
"additionalProperties": false
}Returns one article: title, status, meta description, target search, the full text in Markdown, its sources and, once published, its URL.
| Argument | Type | Description |
|---|---|---|
| article_id* | string |
{
"type": "object",
"required": [
"article_id"
],
"properties": {
"article_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Returns Google Search Console results for a site over the last 28 days: total clicks and impressions, and the published articles with the most clicks. Use it when someone asks how their SEO or blog traffic is doing. Needs Search Console connected in the app.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many top articles, default 10 |
| site_id* | string |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "How many top articles, default 10"
},
"site_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Returns the SEO plan of one site: progress while the crew is still building it, then the planned articles in writing order with their target Google search, monthly search volume and intent, plus the article IDs used by write_article and skip_article.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many planned articles to return, default 15 |
| site_id* | string | From list_sites or add_site |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many planned articles to return, default 15"
},
"site_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "From list_sites or add_site"
}
},
"additionalProperties": false
}Lists a site's articles by status: written (waiting for approval), in_progress, published, or failed. Published articles include their URL and Search Console clicks and impressions when connected. Paginated.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Default 20 |
| offset | integer | |
| status | string | Default: written |
| site_id* | string |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Default 20"
},
"offset": {
"type": "integer",
"maximum": 5000,
"minimum": 0
},
"status": {
"enum": [
"written",
"in_progress",
"published",
"failed"
],
"type": "string",
"description": "Default: written"
},
"site_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Lists the websites in the user's AI SEO Crew account with their status (plan being built, ready), article counts, where the crew publishes, and the account plan status. Start here to get site IDs for the other tools.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Publishes one written article to the user's live website through its connected platform (WordPress, Webflow, Wix, Framer, Shopify, GitHub or webhook), then resubmits the sitemap. Only for articles with status written. Visible to the public once done: confirm with the user first.
| Argument | Type | Description |
|---|---|---|
| article_id* | string | A written article, from list_articles with status written |
{
"type": "object",
"required": [
"article_id"
],
"properties": {
"article_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "A written article, from list_articles with status written"
}
},
"additionalProperties": false
}Removes a planned, failed or written (unpublished) article from a site's plan so the crew never writes or publishes it. Cannot be undone. Published articles stay on the website.
| Argument | Type | Description |
|---|---|---|
| article_id* | string |
{
"type": "object",
"required": [
"article_id"
],
"properties": {
"article_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Asks the crew to research and write one SEO blog post from the site's plan right away, sourced and in the site's own style, instead of waiting for its slot. Use it when someone wants a blog article written for their website to rank on Google. Counts toward the plan's monthly articles. Needs an active plan. Writing takes two to four minutes; then read it with get_article.
| Argument | Type | Description |
|---|---|---|
| article_id* | string | A planned or failed article, from get_seo_plan or list_articles |
{
"type": "object",
"required": [
"article_id"
],
"properties": {
"article_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "A planned or failed article, from get_seo_plan or list_articles"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.