ChimpanSEO
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Generate GEO/AEO-optimized articles and publish them to WordPress from your AI agent.
| Author | app.chimpanseo |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2328 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ChimpanSEO": {
"url": "https://chimpanseo.app/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
list_sitesread-onlyList the WordPress/Framer/Webflow sites connected to this ChimpanSEO account, with id, name, url, platform and language.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_usageread-onlyCheck 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_articlesread-onlyList the most recent articles generated on this account, with title, status, site and link.
Parameters:
limit— integer — Max number of articles to return
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_articleread-onlyFetch 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).
Parameters:
articleId(required) — string — The article id, from list_articles, generate_article or get_generation_status
Hints: read-only yes · destructive no · idempotent yes · open-world no
suggest_topicsread-onlyGenerates 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.
Parameters:
siteId(required) — string — Target site id (from list_sites) — determines language, tone, SEO tags and differentiators usedcount— integer — How many topic suggestions to generatecreativity— integer — 0 = safe/proven angles, 100 = more experimental angles
Hints: read-only yes · destructive no · idempotent no · open-world no
list_scheduled_articlesread-onlyList 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.
Parameters:
limit— integersiteId— string — Filter to one site's slots only
Hints: read-only yes · destructive no · idempotent yes · open-world no
audit_siteread-onlyFetches 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.
Parameters:
siteId(required) — string — Site id, from list_sites
Hints: read-only yes · destructive no · idempotent yes · open-world yes
generate_articleStarts 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.)
Parameters:
topic(required) — string — The article topic or working titlesiteId— string — Target site id (from list_sites) — determines language, tone and SEO tags used
Hints: read-only no · destructive no · idempotent no · open-world no
get_generation_statusread-onlyPoll 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).
Parameters:
jobId(required) — string — The jobId returned by generate_article
Hints: read-only yes · destructive no · idempotent yes · open-world no
refresh_articledestructiveRewrites 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.
Parameters:
articleId(required) — string — The article id to refresh, from list_articles
Hints: read-only no · destructive yes · idempotent no · open-world yes
publish_articledestructivePublish (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.
Parameters:
articleId(required) — string — The article id, from generate_article or list_articlessiteId(required) — string — The WordPress site id to publish tostatus— string
Hints: read-only no · destructive yes · idempotent yes · open-world yes
schedule_articleSchedule 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.
Parameters:
topic(required) — stringsiteId(required) — stringscheduledFor(required) — string — ISO 8601 date-time in the future, e.g. 2026-08-01T09:00:00ZdualLanguage— boolean — Also publish an Italian translation alongside the originalpublishStatus— string
Hints: read-only no · destructive no · idempotent no · open-world no
cancel_scheduled_articledestructiveRemoves 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).
Parameters:
scheduledArticleId(required) — string — The slot id, from list_scheduled_articles or schedule_article
Hints: read-only no · destructive yes · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.