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