ChimpanSEO
Generate GEO/AEO-optimized articles and publish them to WordPress from your AI agent.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"chimpanseo": {
"url": "https://chimpanseo.app/api/mcp"
}
}
}Remote-Endpunkte
https://chimpanseo.app/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢list_sites
List the WordPress/Framer/Webflow sites connected to this ChimpanSEO account, with id, name, url, platform and language.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_usage
Check the current plan, monthly article limit, articles used this month and articles remaining — call this before generating to use the quota consciously instead of guessing.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_articles(limit)
List the most recent articles generated on this account, with title, status, site and link.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"default": 10,
"description": "Max number of articles to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_article(articleId)
Fetch one article's full HTML content and metadata by id — list_articles deliberately omits content to stay compact, use this to actually read what was generated (e.g. after generate_article or refresh_article, or before deciding whether to publish it).
Eingabe-Schema
{
"type": "object",
"properties": {
"articleId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The article id, from list_articles, generate_article or get_generation_status"
}
},
"required": [
"articleId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢suggest_topics(siteId, count, creativity)
Generates topic suggestions for a site's next articles, using the same logic as the dashboard's topic generator — biased toward an experiment/case-study angle for a share of the results, and informed by the site's differentiators if set, rather than generic keyword-chasing titles. Fast (a few seconds, not a background job) — use this before generate_article or schedule_article instead of inventing topics yourself.
Eingabe-Schema
{
"type": "object",
"properties": {
"siteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Target site id (from list_sites) — determines language, tone, SEO tags and differentiators used"
},
"count": {
"default": 5,
"description": "How many topic suggestions to generate",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"creativity": {
"default": 50,
"description": "0 = safe/proven angles, 100 = more experimental angles",
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"siteId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_scheduled_articles(siteId, limit)
List scheduled_article slots (past and future) — topic, target date, status, site. Use this before schedule_article to see what's already queued and avoid duplicating dates/topics.
Eingabe-Schema
{
"type": "object",
"properties": {
"siteId": {
"description": "Filter to one site's slots only",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢audit_site(siteId)
Fetches the site's homepage and checks the on-page technical SEO factors that matter for both Google and AI citation — title/meta tags, canonical, H1, mobile viewport, HTTPS, Open Graph, JSON-LD structured data, image alt coverage, indexability, response time. Each finding includes a concrete tip, not just pass/fail. Fast (a few seconds) — no background job needed.
Eingabe-Schema
{
"type": "object",
"properties": {
"siteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Site id, from list_sites"
}
},
"required": [
"siteId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡generate_article(topic, siteId)
Starts generating a new SEO/GEO-optimized article via AI for a given topic and site. Counts against the account's monthly article quota, same as generating from the dashboard. Does NOT publish it — call publish_article separately once you're happy with it. ASYNC: this returns a jobId immediately, it does NOT wait for the article. Generation typically takes 1-6 minutes (reasoning model, non-streaming) — poll get_generation_status with the returned jobId every ~15-20s until status is "ready" or "error". (Older integrations that awaited this call directly would hit their own client's default request timeout, typically 60s, long before generation finished — this is why it's async now.)
Eingabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"minLength": 3,
"description": "The article topic or working title"
},
"siteId": {
"description": "Target site id (from list_sites) — determines language, tone and SEO tags used",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"topic"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_generation_status(jobId)
Poll the status of a generate_article or refresh_article call by jobId. Returns status: "pending" (still working), "ready" (done — includes articleId, title, excerpt, charCount), or "error" (includes the error message).
Eingabe-Schema
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The jobId returned by generate_article"
}
},
"required": [
"jobId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴refresh_article(articleId)
Rewrites an existing article to be current and more SEO/AEO-optimized — updates dates/stats/examples, improves headings, adds a FAQ section, adds 300+ words. Same action as the dashboard's "Migliora & aggiorna" button. If the article is already published to WordPress, the refreshed version is automatically re-published there too (title and WordPress status unchanged); otherwise only ChimpanSEO's own copy is updated. ASYNC: returns a jobId immediately — poll get_generation_status with it, typically ready in 1-4 minutes.
Eingabe-Schema
{
"type": "object",
"properties": {
"articleId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The article id to refresh, from list_articles"
}
},
"required": [
"articleId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴publish_article(articleId, siteId, status)
Publish (or save as draft) a previously generated article to its WordPress site. Only works for WordPress sites — Framer/Webflow sites are copy-paste only (Beta) and are not supported here.
Eingabe-Schema
{
"type": "object",
"properties": {
"articleId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The article id, from generate_article or list_articles"
},
"siteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The WordPress site id to publish to"
},
"status": {
"default": "publish",
"type": "string",
"enum": [
"draft",
"publish"
]
}
},
"required": [
"articleId",
"siteId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪schedule_article(topic, siteId, scheduledFor, publishStatus, dualLanguage)
Schedule a topic to be generated and auto-published at a future date/time on a WordPress site — the same editorial calendar the dashboard uses. Requires a plan with scheduling enabled.
Eingabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"minLength": 3
},
"siteId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"scheduledFor": {
"type": "string",
"description": "ISO 8601 date-time in the future, e.g. 2026-08-01T09:00:00Z"
},
"publishStatus": {
"default": "publish",
"type": "string",
"enum": [
"draft",
"publish"
]
},
"dualLanguage": {
"default": false,
"description": "Also publish an Italian translation alongside the original",
"type": "boolean"
}
},
"required": [
"topic",
"siteId",
"scheduledFor"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_scheduled_article(scheduledArticleId)
Removes a slot from the editorial calendar, from list_scheduled_articles. Same as deleting it from the dashboard calendar — works regardless of the slot's current status, so double-check it hasn't already published if that matters (see list_scheduled_articles' wp_post_id/article_id fields).
Eingabe-Schema
{
"type": "object",
"properties": {
"scheduledArticleId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The slot id, from list_scheduled_articles or schedule_article"
}
},
"required": [
"scheduledArticleId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis