Skip to main content
Glama
javeo2022

WordPress MCP Server

by javeo2022
README.md
# WordPress MCP Server for Claude Code

Claude Code から WordPress を直接操作できる MCP サーバーです。  
[FastMCP](https://github.com/jlowin/fastmcp) を使って Python で実装しており、複数サイト(blog / app など)の切り替えにも対応しています。

## 機能

- 投稿・固定ページの作成 / 取得 / 更新 / 削除
- カテゴリ・タグの取得・作成
- Markdown ファイル(frontmatter 付き)からワンコマンド投稿
- メディアのアップロード
- 複数 WordPress サイトへの同時対応

## セットアップ

### 1. パッケージのインストール

```bash
pip install -r requirements.txt
```

### 2. 認証情報の設定

`.env.example` をコピーして `.env` を作成し、各項目を埋めてください。

```bash
cp .env.example .env
```

WordPress の「ユーザー → プロフィール → アプリケーションパスワード」から発行した  
アプリケーションパスワードを `WP_BLOG_APP_PASSWORD` に設定します。

### 3. Claude Code の MCP 設定

`claude_desktop_config.json`(Windows: `%APPDATA%\Claude\`) に追加します。

```json
{
  "mcpServers": {
    "wordpress": {
      "command": "python",
      "args": ["C:/path/to/wp_mcp_server.py"]
    }
  }
}
```

パスはご自身の環境に合わせて変更してください。

## 使い方

Claude Code のチャットで自然言語で操作できます。

```
WordPressに接続を確認して
```

```
articles/my-post.md を下書きとして投稿して
```

```
最新の投稿を5件取得して
```

## Markdown frontmatter

`post_from_markdown_file` ツールで使う Markdown ファイルには frontmatter を書きます。

```yaml
---
title: 記事タイトル
slug: my-article-slug
status: draft          # draft / publish
categories: [1, 2]     # カテゴリ ID
tags: [3, 4]           # タグ ID
site: blog             # blog / app (複数サイト利用時)
---

ここから本文...
```

`id` を書くと既存記事の更新、省略すると新規作成になります。

## 複数サイト対応

`.env` にサイトごとの認証情報を設定し、`site` パラメータで切り替えます。

| site | 環境変数プレフィックス |
|------|----------------------|
| blog | `WP_BLOG_*` |
| app  | `WP_APP_*` |

## 動作確認環境

- Python 3.11+
- Xserver レンタルサーバー(Apache / PHP 8.x)
- WordPress 6.x
- Claude Code Desktop

## ライセンス

MIT