
Blog Automation
io.github.shsoftwaresolutioncomPublished by GitHub account shsoftwaresolutioncomv1.0.1Updated Nov 7, 2026
Write blog articles with AI and publish them to WordPress, Shopify and 30+ platforms.
Overview
Blog Automation lets an assistant plan blog ideas, generate articles with AI, and publish or schedule them to WordPress and other sites.
- What you can do
- List, create and track blog ideas with keywords, audience and priority
- Generate articles with AI as background jobs and check job status
- List and read articles, including HTML and SEO fields, and check their status, schedule and last error
- Publish an article now or schedule it for a given time or the next free slot
- Check token balance and prices, and list connected sites and templates
- When to use it
- Use it when you want an assistant to run a blog pipeline end to end: brainstorming and storing ideas, drafting articles, then publishing or scheduling them on connected sites. It fits content teams already using Blog Automation who want to drive it from Claude, ChatGPT, Cursor or another MCP client.
- Requirements
- A Blog Automation account on a plan with API access (Starter or Pro) and an API key with the needed scopes. Local use runs the npm package @blogautomation/mcp-server on Node 22 with the key in BA_API_KEY; remote use connects to the hosted endpoint and authenticates with OAuth or an Authorization bearer key. Network access to the Blog Automation API.
Installation
In SourceWeft
- Open Blog Automation in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.shsoftwaresolutioncom%2Fblog-automation-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"blog-automation": {
"type": "http",
"url": "https://mcp.blog-automation.com/mcp"
}
}
}README
Blog Automation MCP server
Model Context Protocol server for Blog Automation (https://blog-automation.com): plan ideas, write
articles with AI, publish or schedule them on WordPress and check the token balance – from Claude, ChatGPT, Cursor or any MCP client.
It is a thin wrapper around the Customer API https://app.blog-automation.com/api/v1/ext (app repo blogposter-app, server/routes/ext.js,
docs/API.md). Node 22, @modelcontextprotocol/sdk 1.32, zod 4. Package @blogautomation/mcp-server, command blog-automation-mcp.
Tools
Errors come back as readable tool results with isError: true: 401 (key invalid/revoked), 402 (not enough tokens: needed / balance),
403 insufficient_scope (which scope is missing) / plan_required (which plans have the API), 404, 429 (seconds from Retry-After).
API key
Blog Automation → Entwickler / API → "API-Key erstellen" (plans Starter and Pro). Scopes:
articles:read, articles:write, ai:generate (write_article), articles:publish (publish_article), ideas:read, ideas:write,
templates:read, sites:read, account:read (token_balance). Leave out what the assistant should not do – e.g. without
articles:publish it can write drafts but never publish.
Use it
stdio (local; the key comes from BA_API_KEY):
Claude Desktop (claude_desktop_config.json) / Cursor (~/.cursor/mcp.json) – same block:
Claude Code: claude mcp add blog-automation --env BA_API_KEY=ba_live_… -- npx -y @blogautomation/mcp-server
Streamable HTTP (remote clients – ChatGPT connectors / developer mode, Claude "custom connector", Cursor via URL):
- Endpoint
POST /mcp(stateless, JSON responses), health checkGET /healthz. GET/DELETE on/mcp→ 405 (no sessions). - Every request must send
Authorization: Bearer ba_live_…; the key is used only for that request's API calls – not stored, not logged. Missing or malformed → 401 withWWW-Authenticate: Bearer. - Requests with an
Originheader are only accepted from--origin/BA_MCP_ORIGINS(DNS-rebinding protection); without the option browser requests are refused, server-to-server calls (no Origin) work. - Binds 127.0.0.1 by default; put it behind the reverse proxy (TLS) for public use, e.g.
https://mcp.blog-automation.com/mcp. - OAuth (since 1.1.0): clients that only do OAuth – ChatGPT apps / developer mode, Claude custom connectors, MCP Inspector – just get the
URL
https://mcp.blog-automation.com/mcp. The 401 points to/.well-known/oauth-protected-resource(RFC 9728), which nameshttps://app.blog-automation.comas authorization server (dynamic client registration, PKCE S256). The person signs in to Blog Automation, sees the requested permissions and clicks "Erlauben"; the access token is a 1-hour API key, refreshed automatically, revocable under Entwickler / API. Env:BA_MCP_RESOURCE(public /mcp URL),BA_OAUTH_ISSUER(app base URL).
ChatGPT app
ChatGPT → Settings → Apps & Connectors → Advanced → Developer mode → "Create" → name "Blog Automation", MCP server URL
https://mcp.blog-automation.com/mcp, authentication OAuth → sign in → allow. All tools carry readOnlyHint / destructiveHint
annotations, so ChatGPT asks before writing (tokens) or publishing. Listing in the ChatGPT app directory: SUBMISSION.md.
BA_API_BASE overrides the API (e.g. https://pre.blog-automation.com/api/v1/ext).
Develop
Tests: tools/list (names, annotations, schemas), request shape of every tool, Idempotency-Key, async job polling (done / still running / failed), publish vs. schedule, error mapping (401/402/403/404/429), HTTP transport (healthz, 401, Origin 403, 405, tools/list + call with the request's key).
Source: README.md at commit b018190
Tools
0Version history
1- v1.0.1LatestNov 7, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.