io.polyblog/polyblog

MCPcommunautéen ligne
v0.1.0io.polyblogUnknownMis à jour il y a 1 mois

Manage multilingual Polyblog articles, localization coverage and editorial plans through OAuth.

État de l’endpointen ligne
vérifié il y a 23 h · 795 ms
100 % des dernières 5 vérifications ont atteint cet endpoint
Fonctionne dans
ClaudeCursorCopilotChatGPTGemini

Déduit des transports déclarés par cette annonce (streamable-http). Un client absent de cette liste n’est pas écarté pour autant — c’est simplement quelque chose que Forge ne peut pas confirmer.

Indexé automatiquement depuis des sources publiques. Pas encore vérifié par son développeur sur Forge.Revendiquer cette annonce →
il y a 1 moisDernière mise à jour
Paquet
Auteurio.polyblog
LicenceUnknown
Version0.1.0
Sourcemcp-registry
Statut de confiance
B
60/100Bon
✓Listé dans l’index Forge+10/10
—Identité de l’éditeur vérifiée+0/30
→ Éditeur : aucune référence de dépôt n’est enregistrée pour cette annonce, `forge publish` ne peut donc pas vérifier la propriété automatiquement. Utilisez « Revendiquer cette annonce » ci-dessus — Forge les examine à la main.
—Vérification de domaine+0/10
→ Actuellement indisponible pour ce type d’annonce — la vérification de domaine ne s’exécute aujourd’hui que pour les paquets adossés à npm, cette ligne ne peut donc pas encore être obtenue ici, quel que soit le contenu hébergé sur le domaine.
✓Analyse d’injection de prompt · propre+30/30
✓Analyse d’obfuscation / exfiltration · propre+20/20
StatutIndexé par la communauté
ÉditeurNon vérifié
SignatureNon signé
Domaine—
Provenance—
DépendancesNon audité
Surface d’outils18 outils · 1 privilégiés
Analyse de sécurité✓ Proprevlive · aujourd’huiQuelle est l’efficacité de cette analyse ?
ÉvaluationsAucune
Indexé15 août 2026

La vérification confirme l’identité de l’éditeur (la propriété du dépôt), pas la sûreté du code. L’analyse de sécurité couvre les CVE connues et les scripts d’installation suspects.

Outils

18 outils · 1 privilégiés
Observé en direct depuis l’endpoint du fournisseur23h ago

Lu depuis un véritable échange MCP initialize → tools/list contre l’endpoint déclaré. Aucun outil n’a été invoqué — tools/list est l’appel d’introspection en lecture seule que le protocole prévoit pour cela. Cela reflète ce que le serveur annonçait à cet instant ; un endpoint hébergé n’est figé sur aucune version et peut changer sans préavis.

  • https://mcp.polyblog.io/mcp18 outils · 795 ms
search_articlesSearch 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.

Search 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.

ParamètreTypeDescription
blogIdstringFilter to a specific blog
localestringISO 639-1 locale code, e.g. "en", "it"
slugstringExact slug match
publishedstringFilter by published state
limitinteger—
cursorstringOpaque pagination cursor from a previous call
get_articleFetch 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.

Fetch 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.

ParamètreTypeDescription
idOrSlug*stringArticle id or slug
localestringLocale to disambiguate when looking up by slug
list_article_translationsList 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 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.

ParamètreTypeDescription
originalArticleId*stringOriginal article id — the id of the source-locale article; every translation shares it
blogIdstringOptional blog id. When given, the reply also lists the blog locales that are still missing a translation.
create_articleCreate 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 `…

Create 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 `…

ParamètreTypeDescription
blogId*stringTarget blog id
title*string—
content*stringArticle body (Markdown or HTML based on format)
formatstring—
localestring—
originalArticleIdstringCreate this article as the `locale` version of an existing article, inside that article's translation group. Pass the ORIGINAL id — the one `list_article_trans…
slugstring—
descriptionstring—
authorstring—
categoriesarray—
publishedboolean—
update_articlePartially 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.

Partially 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.

ParamètreTypeDescription
id*stringArticle id to update
titlestring—
contentstring—
formatstring—
descriptionstring—
slugstring—
authorstring—
categoriesarray—
publishedboolean—
delete_articleprivilégiéPermanently 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.

Permanently 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.

ParamètreTypeDescription
id*stringArticle id to delete
generate_articleGenerate 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 a…

Generate 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 a…

ParamètreTypeDescription
blogId*stringTarget blog id
topicobjectTopic to write about. Skip if using topicIdeaId.
topicIdeaIdstringUse a previously-saved topic idea instead of supplying topic.title.
localestringLocale code (defaults to blog defaultLocale).
autoPublishbooleanPublish immediately. Default false (saves as draft).
persistbooleanSave to Mongo. Default true. Set false for a dry-run preview.
sitemapMaxUrlsintegerMax sitemap URLs to feed the LLM as the allowed internal-link pool (default 150).
list_blogsList 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 Polyblog blogs the authenticated tenant has access to. Returns a bounded page of id, name, and custom domain. Pass the returned cursor to continue.

ParamètreTypeDescription
limitinteger—
cursorstringOpaque pagination cursor from a previous call
get_blogFetch a single Polyblog blog by id or name. Returns the blog metadata formatted as Markdown.

Fetch a single Polyblog blog by id or name. Returns the blog metadata formatted as Markdown.

ParamètreTypeDescription
idOrName*stringBlog id (uuid) or name
get_blog_localization_summarySummarize 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.

Summarize 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.

ParamètreTypeDescription
blogId*stringPolyblog blog id or name to audit
create_blogCreate 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.

Create 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.

ParamètreTypeDescription
name*stringBlog name; also becomes the public <name>.polyblog.io subdomain and must be globally unique
descriptionstring—
defaultLocalestringISO 639-1 code the blog writes in by default, e.g. "en"
localesarrayISO 639-1 codes the blog publishes translations in
articlesFormatstring—
get_sitemap_urlsSummarize 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.

Summarize 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.

ParamètreTypeDescription
blogId*stringTarget blog id
localestringTwo-letter locale to filter by (e.g. "en")
maxUrlsintegerCap on URLs returned (default 500, max 2000)
refresh_topic_ideasFetch 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 f…

Fetch 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 f…

ParamètreTypeDescription
blogId*stringTarget blog id
sourcesobjectOverride the blog topicSources. If omitted, the blog `topicSources` field is used.
audiencestringAudience description. Defaults to the blog `context` field if omitted.
sinceHoursintegerLookback window in hours (default 168 = 7 days)
limitPerSourceintegerMax items fetched per source (default 25)
minScoreintegerMinimum LLM score (0-10) to keep a candidate (default 5)
perSourceCapintegerCap on scored candidates per source (default: no cap)
list_topic_ideasList 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.

List 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.

ParamètreTypeDescription
blogId*stringTarget blog id
statusstringFilter by lifecycle status (default: all)
minScoreintegerMinimum LLM score (0-10) to include
limitinteger—
cursorstring—
set_topic_idea_statusMove 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.

Move 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.

ParamètreTypeDescription
topicIdeaId*stringTopic idea id from `list_topic_ideas`
status*stringNew lifecycle status for the topic idea
usedForArticleIdstringArticle id this idea produced; only meaningful with "used"
set_topic_sourcesReplace 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.

Replace 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.

ParamètreTypeDescription
blogId*stringTarget blog id or name
redditarraySubreddit names (without /r/). Replaces the existing list.
rssarrayFull RSS / Atom feed URLs. Replaces the existing list.
clearbooleanRemove the topicSources field entirely.
show_blog_overviewRender a compact overview for a known Polyblog blog, including its domain, locales, and up to ten recently edited articles.

Render a compact overview for a known Polyblog blog, including its domain, locales, and up to ten recently edited articles.

ParamètreTypeDescription
blogId*stringPolyblog blog id to render, at most 200 characters
show_article_previewRender a focused preview for a known Polyblog article, including its publication state, metadata, and a bounded content excerpt.

Render a focused preview for a known Polyblog article, including its publication state, metadata, and a bounded content excerpt.

ParamètreTypeDescription
articleId*stringPolyblog article id to preview, at most 200 characters

18 outils sur 18 ont publié une description.

Les noms et descriptions d’outils sont écrits par l’éditeur et affichés tels quels, comme du texte inerte. Ce sont les chaînes qu’un client MCP transmet à un modèle, alors Forge y recherche des motifs d’injection de prompt — tout constat apparaît avec l’analyse de sécurité ci-dessus. « Privilégié » est une correspondance de mot-clé sur le nom de l’outil, pas un audit de ce qu’il fait : un nom anodin peut tout de même tout faire.

À propos

Manage multilingual Polyblog articles, localization coverage and editorial plans through OAuth.

Mots-clés
mcp
Alternatives
Comparaison des surfaces d’outils…

Aucune couverture des dépendances

Cette entrée ne publie aucun paquet npm : Forge n'a donc pas d'arbre de dépendances pour elle. C'est une lacune de couverture — pas une affirmation qu'elle n'a aucune dépendance.