MCP-Server

Notipo

io.github.kfuras/notipo
Marketing & Werbung Medien & Inhalte Produktivität Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Creates, edits, synchronizes, publishes, and manages Markdown blog posts across Notion and WordPress, including images, SEO metadata, categories, tags, and job status.

create_post
Create Post
Create a new blog post. Creates a Notion page and triggers sync to WordPress. The body should be markdown. Set publish=true to publish immediately, or leave false to create a draft.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'body': {'type': 'string', 'description': 'Post content in markdown'}, 'slug': {'type': 'string', 'description': 'Custom URL slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag names'}, 'title': {'type': 'string', 'description': 'Post title'}, 'publish': {'type': 'boolean', 'default': False, 'description': 'Publish immediately (true) or create as draft (false)'}, 'category': {'type': 'string', 'description': 'Category name'}, 'seoKeyword': {'type': 'string', 'description': 'SEO focus keyword'}, 'seoDescription': {'type': 'string', 'maxLength': 160, 'description': 'Custom meta description for SEO (max 160 chars). Auto-derived from content if not set.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId', 'notionPageId'], 'properties': {'jobId': {'type': 'string', 'description': 'Use get_job to poll status'}, 'notionPageId': {'type': 'string'}}, 'additionalProperties': False}
delete_post
Delete Post
Delete a post from Notipo, WordPress, and reset the Notion page status. This cannot be undone.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'The post ID to delete'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['deleted'], 'properties': {'deleted': {'type': 'boolean'}}, 'additionalProperties': False}
direct_publish
Direct Publish
Publish a blog post directly to WordPress without Notion. Handles image uploads, Gutenberg conversion, featured image generation, and SEO metadata. Body must be markdown. Set publish=true to go live, false for draft. Use this instead of create_post when you don't need Notion.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Post content in markdown (required)'}, 'slug': {'type': 'string', 'description': 'Custom URL slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag names'}, 'title': {'type': 'string', 'description': 'Post title'}, 'publish': {'type': 'boolean', 'default': False, 'description': 'Publish immediately (true) or create as draft (false)'}, 'category': {'type': 'string', 'description': 'Category name'}, 'imageTitle': {'type': 'string', 'description': 'Featured image title/text overlay'}, 'seoKeyword': {'type': 'string', 'description': 'SEO focus keyword'}, 'seoDescription': {'type': 'string', 'maxLength': 160, 'description': 'Custom meta description for SEO (max 160 chars)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'Use get_job to poll status'}}, 'additionalProperties': False}
get_job
Get Job Status
Check the status of a sync or publish job. Returns status (PENDING, RUNNING, COMPLETED, FAILED), progress steps, and any error message.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'The job ID returned from create_post, update_post, or publish_post'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'type', 'status', 'error', 'createdAt', 'completedAt', 'startedAt', 'post'], 'properties': {'id': {'type': 'string'}, 'post': {'anyOf': [{'type': 'object', 'required': ['id', 'title', 'status', 'wpUrl'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'wpUrl': {'type': ['string', 'null']}, 'status': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'type': {'type': 'string', 'description': 'SYNC_POST | PUBLISH_POST'}, 'error': {'type': ['string', 'null']}, 'result': {'anyOf': [{}, {'type': 'null'}]}, 'status': {'type': 'string', 'description': 'PENDING | RUNNING | COMPLETED | FAILED'}, 'createdAt': {'type': 'string'}, 'startedAt': {'type': ['string', 'null']}, 'completedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_post
Get Post
Get details of a specific post by ID, including status, WordPress URL, and category.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'The post ID'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'status', 'wpUrl', 'category', 'createdAt', 'updatedAt', 'wpPostId', 'notionPageId'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'wpUrl': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': 'DRAFT | PUBLISHED | SYNCED | FAILED, etc.'}, 'category': {'type': ['string', 'null']}, 'wpPostId': {'type': ['number', 'null']}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'notionPageId': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_settings
Get Settings
Get your Notipo account configuration: which services are connected (Notion, WordPress), current plan, feature settings, and trigger statuses.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notionConnected', 'wordpressConnected', 'plan', 'wpSeoPlugin', 'codeHighlighter'], 'properties': {'plan': {'type': 'string', 'description': 'FREE | TRIAL | PRO'}, 'wpSeoPlugin': {'type': ['string', 'null'], 'description': 'RANK_MATH | YOAST | SEOPRESS | AIOSEO'}, 'codeHighlighter': {'type': ['string', 'null']}, 'notionConnected': {'type': 'boolean'}, 'wordpressConnected': {'type': 'boolean'}}, 'additionalProperties': False}
list_categories
List Categories
List all WordPress categories synced to Notipo. Use these names when creating posts.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['categories'], 'properties': {'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'wpCategoryId'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'wpCategoryId': {'type': ['number', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_jobs
List Recent Jobs
List recent sync and publish jobs. Useful for monitoring pipeline activity.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Number of jobs to return (default 10)'}, 'status': {'enum': ['PENDING', 'RUNNING', 'COMPLETED', 'FAILED'], 'type': 'string', 'description': 'Filter by job status'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type', 'status', 'error', 'createdAt', 'completedAt'], 'properties': {'id': {'type': 'string'}, 'type': {'type': 'string', 'description': 'SYNC_POST | PUBLISH_POST'}, 'error': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': 'PENDING | RUNNING | COMPLETED | FAILED'}, 'createdAt': {'type': 'string'}, 'completedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_posts
List Posts
List all posts for your Notipo account. Returns title, status, WordPress URL, category, and timestamps.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['posts'], 'properties': {'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'status', 'wpUrl', 'category', 'createdAt', 'updatedAt'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'wpUrl': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': 'DRAFT | PUBLISHED | SYNCED | FAILED, etc.'}, 'category': {'type': ['string', 'null']}, 'createdAt': {'type': 'string'}, 'updatedAt': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_tags
List Tags
List all WordPress tags synced to Notipo. Use these names when creating posts.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tags'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'wpTagId'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'wpTagId': {'type': ['number', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
publish_post
Publish Post
Publish a draft post to WordPress (make it live).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'The post ID to publish'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'Use get_job to poll status'}}, 'additionalProperties': False}
sync_now
Sync Now
Trigger an immediate sync from Notion. Checks for any posts with trigger statuses and queues sync jobs. Pro plan only. Has a 15-second cooldown between calls.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['triggered', 'message'], 'properties': {'message': {'type': 'string'}, 'triggered': {'type': 'boolean'}}, 'additionalProperties': False}
update_post
Update Post
Update an existing post's content or properties in Notion, then re-sync to WordPress. Only provided fields are updated.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['postId'], 'properties': {'body': {'type': 'string', 'description': 'New content in markdown (replaces entire body)'}, 'slug': {'type': 'string', 'description': 'New URL slug'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'New tag names'}, 'title': {'type': 'string', 'description': 'New title'}, 'postId': {'type': 'string', 'description': 'The post ID to update'}, 'publish': {'type': 'boolean', 'description': 'Set true to also publish after updating'}, 'category': {'type': 'string', 'description': 'New category name'}, 'seoKeyword': {'type': 'string', 'description': 'New SEO focus keyword'}, 'seoDescription': {'type': 'string', 'maxLength': 160, 'description': 'New meta description for SEO (max 160 chars)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'Use get_job to poll status'}}, 'additionalProperties': False}
Hinzugefügt
sync_now
17. September 2026 12:42
Hinzugefügt
get_settings
17. September 2026 12:42
Hinzugefügt
list_jobs
17. September 2026 12:42
Hinzugefügt
get_job
17. September 2026 12:42
Hinzugefügt
list_tags
17. September 2026 12:42
Hinzugefügt
list_categories
17. September 2026 12:42
Hinzugefügt
delete_post
17. September 2026 12:42
Hinzugefügt
publish_post
17. September 2026 12:42
Hinzugefügt
update_post
17. September 2026 12:42
Hinzugefügt
direct_publish
17. September 2026 12:42
Hinzugefügt
create_post
17. September 2026 12:42
Hinzugefügt
get_post
17. September 2026 12:42
Hinzugefügt
list_posts
17. September 2026 12:42