Notipo
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"notipo": {
"url": "https://app.notipo.com/api/mcp"
}
}
}遠端端點
https://app.notipo.com/api/mcpstreamable-http它能做什麼
工具清單
工具(13)
🟢list_posts
List all posts for your Notipo account. Returns title, status, WordPress URL, category, and timestamps.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"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#"
}輸出結構描述
{
"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.
輸入結構描述
{
"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#"
}輸出結構描述
{
"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.
輸入結構描述
{
"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#"
}輸出結構描述
{
"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).
輸入結構描述
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to publish"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to delete"
}
},
"required": [
"postId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"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#"
}輸出結構描述
{
"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.
輸入結構描述
{
"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#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"triggered": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"triggered",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據