Cursor / Claude から WordPress にブログ記事を投稿できる MCP (Model Context Protocol) Server です。
- 投稿管理: 作成・更新・取得・削除
- Markdown 対応: GFM (GitHub Flavored Markdown) を自動で Gutenberg ブロックに変換
- Gutenberg ブロック出力: 段落、見出し、リスト、画像、引用、テーブルなどが適切なブロック形式で出力
- Highlighting Code Block 対応: コードブロックは Highlighting Code Block プラグイン形式で出力
- 画像自動アップロード: Markdown 内のローカル画像を検出して自動アップロード
- アイキャッチ画像: 投稿作成・更新時にアイキャッチ画像を設定可能
- AI アイキャッチ画像生成: Gemini API を使って記事内容からアイキャッチ画像を自動生成
- メディア管理: 画像や動画のアップロード・削除
- カテゴリ・タグ: 一覧取得、新規作成、投稿への設定
- カスタムタクソノミー対応: カスタム投稿タイプのタクソノミー(カテゴリ・タグ)の取得・作成・設定
git clone <repository-url>
cd mcp-wordpress-server
npm install
npm run build- WordPress 管理画面にログイン
- ユーザー → プロフィール に移動
- 「アプリケーションパスワード」セクションまでスクロール
- アプリケーション名を入力(例:
Cursor MCP) - 「新しいアプリケーションパスワードを追加」をクリック
- 表示されたパスワードを安全に保管(再表示されません)
注意: アプリケーションパスワードは WordPress 5.6 以上で利用可能です。HTTPS が必須です。
~/.cursor/mcp.json を作成または編集:
{
"mcpServers": {
"wordpress": {
"command": "node",
"args": ["/path/to/mcp-wordpress-server/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx",
"WP_POST_TYPE": "articles"
}
}
}
}パスは絶対パスで指定してください。
| 変数名 | 必須 | 説明 |
|---|---|---|
WORDPRESS_URL |
✅ | WordPress サイトの URL |
WORDPRESS_USERNAME |
✅ | WordPress ユーザー名 |
WORDPRESS_APP_PASSWORD |
✅ | アプリケーションパスワード |
WP_POST_TYPE |
❌ | 投稿タイプ(デフォルト: posts) |
GEMINI_API_KEY |
❌ | Gemini API キー(generate_featured_image 使用時に必要) |
カスタム投稿タイプの使用:
WP_POST_TYPEを設定すると、通常の「投稿」ではなくカスタム投稿タイプに対して操作を行います。例えばarticlesを設定すると、/wp-json/wp/v2/articlesエンドポイントを使用します。
設定を反映するため、Cursor を完全に終了して再起動します。
Cursor で Claude に以下のように指示できます:
このMarkdownファイルをWordPressの下書きとして投稿して
以下の内容でブログ記事を作成して:
タイトル: TypeScriptの基礎
本文: ...
./blog/my-article.md をWordPressに投稿して
WordPressの下書き一覧を見せて
投稿ID 123 を公開して
./images/screenshot.png をWordPressにアップロードして
| Tool | 説明 |
|---|---|
get_posts |
投稿一覧を取得 |
get_post |
指定 ID の投稿を取得 |
create_post |
新規投稿を作成 |
create_post_from_file |
Markdown ファイルから投稿を作成 |
update_post |
投稿を更新 |
delete_post |
投稿を削除 |
| Tool | 説明 |
|---|---|
upload_media |
メディアをアップロード |
get_media |
メディア情報を取得 |
delete_media |
メディアを削除 |
generate_featured_image |
AI でアイキャッチ画像を生成してアップロード |
| Tool | 説明 |
|---|---|
get_categories |
カテゴリ一覧を取得 |
create_category |
カテゴリを新規作成 |
get_tags |
タグ一覧を取得 |
create_tag |
タグを新規作成 |
カスタム投稿タイプで使用されるカスタムタクソノミー(カテゴリ・タグ)を操作できます。
| Tool | 説明 |
|---|---|
get_taxonomies |
利用可能なタクソノミー一覧を取得 |
get_taxonomy_terms |
指定タクソノミーのターム一覧を取得 |
create_taxonomy_term |
指定タクソノミーに新しいタームを作成 |
set_post_terms |
投稿にカスタムタクソノミーを設定 |
# 1. 利用可能なタクソノミーを確認
get_taxonomies を実行して、articles 投稿タイプで使えるタクソノミーを確認
# 2. タクソノミーのタームを取得
get_taxonomy_terms で rest_base(例: tag-words)を指定してターム一覧を取得
# 3. 投稿にタームを設定
set_post_terms で投稿ID、タクソノミー、ターム ID の配列を指定して設定
create_post、create_post_from_file、update_post で featured_media パラメータを使用してアイキャッチ画像を設定できます:
1. まず画像をアップロード: upload_media で画像をアップロードし、メディアIDを取得
2. 投稿作成時に指定: create_post の featured_media にメディアIDを設定
generate_featured_image ツールを使用すると、記事のタイトルと本文から AI(Gemini API)でアイキャッチ画像を自動生成できます。
必要な設定: 環境変数 GEMINI_API_KEY を設定してください。
パラメータ:
| パラメータ | 必須 | 説明 |
|---|---|---|
title |
✅ | 記事のタイトル |
content |
✅ | 記事の本文(Markdown 可) |
custom_prompt |
❌ | カスタム画像生成プロンプト(指定時は本文からの自動生成をスキップ) |
aspect_ratio |
❌ | アスペクト比(デフォルト: 16:9) |
style |
❌ | スタイル: photorealistic, illustration, abstract, minimalist(デフォルト: illustration) |
alt_text |
❌ | 代替テキスト |
使用例:
# 記事内容からアイキャッチ画像を自動生成
generate_featured_image でタイトルと本文を指定
→ メディア ID が返却される
# 投稿作成時に設定
create_post で featured_media に返却されたメディア ID を指定
GFM (GitHub Flavored Markdown) に対応し、WordPress Gutenberg ブロック形式で出力します:
| Markdown 要素 | 出力ブロック |
|---|---|
| 段落 | wp:paragraph |
見出し (#, ##, ###) |
wp:heading |
| リスト(順序付き、順序なし) | wp:list |
| コードブロック | wp:loos-hcb/code-block (Highlighting Code Block) |
引用 (>) |
wp:quote |
| 画像 | wp:image |
| テーブル | wp:table |
区切り線 (---) |
wp:separator |
打ち消し線 (~~text~~) |
インライン <del> |
| インラインコード | インライン <code> |
コードブロックは Highlighting Code Block プラグイン形式で出力されます。WordPress にこのプラグインをインストールしておく必要があります。
対応言語(一部):
- JavaScript / TypeScript (
js,ts,jsx,tsx) - Python (
python,py) - HTML / CSS / SCSS
- Bash / Shell
- PHP, Ruby, Go, Rust, Java, C/C++, SQL
- YAML, JSON, Markdown
- その他多数
Markdown 内の相対パス画像は自動的に WordPress にアップロードされます:
上記の画像は WordPress のメディアライブラリにアップロードされ、URL が自動的に置換されます。
- ユーザー名とアプリケーションパスワードを確認
- アプリケーションパスワードにスペースが含まれていても問題ありません
- WordPress の URL が正しいか確認
https://your-site.com/wp-json/wp/v2/postsにブラウザでアクセスして確認- セキュリティプラグインが REST API をブロックしていないか確認
- ファイルパスが正しいか確認
- サポートされている形式: jpg, jpeg, png, gif, webp, svg, pdf, mp4, webm
npm run buildMCP Inspector を使ってデバッグ:
WORDPRESS_URL=https://... WORDPRESS_USERNAME=... WORDPRESS_APP_PASSWORD=... WP_POST_TYPE=articles npm run inspectMIT