{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_bpszbj9p8j6h","handle":"polyblog","url":"https://wellknown.network/agents/polyblog","links":{"self":"https://wellknown.network/agents/polyblog/record.json","html":"https://wellknown.network/agents/polyblog","markdown":"https://wellknown.network/agents/polyblog/record.md","api":"https://wellknown.network/api/v1/agents/polyblog","status":"https://wellknown.network/api/v1/agents/polyblog/status","claim":"https://wellknown.network/agents/polyblog/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/polyblog/claim.json","badge":"https://wellknown.network/agents/polyblog/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/polyblog/history","tools":"https://wellknown.network/api/v1/agents/polyblog/tools"},"ard":{"identifier":"urn:air:mcp.polyblog.io:server:polyblog","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Polyblog Multilingual Blog","summary":"Write, translate and publish blog articles, plan topic ideas and check each blog's languages.","description":"Write, translate and publish blog articles, plan topic ideas and check each blog's languages.","publisher":{"name":"io.polyblog","url":null},"homepage":"https://www.polyblog.io/developers/?utm_source=official-mcp-registry&utm_medium=mcp_directory&utm_campaign=mcp-registries-2026#mcp","repository":null,"version":"0.1.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.polyblog.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-27T17:12:39.295977Z","publishedAt":"2026-09-27T17:12:39.295977Z","registryName":"io.polyblog/polyblog"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.translation","name":"Translation","confidence":1,"provenance":"derived"},{"slug":"data.news","name":"News & Feeds","confidence":0.919,"provenance":"derived"},{"slug":"content.localization","name":"Localization","confidence":0.583,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content","data"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-11T13:25:39.506Z","lastProbedAt":"2026-10-11T13:25:39.506Z","statusComputedAt":"2026-10-11T13:26:20.450Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":403,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":108,"ok":108,"authBoundaryOk":0,"serviceOk":108,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T13:25:39.506Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":569,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T07:23:41.951Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":337,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T01:21:34.782Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":411,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T18:27:42.196Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":548,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:24:37.856Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":471,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:32:02.791Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":434,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T22:28:39.608Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":420,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:34:04.625Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":385,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:23:12.670Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":418,"error":null,"detail":{"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"toolCount":19,"toolsHash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:24:11.443Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1099,"error":null,"detail":{"serverName":"polyblog-mcp","capabilities":["tools","events","resources","extensions"],"serverVersion":"0.1.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_articles","description":"Use this when someone asks to see their blog posts, drafts or published articles, optionally for one blog, language or slug. Returns id, title, language, slug a"},{"name":"get_article","description":"Use this when someone wants to read, check or quote one blog post. Returns its title, summary, language, slug, blog, author, published state, dates and up to 8,"},{"name":"list_article_translations","description":"Use this when someone asks which languages a blog post exists in, or which translations are still missing. Returns each language version sharing the original ar"},{"name":"create_article","description":"Use this when someone gives you a finished blog post, or a translation of one, to save in their blog. Returns the new post's id, title, slug, language and publi"},{"name":"update_article","description":"Use this when someone asks to change a blog post's title, text, summary, slug, author or categories, or to publish or unpublish it. Returns the updated post; on"},{"name":"delete_article","description":"Use this when someone asks to permanently delete a blog post in every language. Given the original post's id, that post and all its translations are deleted and"},{"name":"generate_article","description":"Use this when someone asks you to write a new blog post on a topic or saved topic idea. Returns the draft's id, URL, title, word count and internal links (text "},{"name":"list_blogs","description":"Use this when someone asks which blogs they have in Polyblog, or a blog's id is needed. Returns each blog's id, name and custom domain, 25 per page by default w"},{"name":"get_blog","description":"Use this when someone asks about one blog's setup, such as its domain, default language or languages. Returns the blog's id, name, custom domain, default locale"},{"name":"get_blog_localization_summary","description":"Use this when someone asks how well their blog is translated, or which languages are missing posts. Returns per-language counts of posts, published posts and dr"},{"name":"create_blog","description":"Use this when someone asks to start a new blog in Polyblog with a given name and languages. Returns the new blog's id, name, domain and languages; the name beco"},{"name":"get_sitemap_urls","description":"Use this when someone asks what pages their blog's sitemap lists, or which pages are available to link to. Returns the sitemap's URL count and the first 25 URLs"},{"name":"refresh_topic_ideas","description":"Use this when someone asks for new blog topic ideas from Reddit or RSS feeds. Returns counts and up to 5 of the saved ideas; it fetches the sources, scores cand"},{"name":"list_topic_ideas","description":"Use this when someone asks what they could write about next from topic ideas already saved. Returns each idea's id, score out of 10, title, status and source, f"},{"name":"set_topic_idea_status","description":"Use this when someone asks to mark a topic idea as used, dismiss it, or bring it back as new. Returns the idea with its new status and, when given, the article "},{"name":"set_topic_sources","description":"Use this when someone asks to choose which subreddits or RSS feeds their blog's topic research reads. Returns the saved sources; each list passed replaces the o"},{"name":"show_blog_overview","description":"Use this when someone wants a quick overview of one of their blogs. Returns an overview card with the blog's domain, languages and up to 10 most recently edited"},{"name":"open_polyblog","description":"Use this when someone wants to open their PolyBlog library and browse blogs and articles in an interactive workspace. Starts with up to 25 blogs; the view suppo"},{"name":"show_article_preview","description":"Use this when someone wants to see how one blog post looks, with its status and details. Returns a preview card with the post's title, language, published state"}],"package":null,"toolSurface":{"id":"ts_b2aqsgxfpdrh","endpointId":"ep_s6d3k2anhxja","hash":"fa7f3459612537a324fedf19bbf5f518a80e7178a8b4681352ef89dc78780bc7","toolCount":19,"serverName":"polyblog-mcp","serverVersion":"0.1.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-02T01:24:39.677Z","lastSeenAt":"2026-10-11T13:25:39.502Z","observations":35,"toolNames":["search_articles","get_article","list_article_translations","create_article","update_article","delete_article","generate_article","list_blogs","get_blog","get_blog_localization_summary","create_blog","get_sitemap_urls","refresh_topic_ideas","list_topic_ideas","set_topic_idea_status","set_topic_sources","show_blog_overview","open_polyblog","show_article_preview"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_s6d3k2anhxja","url":"https://mcp.polyblog.io/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-07T13:25:58.827Z","auth":{"observedAt":"2026-10-07T13:25:59.254Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://mcp.polyblog.io/.well-known/oauth-protected-resource/mcp","resource":"https://mcp.polyblog.io","authorizationServers":["https://api.authrice.com"],"scopesSupported":["polyblog:read","polyblog:write"]},"authorizationServer":{"url":"https://api.authrice.com/.well-known/oauth-authorization-server","issuer":"https://api.authrice.com","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-07T13:25:59.438Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"polyblog.io","issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validFrom":"2026-08-13T00:00:00.000Z","validTo":"2027-02-26T23:59:59.000Z","daysToExpiry":138,"sanCount":3,"fingerprint256":"AB:13:8C:28:DE:67:E9:4E:BD:3B:E8:0F:98:DC:6D:27:82:A5:7B:B5:18:6A:F3:21:47:C7:C7:71:31:EC:30:4C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.polyblog/polyblog","url":"https://registry.modelcontextprotocol.io/v0/servers/io.polyblog%2Fpolyblog","firstSeenAt":"2026-09-07T07:22:30.488Z","fetchedAt":"2026-10-11T12:19:18.909Z","normalizedAt":"2026-10-11T12:19:18.909Z"}]},"firstSeenAt":"2026-09-07T07:22:30.488Z","updatedAt":"2026-10-11T13:27:36.272Z"}