MotiBlog
The SEO research and publishing system for AI agents.
Что умеет
- Get Digest: One-call morning check-in for a project: article counts by lifecycle status, the REVIEW queue (what is waiting to be published, with word counts), posts published in the last 7 days, conte
- List Projects: List every MotiBlog project owned by the authenticated account, with settings that matter to agents: requireApproval (REVIEW vs APPROVED after generation), autoPublish, factCheckStrict,
- 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. MotiBlog starts the initial analysis and con
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
The SEO research and publishing system for AI agents. MotiBlog crawls the site, maps existing content, researches competitors, keywords, live SERPs and YouTube, builds a content plan, generates internally linked articles, publishes to the user's CMS or Markdown, and closes the loop with Search Console. Users control read, edit and publish access through OAuth. One project and three articles are free.
Как подключить
Как подключить MotiBlog к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://motiblog--hamza-ca0l.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить MotiBlog к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://motiblog--hamza-ca0l.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить MotiBlog к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://motiblog--hamza-ca0l.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| get_digest | One-call morning check-in for a project: article counts by lifecycle status, the REVIEW queue (what is waiting to be published, with word counts), posts published in the last 7 days, content plans due in the next 7 days, the latest published post, quota usage, and the project's current autonomy level (L1 = nothing ships without agent review; L2 = clean articles auto-publish). Start every check-in here. |
| list_projects | List every MotiBlog project owned by the authenticated account, with settings that matter to agents: requireApproval (REVIEW vs APPROVED after generation), autoPublish, factCheckStrict, selfHostedBlog, and article quota usage. Project credentials are never returned. |
| 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. MotiBlog starts the initial analysis and content pipeline after creation. |
| get_project | Get one MotiBlog project in detail: pipeline settings (aiModel, language, internalLinks, banner), positioning inputs (businessProfile, productTruth, manualPositioning) and quota state. |
| update_project | 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. |
| start_pipeline | Start the autonomous pipeline for a project: site crawl/analysis → topic selection → article generation for scheduled plans. Returns immediately; poll get_pipeline_status or list_articles(status=GENERATING) to follow progress. |
| get_pipeline_status | Get current pipeline run state for a project: whether a run is active, its steps, and recent run history. Use after start_pipeline or generate_article. |
| retry_pipeline | Retry a failed pipeline run by id. The API starts a fresh run for the same owned project and returns immediately. |
| suggest_topics | Suggest blog topics for a project by adding entries to its content plan (one call per topic). This is the agent-side 'propose' step: topics land as DRAFT plan entries — nothing is generated until you approve_content_plan + generate_article. Prefer specific, keyword-like topics. |
| list_content_plans | List the content plan queue for a project with each entry status: DRAFT (proposed), APPROVED (cleared for generation), IN_PROGRESS, COMPLETED. |
| approve_content_plan | Approve a DRAFT content-plan entry so it becomes eligible for generation (generate_article or the scheduled pipeline). |
| regenerate_content_plan | Ask AI to rewrite a content-plan entry (new title/summary/target keyword) — use when a suggested topic misses the mark. Only works while no article has been generated from it. |
| reschedule_content_plan | Move a content-plan entry to a new ISO 8601 scheduled date. |
| generate_article | Generate an article from an APPROVED content-plan entry via the full pipeline (research → outline → draft → fact-check → polish → scoring). Returns the article in GENERATING state; review later via get_article once status reaches REVIEW or APPROVED. If the free allowance is exhausted, returns payment_required with a dashboard URL: pause, ask the human account owner to upgrade, then retry the same call without replacing the project or reconnecting OAuth. |
| get_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. |
| list_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. |
| get_article | Get the FULL article: markdown content plus quality signals — factCheckReport (verified/unverified claims with sources), topicGate verdict, seoScore/issues, publishedUrl. Set include_logs=true to append per-phase pipeline telemetry (tokens, cost, phase status). Use this during review before approving publication. |
| update_article | Edit an article: replace the markdown content, retitle, change metaDescription, or move status (e.g. fix flagged claims from factCheckReport then set status=APPROVED; or send back to DRAFT). Editing content is how agents answer fact-check flags when no external source exists. |
| approve_publication | Approve an article for publication through the governed approval gate. publish_now=true also triggers publishing immediately (to enabled integrations, or the self-hosted blog when selfHostedBlog=true). Otherwise the article sits in APPROVED until the scheduler/autoPublish picks it up or publish_to_integration is called. |
| schedule_publication | Set or clear a per-article scheduled publish time (ISO datetime). Pass null for clear_schedule=true to unschedule. Scheduled APPROVED articles are published automatically by the 15-minute scheduler when autoPublish is on. |
| regenerate_article | Wipe an article and rerun the ENTIRE pipeline from scratch (research → draft …). Content-destructive: prefer update_article for targeted edits or regenerate_chapter for one section. |
| regenerate_chapter | Regenerate ONE chapter (0-based chapter_index) of an article; all other sections stay byte-identical. Cheaper and safer than regenerate_article. |
| get_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. |
| list_refresh_suggestions | Across ALL your projects: published articles whose Search Console stats suggest they are decaying and would benefit from a refresh. Feed these back into planning via suggest_topics or update_article. |
| dismiss_refresh_suggestion | Dismiss the active refresh recommendation for a published article. |
| 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; quota and payment-required handling are unchanged. |
| rewrite_text | Rewrite a selected passage using the same inline AI actions as the editor: improve, shorter, longer, grammar, active-voice, or add-example. Returns replacement text without modifying an article; apply it with update_article. |
| 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. |
| delete_article_banner | Remove the current banner image from an article. |
| upload_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. |
| get_banner_preview | Get the saved banner-style preview, prompt, and remaining lifetime preview allowance for a project. |
| 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. |
| list_integrations | List configured publishing targets (integrations) for a project: WEBHOOK, WORDPRESS, GHOST, WEBFLOW, SHOPIFY, DEVTO, SANITY, CUSTOM_API — with enabled state. |
| get_integration | Get one publishing integration and its enabled/last-used state. Stored provider credentials and config values are redacted from tool output. |
| create_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. |
| update_integration | Edit a publishing target name, type, provider config/credentials, or enabled state. Omitted fields remain unchanged. |
| delete_integration | Permanently delete a publishing integration. Existing publish logs remain, but this target can no longer receive content. |
| 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. |
| test_integration | Test a publishing target connection. mode=ping (default) checks credentials/reachability only; mode=full may create and clean up a test item on the target. |
| publish_to_integration | Push an APPROVED article to one specific integration now (enqueues the publish job; transitions APPROVED → PUBLISHING → PUBLISHED). Check results via list_publish_logs. |
| retry_publish | Retry a failed publish attempt for an article/integration pair. |
| mark_integration_synced | Mark an article/integration pair as manually synced, creating an auditable synthetic success log. Use only after verifying the content already exists at the target. |
| list_publish_logs | Publishing history: SUCCESS/FAILED attempts with publishedUrl, provider error text and timestamps. Pass article_id for one article, or omit for the whole project (limit defaults server-side). |
| list_keywords | List tracked keywords for a project (search volume, difficulty, intent, status). Keywords drive topic relevance in generation. |
| add_keyword | Track a new SEO keyword for a project so future topic suggestions/generation can target it. intent is one of INFORMATIONAL, NAVIGATIONAL, TRANSACTIONAL, COMMERCIAL. |
| update_keyword | Change a tracked keyword lifecycle status: DISCOVERED, APPROVED, REJECTED, or USED. |
| delete_keyword | Permanently remove a tracked keyword from the project. |
| list_competitors | List the competitor domains tracked for a project, including overlap and domain-authority signals when available. |
| add_competitor | Add a competitor domain to a project so competitive analysis and content-gap planning can use it. |
| delete_competitor | Permanently remove a competitor from the project. |
| list_pillar_clusters | List pillar clusters with their pillar keyword, member keywords, content plans, article status, published URLs, and completion percentage. |
| 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. |
| get_product_fact | Get one proprietary product fact by id. |
| supply_product_fact | Supply a ground-truth fact about the customer's product (or update one via fact_id). Strict fact-checking uses these to verify claims; supply facts BEFORE generation for best results. Example: fact='Acme integrates natively with Shopify since v2.3', category=['integrations']. |
| delete_product_fact | Permanently remove a proprietary product fact from generation context. |
| get_brand_voice | Get the computed brand-voice profile for a project: tone, style, vocabulary, cadence, and extraction metrics. |
| get_brand_voice_preview | Preview the exact brand-voice context that article generation would receive for a target keyword. |
| refresh_brand_voice | Re-extract the project brand voice asynchronously from current source content. Poll get_brand_voice for the updated profile. |
| list_authors | List every author profile available to a project. |
| get_author | Get one author profile with bio, avatar URL, and social links. |