이 MCP로 할 수 있는 일
Creates, manages, localizes, previews, and publishes multilingual blog articles, including AI-generated SEO drafts and topic research.
도구
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId', 'title', 'content'], 'properties': {'slug': {'type': 'string', 'maxLength': 300, 'description': 'URL slug such as my-first-post, up to 300 characters'}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Post title, 1 to 300 characters'}, 'author': {'type': 'string', 'maxLength': 200, 'description': 'Author name shown on the post, up to 200 characters'}, 'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog to add the post to'}, 'format': {'enum': ['markdown', 'html'], 'type': 'string', 'description': 'markdown or html; content is treated as HTML when omitted'}, 'locale': {'type': 'string', 'maxLength': 50, 'description': 'Post language, an ISO 639-1 code such as en or it; required with originalArticleId'}, 'content': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'Post body in the chosen format, Markdown or HTML, up to 100,000 characters'}, 'published': {'type': 'boolean', 'description': 'true publishes the post on the blog; false or omitted keeps it a draft'}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 50, 'description': 'Up to 50 category names, each up to 100 characters'}, 'description': {'type': 'string', 'maxLength': 1000, 'description': 'Short summary shown in listings and search results, up to 1,000 characters'}, 'originalArticleId': {'type': 'string', 'maxLength': 200, 'description': "Makes this article the `locale` version in an existing article's translation group. It is the original article's id, never a sibling translation's id; absent means a new original."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'article'], 'properties': {'status': {'type': 'string', 'const': 'created'}, 'article': {'type': 'object', 'required': ['id', 'title', 'locale', 'slug', 'published', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog name, which becomes the public <name>.polyblog.io subdomain and has to be globally unique'}, 'locales': {'type': 'array', 'items': {'$ref': '#/properties/defaultLocale'}, 'maxItems': 100, 'description': 'Every language the blog publishes in, ISO 639-1 codes such as en and it'}, 'description': {'type': 'string', 'maxLength': 600, 'description': 'Short description of what the blog is about, up to 600 characters'}, 'defaultLocale': {'type': 'string', 'maxLength': 50, 'description': 'Main language, an ISO 639-1 code such as en'}, 'articlesFormat': {'enum': ['markdown', 'html'], 'type': 'string', 'description': "Format for the blog's posts: markdown or html"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'blog'], 'properties': {'blog': {'type': 'object', 'required': ['id', 'name', 'customDomain', 'logoUrl', 'defaultLocale', 'locales', 'localesTruncated', 'coverUrl', 'created', 'edited'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'edited': {'$ref': '#/properties/blog/properties/created'}, 'created': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'locales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 100}, 'logoUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'coverUrl': {'$ref': '#/properties/blog/properties/logoUrl'}, 'customDomain': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'localesTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'created'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Id of the original post (its originalArticleId); every language version of it is deleted'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'articleId'], 'properties': {'status': {'type': 'string', 'const': 'deleted'}, 'articleId': {'type': 'string', 'maxLength': 200, 'description': 'The id passed in. The API deletes every article whose originalArticleId equals it, so a translation id deletes nothing even though status is deleted.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'topic': {'type': 'object', 'required': ['title'], 'properties': {'angle': {'type': 'string', 'maxLength': 500, 'description': 'One-line angle / framing for the article'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Article topic title'}}, 'description': 'Title and optional angle to write about; omit when topicIdeaId is given', 'additionalProperties': False}, 'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog to write for'}, 'locale': {'type': 'string', 'maxLength': 50, 'description': "Language of the post, an ISO 639-1 code; defaults to the blog's default locale"}, 'persist': {'type': 'boolean', 'description': 'false returns a preview without saving anything; defaults to true'}, 'autoPublish': {'type': 'boolean', 'description': 'true publishes the post immediately; defaults to false, a draft'}, 'topicIdeaId': {'type': 'string', 'maxLength': 200, 'description': 'Saved topic idea to write about; omit when topic is given'}, 'sitemapMaxUrls': {'type': 'integer', 'maximum': 500, 'description': 'How many sitemap URLs to offer as internal links, from 1 to 500; defaults to 150', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'article'], 'properties': {'status': {'type': 'string', 'const': 'generated'}, 'article': {'type': 'object', 'required': ['id', 'url', 'title', 'slug', 'locale', 'wordCount', 'internalLinksKept', 'internalLinksDropped', 'imageGeneration', 'published'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'url': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}, 'wordCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'imageGeneration': {'type': 'string', 'const': 'disabled'}, 'internalLinksKept': {'$ref': '#/properties/article/properties/wordCount/anyOf/0'}, 'internalLinksDropped': {'$ref': '#/properties/article/properties/wordCount/anyOf/0'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'locale': {'type': 'string', 'maxLength': 50, 'description': 'Language of the post, an ISO 639-1 code such as en; needed when looking up by slug'}, 'idOrSlug': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Article id, or its slug together with locale'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'article'], 'properties': {'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'article': {'anyOf': [{'type': 'object', 'required': ['id', 'title', 'locale', 'slug', 'published', 'lastEditTime', 'blogId', 'description', 'content', 'contentTruncated', 'format', 'author', 'created', 'coverUrl'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'author': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'blogId': {'$ref': '#/properties/article/anyOf/0/properties/id'}, 'format': {'anyOf': [{'type': 'string', 'maxLength': 20}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'content': {'anyOf': [{'type': 'string', 'maxLength': 8000}, {'type': 'null'}]}, 'created': {'$ref': '#/properties/article/anyOf/0/properties/lastEditTime'}, 'coverUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'contentTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrName'], 'properties': {'idOrName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Blog id, or the blog's name"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'blog'], 'properties': {'blog': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'customDomain', 'logoUrl', 'defaultLocale', 'locales', 'localesTruncated', 'coverUrl', 'created', 'edited'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'edited': {'$ref': '#/properties/blog/anyOf/0/properties/created'}, 'created': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'locales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 100}, 'logoUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'coverUrl': {'$ref': '#/properties/blog/anyOf/0/properties/logoUrl'}, 'customDomain': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'localesTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Blog id, or the blog's name"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blog', 'sample', 'locales'], 'properties': {'blog': {'anyOf': [{'type': 'object', 'required': ['name', 'defaultLocale', 'configuredLocales', 'configuredLocalesTruncated'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'configuredLocales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 50}, 'configuredLocalesTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'sample': {'type': 'object', 'required': ['articles', 'translationGroups', 'truncated'], 'properties': {'articles': {'type': 'integer', 'minimum': 0}, 'truncated': {'type': 'boolean'}, 'translationGroups': {'type': 'integer', 'minimum': 0}}, 'description': 'Coverage is computed from the 100 most recently edited posts; truncated means the blog has more', 'additionalProperties': False}, 'locales': {'type': 'array', 'items': {'type': 'object', 'required': ['locale', 'configured', 'articles', 'published', 'drafts', 'missingFromTranslationGroups', 'coveragePercent'], 'properties': {'drafts': {'type': 'integer', 'minimum': 0}, 'locale': {'type': 'string', 'maxLength': 50}, 'articles': {'type': 'integer', 'minimum': 0}, 'published': {'type': 'integer', 'minimum': 0}, 'configured': {'type': 'boolean'}, 'coveragePercent': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'missingFromTranslationGroups': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 50}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog whose sitemap to read'}, 'locale': {'type': 'string', 'maxLength': 50, 'description': 'Only URLs in this language, a two-letter code such as en'}, 'maxUrls': {'type': 'integer', 'maximum': 2000, 'description': 'How many sitemap URLs to read and count, from 1 to 2,000; defaults to 500, and only the first 25 are listed', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['baseUrl', 'rootSitemap', 'childSitemaps', 'totalUrls', 'returned', 'sample', 'sampleTruncated'], 'properties': {'sample': {'type': 'array', 'items': {'type': 'object', 'required': ['locale', 'lastmod', 'url'], 'properties': {'url': {'$ref': '#/properties/baseUrl'}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'lastmod': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 25, 'description': 'The first 25 URLs read; returned counts every URL read'}, 'baseUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'returned': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'How many sitemap URLs were read, at most maxUrls'}, 'totalUrls': {'$ref': '#/properties/childSitemaps'}, 'rootSitemap': {'$ref': '#/properties/baseUrl'}, 'childSitemaps': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'sampleTruncated': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['originalArticleId'], 'properties': {'blogId': {'type': 'string', 'maxLength': 200, 'description': 'Blog id; when given, the result also lists the blog languages that still lack this post'}, 'originalArticleId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Id of the original article that every translation shares, as reported on each of its versions'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items', 'truncated', 'missingLocales', 'missingLocalesKnown', 'missingLocalesTruncated'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'locale', 'slug', 'published', 'translatedBy'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}, 'translatedBy': {'enum': ['google', 'human', 'unknown'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 100}, 'truncated': {'type': 'boolean'}, 'missingLocales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 100}, 'missingLocalesKnown': {'type': 'boolean'}, 'missingLocalesTruncated': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Blogs per page, from 1 to 100; defaults to 25', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page; absent for the first page'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items', 'hasMore', 'nextCursor'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'customDomain', 'logoUrl'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'logoUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'customDomain': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Ideas per page, from 1 to 100; defaults to 25', 'exclusiveMinimum': 0}, 'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog whose ideas to list'}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page with the same filters; absent for the first page'}, 'status': {'enum': ['new', 'used', 'dismissed'], 'type': 'string', 'description': 'Only ideas with this status: new, used or dismissed; omit for all'}, 'minScore': {'type': 'integer', 'maximum': 10, 'minimum': 0, 'description': 'Only ideas with at least this AI score, 0 to 10'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items', 'hasMore', 'nextCursor'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'score', 'status', 'source'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'integer', 'maximum': 10, 'minimum': 0}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'source': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'status': {'enum': ['new', 'used', 'dismissed', 'unknown'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 100}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['items', 'hasMore', 'nextCursor'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'customDomain', 'logoUrl'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'logoUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'customDomain': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 25}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Blog to find ideas for'}, 'sources': {'type': 'object', 'properties': {'rss': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'maxItems': 20, 'description': 'Full RSS / Atom feed URLs'}, 'reddit': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 20, 'description': 'Subreddit names (without /r/)'}}, 'description': "Subreddits and RSS feeds for this run only; the blog's saved sources when absent", 'additionalProperties': False}, 'audience': {'type': 'string', 'maxLength': 600, 'description': "Who the blog writes for; defaults to the blog's context"}, 'minScore': {'type': 'integer', 'maximum': 10, 'minimum': 0, 'description': 'Lowest AI score, 0 to 10, an idea needs to be saved; defaults to 5'}, 'sinceHours': {'type': 'integer', 'maximum': 8760, 'description': 'How far back to read, in hours, from 1 to 8,760; defaults to 168 (7 days)', 'exclusiveMinimum': 0}, 'perSourceCap': {'type': 'integer', 'maximum': 100, 'description': 'Most candidates to score from each source, from 1 to 100; no cap by default', 'exclusiveMinimum': 0}, 'limitPerSource': {'type': 'integer', 'maximum': 100, 'description': 'Items to read from each source, from 1 to 100; defaults to 25', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'fetched', 'newCandidates', 'saved', 'duplicatesSkipped', 'alreadyPublishedSkipped', 'topIdeas', 'topIdeasTruncated', 'sourceErrorCount', 'sourceErrorDetailsSuppressed'], 'properties': {'saved': {'$ref': '#/properties/fetched'}, 'status': {'type': 'string', 'const': 'refreshed'}, 'fetched': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'topIdeas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'angle', 'score'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'angle': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'integer', 'maximum': 10, 'minimum': 0}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 5}, 'newCandidates': {'$ref': '#/properties/fetched'}, 'sourceErrorCount': {'$ref': '#/properties/fetched'}, 'duplicatesSkipped': {'$ref': '#/properties/fetched'}, 'topIdeasTruncated': {'type': 'boolean'}, 'alreadyPublishedSkipped': {'$ref': '#/properties/fetched'}, 'sourceErrorDetailsSuppressed': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'slug': {'type': 'string', 'maxLength': 300, 'description': 'Only the post with this exact slug'}, 'limit': {'type': 'integer', 'maximum': 100, 'description': 'Posts per page, from 1 to 100; defaults to 25', 'exclusiveMinimum': 0}, 'blogId': {'type': 'string', 'maxLength': 200, 'description': 'Only posts in this blog'}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page with the same filters; absent for the first page'}, 'locale': {'type': 'string', 'maxLength': 50, 'description': 'Only posts in this language, an ISO 639-1 code such as en or it'}, 'published': {'enum': ['true', 'false'], 'type': 'string', 'description': '"true" for published posts only, "false" for drafts only; omit for both'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items', 'hasMore', 'nextCursor'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'locale', 'slug', 'published', 'coverUrl'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'coverUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}}, 'additionalProperties': False}, 'maxItems': 100}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topicIdeaId', 'status'], 'properties': {'status': {'enum': ['new', 'used', 'dismissed'], 'type': 'string', 'description': 'New status: new, used or dismissed'}, 'topicIdeaId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Topic idea id'}, 'usedForArticleId': {'type': 'string', 'maxLength': 200, 'description': 'Id of the article written from this idea; only with status used'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'topicIdea'], 'properties': {'status': {'type': 'string', 'const': 'updated'}, 'topicIdea': {'type': 'object', 'required': ['id', 'title', 'score', 'status', 'usedForArticleId'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'score': {'anyOf': [{'type': 'integer', 'maximum': 10, 'minimum': 0}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'status': {'enum': ['new', 'used', 'dismissed', 'unknown'], 'type': 'string'}, 'usedForArticleId': {'$ref': '#/properties/topicIdea/properties/id'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['blogId'], 'properties': {'rss': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'maxItems': 20, 'description': 'Complete new list of up to 20 HTTPS RSS or Atom feed URLs; replaces the old list'}, 'clear': {'type': 'boolean', 'description': 'true removes every saved source'}, 'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Blog id, or the blog's name"}, 'reddit': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 20, 'description': 'Complete new list of up to 20 subreddit names, without /r/; replaces the old list'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'blog'], 'properties': {'blog': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'reddit', 'rss', 'redditTruncated', 'rssTruncated'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'rss': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2048}, 'maxItems': 20}, 'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'reddit': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 20}, 'rssTruncated': {'type': 'boolean'}, 'redditTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'enum': ['updated', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['articleId'], 'properties': {'articleId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Polyblog article id to preview, at most 200 characters'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['article'], 'properties': {'article': {'anyOf': [{'type': 'object', 'required': ['id', 'blogId', 'title', 'description', 'contentPreview', 'contentTruncated', 'format', 'locale', 'slug', 'published', 'coverUrl', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'type': 'string', 'maxLength': 300}, 'blogId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'format': {'anyOf': [{'type': 'string', 'maxLength': 20}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'coverUrl': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'published': {'type': 'boolean'}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}, 'contentPreview': {'type': 'string', 'maxLength': 6000}, 'contentTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['blogId'], 'properties': {'blogId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Polyblog blog id to render, at most 200 characters'}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['blog', 'articles', 'hasMoreArticles'], 'properties': {'blog': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'customDomain', 'defaultLocale', 'locales'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'locales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 100}, 'customDomain': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'slug', 'locale', 'published', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'type': 'string', 'maxLength': 300}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'published': {'type': 'boolean'}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 10}, 'hasMoreArticles': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Id of the post to change'}, 'slug': {'type': 'string', 'maxLength': 300, 'description': "New URL slug, up to 300 characters; changes the post's URL"}, 'title': {'type': 'string', 'maxLength': 300, 'description': 'New title, up to 300 characters'}, 'author': {'type': 'string', 'maxLength': 200, 'description': 'New author name, up to 200 characters'}, 'format': {'enum': ['markdown', 'html'], 'type': 'string', 'description': 'markdown or html, describing how content is written'}, 'content': {'type': 'string', 'maxLength': 100000, 'description': "New body in the post's format, up to 100,000 characters; replaces the whole body"}, 'published': {'type': 'boolean', 'description': 'true publishes the post, false turns it back into a draft'}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 50, 'description': 'Complete new list of up to 50 categories; replaces the old list'}, 'description': {'type': 'string', 'maxLength': 1000, 'description': 'New summary, up to 1,000 characters'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'article'], 'properties': {'status': {'enum': ['updated', 'not-found'], 'type': 'string'}, 'article': {'anyOf': [{'type': 'object', 'required': ['id', 'title', 'locale', 'slug', 'published', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'slug': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}]}, 'locale': {'anyOf': [{'type': 'string', 'maxLength': 50}, {'type': 'null'}]}, 'published': {'type': ['boolean', 'null']}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
Hermoso
Supports ad research, competitor analysis, video and static ad creation, campaign policy checks, content publishing, and performa…
Heista
Analyzes video advertising, builds brand intelligence profiles, researches markets, and generates advertising scripts and creativ…
Spook SEO
Provides SEO analysis, keyword and content generation, AEO checks, ad copy tools and automated article generation and publishing.
VarynForge
Supports SEO research and content planning through niche analysis, competitor and keyword research, opportunity discovery, and wr…
AfterLaunch: the agentic growth marketing engine
Runs growth-marketing workflows covering SEO, AI-search visibility, competitor analysis, content planning, distribution channels,…
RoboWrite
Supports brand setup, content briefs, AI-generated drafts, editorial review, quality checks, and publishing workflows.
ai-content-drop
Generates AI images, videos, UGC clips, avatars, and finished ads, while organizing creative assets and campaign boards.
Newswire Com
Searches and retrieves recent press releases from Newswire.com's public newsroom feed.