Notipo

Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
95%
Integridad del esquema
72%
Calidad de los nombres
98%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,845Tokens (definiciones de herramientas)
~2.1 KBTamaño de respuesta típico
Impacto significativo en la atención (2.22% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas
verificadoversión no registrada13 herramientas