list_posts
List Posts
List all posts for your Notipo account. Returns title, status, WordPress URL, category, and timestamps.
無需輸入參數。

io.github.kfuras由 GitHub 帳號 kfuras 發布v1.2.5更新於 Oct 25, 2026
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
Notipo 是託管式 MCP 伺服器,讓 AI 助理在自架 WordPress 上建立、更新、發佈和刪除部落格文章,也可從 Notion 同步。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.kfuras%2Fnotipo/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"notipo": {
"type": "http",
"url": "https://app.notipo.com/api/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}Open-source WordPress publishing for AI agents — MCP server, REST API, and CLI. Or sync from Notion.
Point your agent (Claude, Cursor, ChatGPT, n8n, any HTTP client) at Notipo and it publishes to your self-hosted WordPress — no plugin required. Notipo handles the full pipeline: markdown → Gutenberg conversion, image hosting in your WordPress media library, AI- or Unsplash-generated featured images, and Rank Math / Yoast / SEOPress / AIOSEO metadata applied automatically on publish.
[License: AGPL-3.0] [npm: notipo CLI] [Hosted SaaS at notipo.com] [MCP Server]
Connect Notion, change a page status to Post to Wordpress or Publish, and Notipo handles the rest — markdown extraction, image caching to WP media library, featured image generation, SEO metadata via Rank Math / Yoast / SEOPress / AIOSEO.
Notipo exposes a Model Context Protocol (MCP) server with 13 tools for AI agents, plus a REST API and a CLI. Claude Desktop, Cursor, Windsurf, Claude Code, ChatGPT — any MCP-compatible agent can publish posts end-to-end.
See notipo.com/ai-agents for the full AI-agent integration story.
The hosted version at notipo.com is the supported, batteries-included product — managed infrastructure, automatic upgrades, instant Notion webhook delivery, and a free tier with 5 posts/month. Pro is $19/month for unlimited posts plus AI featured images.
This repository is the same code that runs the hosted product. You can self-host it under the AGPL-3.0 license — see DEVELOPMENT.md for the local dev story and docker-compose.yml for production deployment with Traefik + Let's Encrypt.
Self-hosting is unsupported — no help beyond what's in this repo, no upgrade path. If you need any of those, the hosted product is faster, cheaper, and already running.
Monorepo (Turborepo + npm workspaces):
You'll need: Docker, Docker Compose, a domain pointed at your server, a Notion integration, and a WordPress site with Application Passwords enabled (WP 5.6+).
The compose stack pulls multi-arch images (linux/amd64 + linux/arm64) from
ghcr.io/kfuras/notipo-api and ghcr.io/kfuras/notipo-web, so it works on both
x86 servers and Apple Silicon / ARM hardware.
The compose stack starts Traefik + the API + admin UI + Postgres, with Let's Encrypt TLS on first run. See docker-compose.yml for details.
For local development without Docker:
See DEVELOPMENT.md for the full development guide.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) — see LICENSE.
In plain English:
notipo CLI package is published to npm under MIT (it's just a thin API client wrapper).notipo-seo-meta-writer WordPress plugin is published under MIT (compatible with WordPress's GPL ecosystem).If you want to use Notipo's code in a proprietary hosted product without AGPL obligations, open an issue — commercial licensing may be available.
PRs welcome. See CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
For security disclosures, see SECURITY.md — please don't open public issues for vulnerabilities.
來源:README.md,提交 5ba2be1
List Posts
List all posts for your Notipo account. Returns title, status, WordPress URL, category, and timestamps.
無需輸入參數。
Get Post
Get details of a specific post by ID, including status, WordPress URL, and category.
postId必填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.
bodyslugtagstitle必填publishcategoryseoKeywordseoDescriptionDirect 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.
body必填slugtagstitle必填publishcategoryimageTitleseoKeywordseoDescriptionUpdate Post
Update an existing post's content or properties in Notion, then re-sync to WordPress. Only provided fields are updated.
bodyslugtagstitlepostId必填publishcategoryseoKeywordseoDescriptionPublish Post
Publish a draft post to WordPress (make it live).
postId必填Delete Post
Delete a post from Notipo, WordPress, and reset the Notion page status. This cannot be undone.
postId必填List Categories
List all WordPress categories synced to Notipo. Use these names when creating posts.
無需輸入參數。
List Tags
List all WordPress tags synced to Notipo. Use these names when creating posts.
無需輸入參數。
Get Job Status
Check the status of a sync or publish job. Returns status (PENDING, RUNNING, COMPLETED, FAILED), progress steps, and any error message.
jobId必填List Recent Jobs
List recent sync and publish jobs. Useful for monitoring pipeline activity.
limitstatusGet Settings
Get your Notipo account configuration: which services are connected (Notion, WordPress), current plan, feature settings, and trigger statuses.
無需輸入參數。
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.
無需輸入參數。
已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
# CLI: publish a post end-to-endnpm install -g notiponotipo posts create --title "Why Every Dev Should Have a Blog" --publish
# REST API: one call runs the full pipelinecurl -X POST https://app.notipo.com/api/posts/create \ -H "X-API-Key: $NOTIPO_API_KEY" \ -H "Content-Type: application/json" \ -d '{"title":"Hello","body":"## Intro\n\nMarkdown in, WordPress out.","publish":true}'// MCP: drop into Claude Desktop config{ "mcpServers": { "notipo": { "type": "http", "url": "https://app.notipo.com/api/mcp", "headers": { "x-api-key": "your-api-key" } } }}apps/ api/ — Fastify backend, MCP server, job workers web/ — Next.js admin UIpackages/ cli/ — `notipo` npm package (MIT-licensed thin client) shared/ — TypeScript types and enumsplugins/ notipo-seo-meta-writer/ — WordPress plugin for Yoast/AIOSEO metadata bridgegit clone https://github.com/kfuras/notipo-app.gitcd notipo-appcp apps/api/.env.example .env# Edit .env — at minimum set DATABASE_URL, ENCRYPTION_KEY, API_KEY,# DOMAIN, ACME_EMAIL, RESEND_API_KEYdocker compose up -ddocker compose -f docker-compose.dev.yml up # Postgres onlynpm installnpm run migrate -w @notipo/apiturbo dev # API on :3000, web on :3001