AI-powered WordPress content studio: keyword research, SE Rankings tracking, AI article writing with SEO optimization, and one-click publishing to WordPress.
Every capability exposed by Article Writer, metered per action and guarded by the two-step safety protocol.
create_projectwriteCreate a new project - a container for one site's context: keywords, brand voice, useful links, socials. Use for: add a new site/project, start tracking a new website.
list_projectsreadList all projects (sites) - id, name, site url, keywords. Use for: list my projects, what sites do I have.
update_project_contextwriteUpdate a project's context - any of: name, site url, description, keywords, useful links, social links, brand voice. Only send fields that changed. Use for: add keywords to project, update brand voice, add a useful link.
delete_projectdestructivePermanently delete a project and ALL its articles. Use for: delete this project, remove site.
open_projectwritePANEL-ONLY: switch the currently-open project (sidebar detail + workspace board). Not for chat use - this is pure UI navigation state, nothing about the project itself changes.
add_reference_linkwriteAdd ONE internal page of THIS project's own site as a reference link the article writer may link to, with a short description of what that page is about (its topic / target keyword). The writer uses the description to weave a natural, in-sentence anchor when it links to the page - give a real topic, never just the brand name. Good sources to collect from: the site's top pages in Google Search Console, its tracked pages in SE Ranking, or its sitemap. Use for: add an internal link for the writer, register a page for interlinking.
list_reference_linksreadList the internal reference links saved on a project (url + description) that the article writer is allowed to link to. Use for: list reference links, what internal links can the writer use.
remove_reference_linkdestructiveRemove ONE internal reference link from a project by its URL. Use for: remove a reference link, delete an internal link.
create_articlewriteCreate a new article shell under a project - just a title/keyword placeholder, no content yet. Use for: add an article idea. Follow up with generate_article to actually write it.
list_articlesreadList articles (metadata only - id, title, status, word count, SEO flags - never the full text). Optionally filter by project or status. Use for: list articles, what's in review, show idea/writing/review/published articles.
update_article_statuswriteMove an article to a new status: idea, writing, review, draft, or published. Use for: mark as review, move to writing, set to draft, mark as published.
update_article_metawriteFix an article's SEO metadata - title, meta_description, and/or target_keyword - WITHOUT touching the article body/sections. This is the only way to clear a meta_description SEO flag (e.g. 'length outside 70-165') or correct the target keyword after generation. Use for: fix the meta description, update SEO title/keyword. To rewrite actual body text, use patch_article instead.
save_article_sectionwriteDirectly overwrite one section's heading/content with EXACT text you were given - a raw manual save, NOT an AI writing step (it skips grounding/review entirely). Use only when the user pastes/dictates exact text to store verbatim. To actually WRITE or improve an article, use generate_article or patch_article instead.
save_full_articlewritePANEL-ONLY: replace the entire article from the panel's single merged editor. The leading <h1> is the title; everything after it splits into sections at heading boundaries. Persists BOTH the title and the body in one save - this is the one path that lets the title or a section be edited/added/removed/reordered by editing the document directly. Not for chat use - Webbee should use generate_article or patch_article to write content.
delete_articledestructivePermanently delete an article. Use for: delete this article.
export_article_textreadGet the FULL article body - both as HTML (`html`: <h2>/<strong>/<ul> markup) and plain text (`text`) - so it can be handed to another extension or the user: sending it by email, saving it to a note, pasting it elsewhere. Use `html` with Mail's send()/reply() (is_html=true) or Notes' create_note content for real formatting; use `text` for a plain fallback. ONLY call this when the user explicitly asks to send/export/copy the article somewhere. Never call this for routine status checks, listing, or quality review - use list_articles for those, which stays cheap on purpose.
generate_articlewriteStart writing an article's first draft using the project's context plus a brief and any real source facts (from web search or other extensions) it must be grounded in. Runs in the background - it does not block. To see when it's done, call list_articles(status='review') a bit later: an article's status lands on 'review' the moment its draft is ready, so that one call shows everything that finished - no job_id tracking needed. Use for: write the article, draft this article.
patch_articlewriteRewrite ONE part of an article by natural-language instruction (e.g. 'rewrite the paragraph about delivery', 'make the intro punchier'). Locates the right section automatically, edits just that section, and recomputes word count/SEO flags - never touches the rest of the article. Returns a short preview, not the full body. Use for: rewrite the section about X, fix the intro, tighten the conclusion.
read_full_articlereadRead the ENTIRE article body as editable Markdown (# title, ## section headings, body in light markdown). Returns the full text to chat on purpose - call this before editing so you work from the real current text, never from memory. (To hand an article to another app like Mail/Notes, use export_article_text instead.) Use for: read the whole article.
edit_full_articlewriteReplace the ENTIRE article with your edited version as Markdown (# title, ## headings, body). Stores EXACTLY what you submit - nothing is re-generated - so first read_full_article, change only what's needed, and resend the COMPLETE text with every unchanged part preserved verbatim. For a small targeted change prefer patch_article. Use for: edit the article.
configure_blog_targetwriteConfigure and connect any blog or CMS endpoint (Strapi v4/v5, WordPress, Ghost, Webflow, or any custom REST endpoint) so articles can be published directly from Article Writer as draft preview links or live published posts, and toggled between published and draft. Use for: connect blog endpoint, add CMS settings, set up Strapi / custom endpoint for publishing articles.
list_blog_targetsreadList configured blog / CMS publishing endpoints (optionally filtered by project_id). Use for: show connected blogs, list publishing endpoints, check blog settings.
update_blog_targetwriteUpdate an existing blog / CMS endpoint configuration (URL, adapter_type, credentials, field_mapping, status_mapping, URL patterns, or default flag). Use for: change blog endpoint URL, update API token, customize field/status mapping.
delete_blog_targetdestructiveDelete a configured blog / CMS publishing endpoint.
test_blog_target_connectionreadTest connectivity and authentication against a configured blog / CMS endpoint. Use for: test blog connection, verify CMS token/endpoint.
publish_article_to_blogwritePublish or stage an article to a configured blog/CMS endpoint (or update its remote publication mode between 'draft' and 'publish'). Supports mode='draft' (creates/updates a remote draft preview link and sets article status to 'draft') and mode='publish' (publishes live and sets article status to 'published'). If the article was already published, calling with mode='draft' unpublishes it back to draft on the remote endpoint. Use for: publish article to blog, deploy article as draft link, unpublish article to draft, push article to CMS.
get_blog_categoriesreadFetch and list existing blog categories from a connected blog / CMS endpoint (auto-discovers categories from live CMS posts/taxonomies and returns the list of valid category slugs/names so articles can be assigned to existing categories). Use for: list blog categories, check existing categories in blog, sync blog categories.
More extensions in Productivity ready to enable in one click.
Enable Article Writer in your Imperal workspace in one click - 10,000 free starter credits included.