Polyblog MCP server
Manage multilingual Polyblog articles, localization coverage and editorial plans through OAuth.
Little public usage data yet
Reviews
Write oneNobody has reviewed Polyblog yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Polyblog tools (18, 4 write)
write = sends, deletes, buys or postscreate_articlewrite actionFreeCreate a new Polyblog article in the given blog. Returns the created article id and title and fires an `article.created` webhook. Defaults to unpublished; passing `published: true` also creates a public article page. To write a TRANSLATION of an article you already have, pass that article's id as `originalArticleId` together with the new `locale`; without it the translation becomes a separate article that no locale of the original links to.
create_blogwrite actionFreeCreate a new Polyblog blog in the signed-in organization. The name is globally unique because it becomes the public <name>.polyblog.io subdomain, so a clashing name fails rather than being adjusted. Creating a blog also fires a `blog.created` webhook to the organization subscribers.
delete_articlewrite actionFreePermanently delete a Polyblog article by id. Deleting a published article removes its public page and fires an `article.deleted` webhook. This cannot be undone — confirm with the user before calling.
generate_articleFreeGenerate a text-only SEO blog article: an LLM drafts bounded HTML, internal links come from the blog customDomain sitemap.xml, and the article is saved as a draft by default. This MCP tool always disables cover and inline image generation. Pass `topic` or `topicIdeaId`. It spends paid model usage and usually takes 30–60 seconds.
get_articleFreeFetch a single Polyblog article by id or by slug+locale. Returns allowlisted metadata and at most 8,000 characters of article content, with an explicit truncation flag.
get_blogFreeFetch a single Polyblog blog by id or name. Returns the blog metadata formatted as Markdown.
get_blog_localization_summaryFreeSummarize multilingual article coverage for one organization-owned Polyblog blog. Compares configured locales with up to 100 recently edited article translations and clearly marks the result when the sample is truncated.
get_sitemap_urlsFreeSummarize URLs from the blog's customDomain `/sitemap.xml` (following a sitemap index one level) and return at most 25 safe sample URLs. Used by `generate_article` as the allowed internal-link pool.
list_article_translationsFreeList up to 100 locale versions of one article, grouped by its `originalArticleId`, and mark a truncated result. Returns safe article metadata and translation method. Pass `blogId` to compare against at most 100 configured locales.
list_blogsFreeList Polyblog blogs the authenticated tenant has access to. Returns a bounded page of id, name, and custom domain. Pass the returned cursor to continue.
list_topic_ideasFreeList saved topic ideas for a blog, optionally filtered by status and minimum score. Returns id, score, title, status, and source. Use the id with `generate_article` to write the article.
refresh_topic_ideasFreeFetch fresh content from bounded Reddit subreddits and public HTTPS RSS feeds, spend paid model usage to score candidates, dedupe against published articles, and persist the keepers. Returns aggregate counts and at most five safe ideas; raw source errors are suppressed. Confirm sources and limits first.
search_articlesFreeSearch Polyblog articles with optional filters by blog, locale, slug, and published state. Returns a Markdown table of matches with id, title, locale, slug, and published. Use the returned cursor to page through results.
set_topic_idea_statusFreeMove a saved topic idea through its lifecycle: mark it `used` once an article has been written from it, `dismissed` to keep it out of future suggestions, or back to `new`. Only the status (and optionally the article it produced) is changed.
set_topic_sourcesFreeReplace the Reddit subreddits and/or public HTTPS RSS feeds used for topic research. Confirm the complete replacement lists before calling. Once set, `refresh_topic_ideas` only needs the blogId. Pass `reddit` and/or `rss`, or `clear: true` to wipe all sources.
show_article_previewFreeRender a focused preview for a known Polyblog article, including its publication state, metadata, and a bounded content excerpt.
show_blog_overviewFreeRender a compact overview for a known Polyblog blog, including its domain, locales, and up to ten recently edited articles.
update_articlewrite actionFreePartially update an existing Polyblog article by id. Only the fields you pass are changed; everything else is preserved. Passing `published` can publish or unpublish its public page, and every update fires an `article.updated` webhook.
Public scan report
scanner v0.1.9 · 2026-09-23 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1842ms20/20
- Tool poisoning18 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 4 write-action tools with no auth3/15
- Maintenanceno repository listed3/15
- Maintainer identityverified namespace with website, no repo4/10
Findings (2)
- highWrite-action tools reachable without authentication
auth.open-write - lowNo source repository listed
maint.no-repo
Install directly
claude mcp add --transport http polyblog https://mcp.polyblog.io/mcp
Polyblog: common questions
- Is Polyblog MCP server safe?
- With care: it is graded C, so read the findings first (60/100). Read the Polyblog safety report
- How do I install Polyblog?
- It runs remotely at mcp.polyblog.io. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Polyblog need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Polyblog maintained?
- The latest release is v0.1.0.
- Is Polyblog up?
- 100% of our last 19 checks got an answer. We check remote servers about four times a day.