One-call project digest: article counts by lifecycle status, the REVIEW queue with word counts, posts published in the last 7 days, content plans due in the next 7 days, the latest published post, quota usage, the project's current autonomy level (L1 = nothing ships without agent review; L2 = clean articles auto-publish), the agent-memory index with note counts and recently updated titles, and — when Search Console is connected — which published posts Google has not indexed yet.
Parametersproject_id
list_projects
List Projects
List the MotiBlog projects permitted by the current credential. A project-restricted OAuth grant returns only the projects the human selected plus projects this agent created; an account-wide grant returns every project owned by the account. Includes settings that matter to agents and quota usage. Project credentials are never returned.
Takes no parameters.
create_project
Create Project
Create a new blog project for the authenticated account. The website must be reachable and the account must have an available project slot. A restricted OAuth grant automatically receives access to the project it creates. MotiBlog starts the initial analysis and content pipeline after creation. Setup and endpoint behavior: https://motiblog.ai/mcp.
Parametersurlrequirednamelanguagebanner_stylebanner_enabledblog_index_urlinternal_linksrequire_approvalmanual_positioning
get_project
Project Details
Get one MotiBlog project in detail: pipeline settings (language, internalLinks, banner), positioning inputs (businessProfile, productTruth, manualPositioning) and quota state.
Parametersproject_id
update_project
Update Project Settings
Update operational settings for an existing project: name/status, approval and auto-publish policy, writing model/language, fact checking, positioning, internal links, self-hosting, and banner configuration. Omitted fields stay unchanged.
Parametersnamestatuslanguageproject_idauto_publishbanner_stylebanner_configproduct_truthbanner_enabledblog_index_urlinternal_linksbusiness_profile+4 more
start_pipeline
Start Content Pipeline
Start the autonomous pipeline for a project: site crawl and analysis, topic selection, and article generation for scheduled plans. Returns immediately while processing continues asynchronously.
Parametersproject_id
get_pipeline_status
Pipeline Status
Get project setup/site-analysis pipeline state: whether a crawl/analysis run is active, its steps, and recent run history. This response does not include article-generation state or per-article phase telemetry.
Parametersproject_id
retry_pipeline
Retry Pipeline Run
Retry a failed pipeline run by id. The API starts a fresh run for the same owned project and returns immediately.
Parametersrun_idrequiredproject_id
suggest_topics
Suggest Topics
Suggest one specific, keyword-oriented blog topic and add it to the project content plan as a DRAFT entry. Draft plan entries do not trigger article generation.
Parameterstopicrequiredproject_id
list_content_plans
List Content Plans
List the content plan queue for a project with each entry status: DRAFT (proposed), APPROVED (cleared for generation), IN_PROGRESS, COMPLETED.
Parametersproject_id
approve_content_plan
Approve Content Plan
Approve a DRAFT content-plan entry so it becomes eligible for article generation by an on-demand or scheduled pipeline.
Parametersplan_idrequiredproject_id
regenerate_content_plan
Regenerate Content Plan
Rewrite a content-plan entry with AI, producing a new title, summary, and target keyword. Available only before an article has been generated from the entry.
Parametersplan_idrequiredproject_id
reschedule_content_plan
Reschedule Content Plan
Move a content-plan entry to a new ISO 8601 scheduled date.
Parametersplan_idrequiredproject_idscheduled_daterequired
create_content_plan
Create Content Plan
Add a fully authored content-plan entry with an exact title, target keyword, summary, content type, funnel stage, and date; the supplied fields are not AI-reinterpreted. Without scheduled_date, the entry is placed after the latest active plan. status=APPROVED makes it eligible for the daily scheduler; the default DRAFT status does not.
Parameterstitlerequiredstatussummaryproject_idcontent_typefunnel_stagescheduled_datetarget_keyword
update_content_plan
Update Content Plan
Edit the title, target keyword, summary, content type, funnel stage, scheduled date, or status of a DRAFT or APPROVED plan entry. DRAFT pauses scheduler eligibility without deleting the entry. IN_PROGRESS and COMPLETED entries are immutable records of generating or completed work.
Parameterstitlestatusplan_idrequiredsummaryproject_idcontent_typefunnel_stagescheduled_datetarget_keyword
bulk_reschedule_content_plans
Bulk Reschedule Content Plans
Move up to 100 plan entries to new dates in one transactional call — reorder a month of the calendar without N sequential reschedules. Every entry must name an active plan in the project; any miss fails the whole batch, so a partial reorder never ships.
Parametersentriesrequiredproject_id
delete_content_plan
Delete Content Plan
Soft-delete an ungenerated DRAFT or APPROVED content-plan entry, removing it from the plan list, calendar, digest, and daily scheduler while retaining it for restoration. SKIPPED or FAILED attempts do not block deletion; generating and completed entries cannot be deleted.
Parametersplan_idrequiredproject_id
restore_content_plan
Restore Content Plan
Restore a soft-deleted content-plan entry to the backlog with its prior status and scheduled date intact.
Parametersplan_idrequiredproject_id
list_deleted_content_plans
List Deleted Content Plans
List soft-deleted content-plan entries for a project, most recently deleted first, including the ids and state needed for audit or restoration.
Parametersproject_id
generate_article
Generate Article
Generate an article from an APPROVED content-plan entry through research, outline, draft, fact-check, polish, and scoring phases. Returns the article in GENERATING state while processing continues asynchronously. When the article allowance is used up it returns a structured article_allowance_exhausted error.
Parametersplan_idrequiredproject_id
get_calendar
Content Calendar
Get scheduled content-plan entries (with slim article previews) between two ISO dates, e.g. start_date=2026-09-01 end_date=2026-09-30.
Parametersend_daterequiredproject_idstart_daterequired
list_review_queue
Review Queue
List articles awaiting attention, filtered by status. Lifecycle: DRAFT → GENERATING → REVIEW → APPROVED → PUBLISHING → PUBLISHED (also FAILED, SKIPPED). Default status=REVIEW (needs human/agent approval); pass APPROVED to see what is cleared for publishing.
Parametersstatusproject_id
Get full article markdown plus an always-present qualityGate summary of the latest content, link, and final-review blockers. Also returns factCheckReport, topicGate, seoScore, and publishedUrl; SEO score never overrides blockers. include_logs=true appends raw phase telemetry.
Parametersarticle_idrequiredproject_idinclude_logs
update_article
Update Article
Edit an article by replacing markdown content, changing the title, metaDescription, or article-specific banner prompt, or moving its lifecycle status. Content edits can resolve fact-check flags before an article is moved to APPROVED or returned to DRAFT.
Parameterstitlestatuscontentarticle_idrequiredproject_idbanner_promptmeta_description
approve_publication
Approve & Publish
Approve an article through the governed publication gate. publish_now=true also triggers immediate publishing to enabled integrations or the self-hosted blog. Otherwise the article remains APPROVED for a scheduler, auto-publish policy, or later targeted publication.
Parametersarticle_idrequiredproject_idpublish_now
schedule_publication
Schedule Publication
Set or clear a per-article scheduled publish time. Pass exactly one of scheduled_for (an ISO datetime) or clear_schedule=true. Scheduled APPROVED articles are published automatically by the 15-minute scheduler when autoPublish is on.
Parametersarticle_idrequiredproject_idscheduled_forclear_schedule
regenerate_article
Regenerate Article
Wipe an article and rerun its entire research and generation pipeline from scratch. This replaces the full article rather than editing a passage or one section.
Parametersarticle_idrequiredproject_id
regenerate_chapter
Regenerate Chapter
Regenerate one chapter identified by a zero-based chapter_index while leaving all other article sections byte-identical.
Parametersarticle_idrequiredproject_idchapter_indexrequired
get_pipeline_logs
Pipeline Logs
Per-phase pipeline telemetry for one article: phase names, statuses, messages, token counts, and USD cost per phase. Diagnose FAILED articles or audit what the generator did.
Parametersarticle_idrequiredproject_id
get_article_feedback
Article Feedback
Aggregate reader feedback for one article: rating counts and average from the public rating widget, without individual comments.
Parametersarticle_idrequiredproject_id
list_refresh_suggestions
Refresh Suggestions
List content that may benefit from a refresh across all projects permitted by the current credential. source="article" identifies published articles with Search Console decay signals; source="external_page" identifies pre-existing customer CMS pages flagged after a near-duplicate draft, with the rationale in reason.
Takes no parameters.
dismiss_refresh_suggestion
Dismiss Refresh Suggestion
Dismiss an active refresh recommendation. article_id accepts a published article suggestion with source="article" or a pre-existing crawled-page suggestion with source="external_page".
Parametersarticle_idrequiredproject_id
generate_programmatic_articles
Generate Programmatic Articles
Bulk-generate up to 500 articles from structured rows and a title template such as "Best {{product}} for {{location}}". Creates approved plans and enqueues generation; the same article usage limits apply.
Parametersrowsrequiredproject_idschedule_fromkeyword_columntitle_templaterequired
rewrite_text
Rewrite Selected Text
Rewrite a selected passage with an inline AI action: improve, shorter, longer, grammar, active-voice, or add-example. Returns replacement text without modifying any stored article.
Parameterstextrequiredactionrequired
upload_article_banner
Upload Article Banner
Download a JPEG, PNG, or WebP from a public HTTPS URL (maximum 5MB), upload it to MotiBlog, and set it as an article banner. Replaces the current banner.
Parametersarticle_idrequiredproject_idsource_urlrequired
delete_article_banner
Delete Article Banner
Remove the current banner image from an article.
Parametersarticle_idrequiredproject_id
upload_image
Upload Content Image
Download a JPEG, PNG, or WebP from a public HTTPS URL (maximum 10MB) into MotiBlog storage and return its permanent URL for article content, author avatars, or banner references.
Parametersproject_idsource_urlrequired
get_banner_preview
Banner Preview State
Get the saved banner-style preview, prompt, and remaining lifetime preview allowance for a project.
Parametersproject_id
suggest_banner_prompt
Suggest Banner Prompt
Suggest a short visual prompt for a banner preview using the project niche and optional style preset. This does not generate an image or consume preview allowance.
Parametersproject_idstyle_preset
list_integrations
List Integrations
List configured publishing targets (integrations) for a project: WEBHOOK, WORDPRESS, GHOST, WEBFLOW, SHOPIFY, DEVTO, SANITY, CUSTOM_API — with enabled state.
Parametersproject_id
get_integration
Integration Details
Get one publishing integration and its enabled/last-used state. Stored provider credentials and config values are redacted from tool output.
Parametersproject_idintegration_idrequired
create_integration
Create Publishing Integration
Create any supported publishing target: WEBHOOK, WORDPRESS, WEBFLOW, CUSTOM_API, GHOST, SHOPIFY, DEVTO, or SANITY. Pass the provider-specific config object; credentials are accepted but never echoed by MCP read tools.
Parametersnamerequiredtyperequiredconfigrequiredenabledproject_id
update_integration
Update Publishing Integration
Edit a publishing target name, type, provider config/credentials, or enabled state. Omitted fields remain unchanged.
Parametersnametypeconfigenabledproject_idintegration_idrequired
delete_integration
Delete Publishing Integration
Permanently delete a publishing integration. Existing publish logs remain, but this target can no longer receive content.
Parametersproject_idintegration_idrequired
create_webhook_integration
Create Webhook Integration
Register a webhook publishing target: MotiBlog POSTs the published article JSON to your endpoint (signed with X-Signature: sha256=<HMAC(secret)> when secret is set). Config shape: { url, secret?, method? }. This is how an agent's own infrastructure receives content pushes. Setup and endpoint behavior: https://motiblog.ai/mcp.
Parametersurlrequirednamerequiredmethodsecretproject_id
test_integration
Test Integration
Test a publishing target connection. mode=ping (default) checks credentials/reachability only; mode=full creates a real draft test item on the target and does not delete it automatically.
Parametersmodeproject_idintegration_idrequired
publish_to_integration
Publish to CMS
Push an APPROVED article to one specific integration by enqueueing a publish job that transitions from APPROVED to PUBLISHING and then PUBLISHED. Publishing history records the result.
Parametersarticle_idrequiredproject_idintegration_idrequired
retry_publish
Retry Publish
Retry a failed publish attempt for an article/integration pair.
Parametersarticle_idrequiredproject_idintegration_idrequired
mark_integration_synced
Mark Integration Synced
Mark an article and integration pair as manually synced, creating an auditable synthetic success log for content that already exists at the target.
Parametersarticle_idrequiredproject_idintegration_idrequired
list_publish_logs
Publish Logs
Publishing history: SUCCESS/FAILED attempts with publishedUrl, provider error text and timestamps. Self-hosted publications are represented as synthetic SELF_HOSTED success records because they do not use an integration. Pass article_id for one article, or omit for the project.
Parameterslimitarticle_idproject_id
list_keywords
List Keywords
List tracked keywords for a project (search volume, difficulty, intent, status). Keywords drive topic relevance in generation.
Parametersproject_id
Track a new SEO keyword for a project so future topic suggestions/generation can target it. intent is one of INFORMATIONAL, NAVIGATIONAL, TRANSACTIONAL, COMMERCIAL.
Parametersintentkeywordrequireddifficultyproject_idsearch_volume
update_keyword
Update Keyword Status
Change a tracked keyword lifecycle status: DISCOVERED, APPROVED, REJECTED, or USED.
Parametersstatusrequiredkeyword_idrequiredproject_id
delete_keyword
Delete Keyword
Permanently remove a tracked keyword from the project.
Parameterskeyword_idrequiredproject_id
list_competitors
List Competitors
List the competitor domains tracked for a project, including overlap and domain-authority signals when available.
Parametersproject_id
add_competitor
Add Competitor
Add a competitor domain to a project so competitive analysis and content-gap planning can use it. Setup and endpoint behavior: https://motiblog.ai/mcp.
Parametersurldomainrequiredproject_id
delete_competitor
Delete Competitor
Permanently remove a competitor from the project.
Parametersproject_idcompetitor_idrequired
list_pillar_clusters
List Pillar Clusters
List pillar clusters with their pillar keyword, member keywords, content plans, article status, published URLs, and completion percentage.
Parametersproject_id
list_product_facts
List Product Facts
List the project proprietary facts — ground-truth statements about the product (features, pricing, integrations) injected into prompts and enforced by strict fact-checking.
Parametersproject_idactive_only
get_product_fact
Product Fact Details
Get one proprietary product fact by id.
Parametersfact_idrequiredproject_id
supply_product_fact
Supply Product Fact
Supply a ground-truth fact about the customer's product, or update one via fact_id. Strict fact-checking uses facts available before generation to verify claims. Example: fact='Acme integrates natively with Shopify since v2.3', category=['integrations'].
Parametersfactactivefact_idcategoryproject_id
delete_product_fact
Delete Product Fact
Permanently remove a proprietary product fact from generation context.
Parametersfact_idrequiredproject_id
list_notes
List Agent Notes
Index of this project's persistent agent notes across sessions and agent vendors. Returns key, title, kind, pinned flag, a short summary, and updatedAt for every note without returning note bodies.
Parametersproject_id
Read one agent note in full (markdown body) by its key.
Parameterskeyrequiredproject_id
Create or update a persistent project note by key for strategy, research findings, decisions and their reasons, or rejected approaches. Existing keys are updated instead of duplicated. pinned=true includes up to the five newest pinned notes, with dates, in content-planning context; dashboard settings take precedence on conflict. Limits: 200 notes per project and 50,000 characters per body. Setup and endpoint behavior: https://motiblog.ai/mcp.
Parameterskeyrequiredbodyrequiredkindtitlerequiredpinnedproject_id
delete_note
Delete Agent Note
Permanently delete one agent note by key. This is intended for notes that are incorrect or no longer needed.
Parameterskeyrequiredproject_id
search_notes
Search Agent Notes
Semantic search over a project's agent notes. Returns keys, titles, and 300-character excerpts ranked by similarity. Recently saved notes may not be searchable immediately because embedding is asynchronous.
Parameterslimitqueryrequiredproject_id
get_brand_voice
Brand Voice Profile
Get the computed brand-voice profile for a project: tone, style, vocabulary, cadence, and extraction metrics.
Parametersproject_id
get_brand_voice_preview
Brand Voice Draft Preview
Preview the exact brand-voice context that article generation would receive for a target keyword.
Parametersproject_idtarget_keyword
refresh_brand_voice
Refresh Brand Voice
Re-extract the project brand voice asynchronously from current source content. The updated profile becomes available after processing completes.
Parametersproject_id
List every author profile available to a project.
Parametersproject_id
Get one author profile with bio, avatar URL, and social links.
Parametersauthor_idrequiredproject_id
create_author
Create Author
Create an author profile for article attribution.
Parametersbionamerequiredavatar_urlproject_idsocial_links
update_author
Update Author
Edit an author name, bio, avatar URL, or social links.
Parametersbionameauthor_idrequiredavatar_urlproject_idsocial_links
delete_author
Delete Author
Permanently delete an author profile from the project.
Parametersauthor_idrequiredproject_id
get_content_source
Content Source Configuration
Get the sitemap, blog-root, or manual URL source used to discover pages for internal-link intelligence.
Parametersproject_id
update_content_source
Update Content Source
Set the discovery source for content intelligence: SITEMAP, BLOG_ROOT, or MANUAL, plus its URL. Setup and endpoint behavior: https://motiblog.ai/mcp.
Parametersurlrequiredproject_idsource_typerequired
detect_content_links
Detect Content Links
Discover or refresh pages from the configured sitemap/blog source for internal-link intelligence.
Parametersproject_id
list_content_pages
List Content Intelligence Pages
List pages discovered for content intelligence, optionally filtered by text search.
Parameterssearchproject_id
delete_content_page
Delete Content Intelligence Page
Remove one discovered page from content intelligence.
Parameterspage_idrequiredproject_id
get_content_stats
Content Intelligence Stats
Get content-intelligence page totals, classification counts, and embedding state.
Parametersproject_id
start_site_crawl
Start Site Crawl
Start website crawling. mode=initial runs the full initial analysis; recrawl refreshes pages without LLM analysis; full_reanalysis refreshes pages and reruns AI analysis.
Parametersmodeproject_id
get_crawl_status
Site Crawl Status
Get current crawl progress: phase, pages crawled, and total pages.
Parametersproject_id
list_crawled_pages
List Crawled Pages
List crawled website pages without their large full-content fields.
Parameterspagelimitproject_id
get_crawled_page
Crawled Page Details
Get one crawled page including its full extracted markdown content and link metadata.
Parameterspage_idrequiredproject_id
get_site_analysis
Site Analysis
Get site analysis: ICP, positioning, competitors, content gaps, opportunities, and keyword clusters.
Parametersproject_id
get_search_console_status
Search Console Status
Get Search Console connection, selected-property, and latest sync state for a project.
Parametersproject_id
connect_search_console
Connect Search Console
Start a Google Search Console connection and return an authUrl for the human account owner to complete Google consent.
Parametersproject_id
list_search_console_properties
List Search Console Properties
List Google Search Console properties accessible through the connected Google account.
Parametersproject_id
select_search_console_property
Select Search Console Property
Select which connected Search Console property belongs to this MotiBlog project.
Parameterssite_urlrequiredproject_id
disconnect_search_console
Disconnect Search Console
Disconnect Google Search Console from the project and remove its stored credentials.
Parametersproject_id
get_search_console_date_range
Search Console Date Range
Get the earliest and latest Search Console dates stored for this project.
Parametersproject_id
get_search_console_performance
Search Console Performance
Get Search Console performance totals and time series over an optional YYYY-MM-DD date range (defaults to the last 28 days).
Parametersend_dateproject_idstart_date
list_search_console_queries
List Search Console Queries
List Search Console queries with clicks, impressions, CTR, and position. Supports date range, sorting, pagination, and text search.
Parameterssortlimitorderoffsetsearchend_dateproject_idstart_date
list_search_console_pages
List Search Console Pages
List Search Console pages with clicks, impressions, CTR, and position. Supports date range, sorting, pagination, and text search.
Parameterssortlimitorderoffsetsearchend_dateproject_idstart_date
list_search_console_insights
List Search Console Insights
List Search Console insights, optionally filtered by insight type and status.
Parameterstypestatusproject_id
dismiss_search_console_insight
Dismiss Search Console Insight
Dismiss a Search Console insight so it leaves the active recommendation queue.
Parametersinsight_idrequiredproject_id
get_article_position_history
Article Position History
Get up to 90 days of Search Console ranking history for a published article.
Parametersdaysarticle_idrequiredproject_id
get_search_console_action_queue
Search Console Action Queue
Get the agent action queue derived from Search Console: ranking, rewrite, backlink, and not-indexed recommendations tied to plans/articles.
Parametersproject_id
sync_search_console
Sync Search Console
Start a manual Search Console data sync. Returns immediately while refreshed performance, page, and query data are collected asynchronously.
Parametersproject_id
get_indexing_status
Indexing Status
Get the Google indexing state of every published article from stored URL Inspection results: how many are confirmed indexed and which are published but not (yet) indexed, with coverage state per URL. No Google API calls — reads the daily indexing check.
Parametersproject_id
Live-check 1-10 URLs against Google's URL Inspection API: indexing verdict, coverage state, last crawl time, and Google's chosen canonical. Requires a connected Search Console property that covers the URLs. Results are cached onto matching published articles.
Parametersurlsrequiredproject_id
get_analytics_status
Analytics Status
Get Google Analytics 4 connection, selected-property, and latest sync state for a project.
Parametersproject_id
get_analytics_page_metrics
Analytics Page Metrics
Read aggregated GA4 landing-page sessions, active users, key events, and revenue already synced for a project. Returns totals and the highest-session pages for a 1–90 day window.
Parametersdayslimitproject_id
connect_analytics
Connect Analytics
Start a Google Analytics 4 connection and return an authUrl for the human account owner to complete Google consent. GA4 uses its own consent (analytics.readonly), separate from Search Console.
Parametersproject_id
list_analytics_properties
List Analytics Properties
List GA4 properties accessible through the connected Google Analytics account.
Parametersproject_id
select_analytics_property
Select Analytics Property
Select which connected GA4 property belongs to this MotiBlog project and start the initial data sync.
Parametersproject_idproperty_idrequiredproperty_name
disconnect_analytics
Disconnect Analytics
Disconnect Google Analytics 4 from the project and remove its stored credentials and synced data.
Parametersproject_id
sync_analytics
Sync Analytics
Start a manual GA4 data sync. Returns immediately while per-page sessions, active users, key events, and revenue are collected asynchronously.
Parametersproject_id
get_search_opportunities
Search Opportunities
Join search demand (Search Console impressions, clicks, position) with outcomes (GA4 sessions, key events, revenue) per page over the last 28 days, classified into action buckets: CONVERSION_MISMATCH (traffic converts nothing — rewrite for intent), CTR_FIX (demand but weak titles), SCALE_WINNER (converts from page 2 — push it), STRIKING_DISTANCE (position 11-20), DEAD (no demand, no visits). Each row carries a recommendation. Works with Search Console alone; connecting GA4 unlocks the conversion buckets.
Parametersproject_id
get_account_usage
Account Usage
Get the account's article usage: articles used, the article limit, articles remaining, project slots, and when the usage period ends. Read-only.
Takes no parameters.
get_account_profile
Account Profile
Get the authenticated MotiBlog account identity: email, display name, avatar, and verification state. Internal account and sign-in-provider identifiers are never returned.
Takes no parameters.
update_account_profile
Update Account Profile
Update the authenticated account display name and/or avatar URL. This cannot change email, password, or OAuth grants.
Parametersnameavatar_url
list_notifications
List Notifications
List recent account notifications, optionally only unread ones.
Parameterslimitunread_only
get_unread_notification_count
Unread Notification Count
Get the number of unread notifications for the authenticated account.
Takes no parameters.
mark_notification_read
Mark Notification Read
Mark one account notification as read.
Parametersnotification_idrequired
mark_all_notifications_read
Mark All Notifications Read
Mark every unread account notification as read.
Takes no parameters.
export_blog
Export Blog to Files
In local stdio MCP only, export articles as deployment-ready files for Astro, Next.js, Jekyll, Hugo, or git codebases. Remote HTTP MCP cannot write to the caller filesystem and returns a clear remote_filesystem_unavailable error instead of a server-local path.
Parameterslimitstatusout_dirrequiredproject_id