Notipo
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"notipo": {
"url": "https://app.notipo.com/api/mcp"
}
}
}Puntos de conexión remotos
https://app.notipo.com/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (13)
🟢list_posts
List all posts for your Notipo account. Returns title, status, WordPress URL, category, and timestamps.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"posts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string",
"description": "DRAFT | PUBLISHED | SYNCED | FAILED, etc."
},
"wpUrl": {
"type": [
"string",
"null"
]
},
"category": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"id",
"title",
"status",
"wpUrl",
"category",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
}
},
"required": [
"posts"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_post(postId)
Get details of a specific post by ID, including status, WordPress URL, and category.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string",
"description": "DRAFT | PUBLISHED | SYNCED | FAILED, etc."
},
"wpUrl": {
"type": [
"string",
"null"
]
},
"category": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"wpPostId": {
"type": [
"number",
"null"
]
},
"notionPageId": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"title",
"status",
"wpUrl",
"category",
"createdAt",
"updatedAt",
"wpPostId",
"notionPageId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_post(title, body, category, tags, seoKeyword, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Post title"
},
"body": {
"type": "string",
"description": "Post content in markdown"
},
"category": {
"type": "string",
"description": "Category name"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names"
},
"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."
},
"slug": {
"type": "string",
"description": "Custom URL slug"
},
"publish": {
"type": "boolean",
"default": false,
"description": "Publish immediately (true) or create as draft (false)"
}
},
"required": [
"title"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Use get_job to poll status"
},
"notionPageId": {
"type": "string"
}
},
"required": [
"jobId",
"notionPageId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡direct_publish(title, body, category, tags, seoKeyword, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Post title"
},
"body": {
"type": "string",
"description": "Post content in markdown (required)"
},
"category": {
"type": "string",
"description": "Category name"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names"
},
"seoKeyword": {
"type": "string",
"description": "SEO focus keyword"
},
"seoDescription": {
"type": "string",
"maxLength": 160,
"description": "Custom meta description for SEO (max 160 chars)"
},
"imageTitle": {
"type": "string",
"description": "Featured image title/text overlay"
},
"slug": {
"type": "string",
"description": "Custom URL slug"
},
"publish": {
"type": "boolean",
"default": false,
"description": "Publish immediately (true) or create as draft (false)"
}
},
"required": [
"title",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Use get_job to poll status"
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_post(postId, title, body, category, tags, ...)
Update an existing post's content or properties in Notion, then re-sync to WordPress. Only provided fields are updated.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to update"
},
"title": {
"type": "string",
"description": "New title"
},
"body": {
"type": "string",
"description": "New content in markdown (replaces entire body)"
},
"category": {
"type": "string",
"description": "New category name"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "New tag names"
},
"seoKeyword": {
"type": "string",
"description": "New SEO focus keyword"
},
"seoDescription": {
"type": "string",
"maxLength": 160,
"description": "New meta description for SEO (max 160 chars)"
},
"slug": {
"type": "string",
"description": "New URL slug"
},
"publish": {
"type": "boolean",
"description": "Set true to also publish after updating"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Use get_job to poll status"
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡publish_post(postId)
Publish a draft post to WordPress (make it live).
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to publish"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "Use get_job to poll status"
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_post(postId)
Delete a post from Notipo, WordPress, and reset the Notion page status. This cannot be undone.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to delete"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
}
},
"required": [
"deleted"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_categories
List all WordPress categories synced to Notipo. Use these names when creating posts.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"wpCategoryId": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"name",
"wpCategoryId"
],
"additionalProperties": false
}
}
},
"required": [
"categories"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_tags
List all WordPress tags synced to Notipo. Use these names when creating posts.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"wpTagId": {
"type": [
"number",
"null"
]
}
},
"required": [
"id",
"name",
"wpTagId"
],
"additionalProperties": false
}
}
},
"required": [
"tags"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_job(jobId)
Check the status of a sync or publish job. Returns status (PENDING, RUNNING, COMPLETED, FAILED), progress steps, and any error message.
Esquema de entrada
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "The job ID returned from create_post, update_post, or publish_post"
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"description": "SYNC_POST | PUBLISH_POST"
},
"status": {
"type": "string",
"description": "PENDING | RUNNING | COMPLETED | FAILED"
},
"error": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"completedAt": {
"type": [
"string",
"null"
]
},
"result": {
"anyOf": [
{},
{
"type": "null"
}
]
},
"startedAt": {
"type": [
"string",
"null"
]
},
"post": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"wpUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"title",
"status",
"wpUrl"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"type",
"status",
"error",
"createdAt",
"completedAt",
"startedAt",
"post"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_jobs(status, limit)
List recent sync and publish jobs. Useful for monitoring pipeline activity.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"PENDING",
"RUNNING",
"COMPLETED",
"FAILED"
],
"description": "Filter by job status"
},
"limit": {
"type": "number",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "Number of jobs to return (default 10)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"description": "SYNC_POST | PUBLISH_POST"
},
"status": {
"type": "string",
"description": "PENDING | RUNNING | COMPLETED | FAILED"
},
"error": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"completedAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"type",
"status",
"error",
"createdAt",
"completedAt"
],
"additionalProperties": false
}
}
},
"required": [
"jobs"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_settings
Get your Notipo account configuration: which services are connected (Notion, WordPress), current plan, feature settings, and trigger statuses.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"notionConnected": {
"type": "boolean"
},
"wordpressConnected": {
"type": "boolean"
},
"plan": {
"type": "string",
"description": "FREE | TRIAL | PRO"
},
"wpSeoPlugin": {
"type": [
"string",
"null"
],
"description": "RANK_MATH | YOAST | SEOPRESS | AIOSEO"
},
"codeHighlighter": {
"type": [
"string",
"null"
]
}
},
"required": [
"notionConnected",
"wordpressConnected",
"plan",
"wpSeoPlugin",
"codeHighlighter"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪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.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"triggered": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"triggered",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia