MotiBlog · the agent interface

Your agent runs the blog. MotiBlog does the writing.

MotiBlog is a content engine with an approval gate in front of it. It researches keywords, drafts 2,500–4,000 word articles, fact-checks them and holds them in a review queue. An MCP-capable agent — Claude Code, Cursor, Codex — steers the plan, reviews the queue and decides what publishes. There are 31 tools covering the whole loop.

The agent never holds the pen. Generation stays server-side, so output quality does not depend on which model is driving, and the fact-check step can ask the agent the one thing it alone knows: whether a claim about your product is true.

The whole job is reachable: propose topics, run the pipeline, read the fact-check report, approve through the gate, publish to a CMS — or export the blog as Markdown and commit it into your own repository, which is the one route out that needs no CMS at all.

The loop

one session, start to finish
01get_digest

What is waiting, what shipped, what is due, how much quota is left.

02list_review_queue → get_article

Read the fact-check report and the 13-point score.

03supply_product_fact / update_article

Correct what the pipeline could not verify.

04approve_publication

The gate. The only path from draft to live.

05publish_to_integration / export_blog

Push to the CMS, or take the Markdown and deploy it yourself.

If the queue is empty and a plan is due, the session generates it, waits for the pipeline and reviews the result — so a check-in ends with a post shipped or consciously held, not with nothing to do.

Connecting

one command, per-project key

Point an agent at it

Nothing to install. The endpoint is served by the API itself, so the key is the only thing you need — dashboard, under Project → Agent access, rotatable at any time.

claude mcp add --transport http motiblog \
  https://api.motiblog.ai/mcp \
  --header "x-api-key: <your-project-key>"

Or call it directly

Streamable HTTP, stateless — one JSON-RPC POST, the key on every request as x-api-key or a bearer token. No session to keep alive.

curl -s https://api.motiblog.ai/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -H 'x-api-key: <your-project-key>' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Or run it yourself

The server is on npm as @motiblog/mcp. Same 31 tools over stdio, talking to the same API — for agents that prefer a local process, or an air-gapped run against your own deployment.

claude mcp add motiblog \
  --env MOTIBLOG_API_KEY=<your-project-key> \
  -- npx -y @motiblog/mcp

The tool surface

31 tools, 8 groups

The verbs are coordination-level, not CRUD. There is no create_post(markdown), because the value is the pipeline — the topic gate, the deduplication pass, the fact-check, the readiness gates — and an agent that writes its own post skips all of it.

Check in

1 tool

One call that answers “what happened, what is waiting, what is due”.

  • get_digest

Orient

2 tools

Projects, pipeline configuration, approval and quota settings.

  • list_projects
  • get_project

Steer

7 tools

Propose topics from what only the agent knows, and curate what MotiBlog proposes.

  • suggest_topics
  • list_content_plans
  • approve_content_plan
  • regenerate_content_plan
  • get_calendar
  • list_keywords
  • add_keyword

Generate

6 tools

Run the pipeline, watch it, and send work back for another pass.

  • generate_article
  • start_pipeline
  • get_pipeline_status
  • get_pipeline_logs
  • regenerate_article
  • regenerate_chapter

Review

5 tools

Read the fact-check report and the score, correct the draft, and supply the product truth the pipeline could not verify.

  • list_review_queue
  • get_article
  • update_article
  • list_product_facts
  • supply_product_fact

Ship

2 tools

The governed gate. The only path from draft to live.

  • approve_publication
  • schedule_publication

Deliver

7 tools

Push to a CMS or a webhook — or export the whole blog and deploy it yourself.

  • list_integrations
  • create_webhook_integration
  • test_integration
  • publish_to_integration
  • retry_publish
  • list_publish_logs
  • export_blog

Maintain

1 tool

Find the published posts that have decayed and are worth refreshing.

  • list_refresh_suggestions

Security and the gate

Publication is a gate

approve_publication is the only transition from draft to live, and it records who approved, on what basis and which claims were verified. There is no bypass, and no setting that removes the record.

Keys are per project

A key scopes an agent to one project. Rotating it in the dashboard invalidates the old one immediately. Admin routes refuse machine callers outright.

The dial is yours

Three positions per project: generate only when asked; draft daily and publish only on approval; or publish automatically when every check passes and hold anything flagged. The middle one is the default.

Product truth is supplied, not guessed

When the pipeline cannot verify a claim about your product, it flags it rather than shipping it. supply_product_fact is how the agent — which has your repository and your docs — answers, with the answer stored and cited on the next run.

Exit is a tool call

export_blog returns the whole blog as Markdown with a manifest, ready to commit into your own repository. Nothing published is held hostage.

Where this stands

what is true today

The tool surface above is built and runs daily against a real blog — this one. Two things are not finished, and we would rather say so than let an agent discover them.

OAuth

Access is per-project API keys, which are scoped to one project and revocable from the dashboard. Short-lived delegated tokens with separate read, write and publish scopes are the next piece of auth work. Until then, treat a project key as the whole project.

Scopes

A project key is the whole project — it carries every permission the tools expose, including publishing. Separate read, write and publish scopes arrive with OAuth. Until then, rotate the key rather than sharing it.

Create the project first. The key is waiting in it.

A project holds the site, the keyword plan, the schedule and the key your agent authenticates with. Set one up, then point an agent at it.