mcpField
M
MCP Wordpress

MCP Wordpress

ローカル
github.com/crunchtoolsビジネス・マーケティング12 日前に更新

MCP Wordpress について

MCP WordPress CrunchTools は、WordPress の投稿、ページ、メディア、コメントを管理する開発者向けのローカル MCP サーバーです。保存済みソースを対象とする編集や書き込み前のバージョン確認に加え、入力検証と SSRF 対策を備えています。

主な機能

  1. 01投稿、ページ、メディア、コメントの管理
  2. 02投稿予約とリビジョン確認
  3. 03保存済みソースの部分置換編集
  4. 04更新前の期待バージョン確認
  5. 05入力検証と SSRF 防止

活用シーン

  1. 01技術ブログ記事の下書きや公開予約
  2. 02古い内容を上書きせずに WordPress ページを更新
  3. 03メディアのアップロードとコメントのモデレーション

MCP 対応

stdio でローカル実行し、サイト URL、ユーザー名、アプリケーションパスワードを使って MCP クライアントを WordPress に接続します。コンテンツ管理ツールを提供し、認証情報はローカルマシンに保持します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"crunchtools-wordpress": {
"command": "uvx",
"args": [
"mcp-wordpress-crunchtools"
]
}
}
}
起動コマンドuvx mcp-wordpress-crunchtools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-wordpress-crunchtools0.4.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP WordPress CrunchTools

WordPress コンテンツ管理用のセキュアな MCP(Model Context Protocol)サーバーです。開発者が自身の取り組みについて発信するために設計されています。

概要

この MCP サーバーは、次の特長を備えています。

  • デフォルトでセキュア - 入力検証、認証情報の保護、SSRF の防止
  • サードパーティサービス不要 - stdio 経由でローカル実行され、認証情報がマシンの外に出ることはありません
  • クロスプラットフォーム - Linux、macOS、Windows で動作します
  • 自動更新 - GitHub Actions が CVE を監視し、依存関係を更新します
  • コンテナ化 - quay.io/crunchtools/mcp-wordpress で利用できます

命名規則

コンポーネント名前
GitHub リポジトリcrunchtools/mcp-wordpress
コンテナquay.io/crunchtools/mcp-wordpress
Python パッケージ(PyPI)mcp-wordpress-crunchtools
CLI コマンドmcp-wordpress-crunchtools
モジュールのインポートmcp_wordpress_crunchtools

機能

  • 投稿、固定ページ、メディア、コメント用の 33 個のツール
  • セキュリティ重視:認証情報の保護、入力検証、SSRF の防止
  • 開発者向けワークフロー:予約投稿、リビジョン、検索
  • 簡単に統合可能:Claude Code やその他の MCP クライアントで動作します

インストール

uvx を使用(推奨)
uvx mcp-wordpress-crunchtools
pip を使用
pip install mcp-wordpress-crunchtools
mcp-wordpress-crunchtools
コンテナを使用
# Create a shared upload directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads

podman run -v ~/.local/share/mcp-uploads-downloads:/tmp/mcp-uploads:z \
  -e WORDPRESS_URL=https://example.com \
  -e WORDPRESS_USERNAME=admin \
  -e WORDPRESS_APP_PASSWORD='xxxx xxxx xxxx xxxx' \
  quay.io/crunchtools/mcp-wordpress

SELinux に関する注意: :Z(大文字、プライベート)の代わりに :z(小文字、共有)を使用してください。 MCP サーバーは長時間稼働する stdio プロセスとして実行されます。:Z を使用すると、コンテナの起動後に ディレクトリへコピーしたファイルにはコンテナのプライベート MCS ラベルが付かず、 コンテナ内から見えなくなります。:z フラグは、すべてのコンテナとホストが読み書きできる共有 container_file_t コンテキストを設定します。

ヒント: 複数の MCP コンテナサーバー(例:mcp-wordpress と mcp-gemini)間で同じ共有ディレクトリ(~/.local/share/mcp-uploads-downloads/) を使用すると、生成したファイルをコピーせずにすぐアップロードできます。

ソースからインストール
git clone https://github.com/crunchtools/mcp-wordpress.git
cd mcp-wordpress
uv sync --all-extras
uv run mcp-wordpress-crunchtools

設定

次の環境変数を設定します。

変数説明例
WORDPRESS_URLWordPress サイトの URLhttps://example.com
WORDPRESS_USERNAMEWordPress のユーザー名admin
WORDPRESS_APP_PASSWORDアプリケーションパスワードxxxx xxxx xxxx xxxx
MCP_UPLOAD_DIRコンテナ内のアップロードディレクトリ(任意)/tmp/mcp-uploads(デフォルト)
アプリケーションパスワードの作成
  1. WordPress の管理画面にログインします
  2. ユーザー → プロフィールに移動します
  3. アプリケーションパスワードまでスクロールします
  4. 名前(例:「MCP Server」)を入力し、新規追加をクリックします
  5. 生成されたパスワードをコピーします(表示されるのは一度だけです)

Claude Code での使用方法

uvx を使用(推奨)
claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- uvx mcp-wordpress-crunchtools
pip を使用
pip install mcp-wordpress-crunchtools

claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- mcp-wordpress-crunchtools
コンテナを使用
# Create a shared upload directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads

claude mcp add mcp-wordpress-crunchtools \
    --env WORDPRESS_URL=https://example.com \
    --env WORDPRESS_USERNAME=admin \
    --env WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx" \
    -- podman run -i --rm \
        -v ~/.local/share/mcp-uploads-downloads:/tmp/mcp-uploads:z \
        -e WORDPRESS_URL \
        -e WORDPRESS_USERNAME \
        -e WORDPRESS_APP_PASSWORD \
        quay.io/crunchtools/mcp-wordpress

利用可能なツール

サイトツール
ツール説明
wordpress_get_site_infoサイトのタイトル、説明、URL、タイムゾーンを取得します
wordpress_test_connectionAPI 認証情報が機能することを確認します
編集モデル

読み取りでは、レンダリングされたページではなく、エディターが保存したソース(context=edit)を返すため、エージェントが読み取った内容は安全に書き戻せます。変更は edit_* ツールを介して行います。エージェントが置換対象のテキストと置換後のテキストを正確に送信し、サーバーが現在のソースに適用するため、投稿がエージェントを経由して往復することはありません。投稿と固定ページの更新・編集ツールは、省略可能な expected_version(get_post または get_page が返す version)を受け取ります。これを指定した場合、対象が変更されていれば書き込みは拒否されます。update_* はレンダリング済みの出力を含むコンテンツを拒否します。edit_draft は下書きまたは保留中の投稿のみを編集するため、ゲートウェイは公開済みの投稿を変更する権限を与えずに、リビジョンの権限を付与できます。

投稿ツール
ツール説明
wordpress_list_postsフィルター(ステータス、カテゴリー、検索)を指定して投稿を一覧表示します
wordpress_get_postID を指定して単一の投稿を取得します。保存済みのソース(ブロックマークアップを含む)とバージョンも取得します
wordpress_search_postsキーワードで投稿を検索します
wordpress_create_post新しい投稿を作成します(予約投稿に対応)
wordpress_update_post既存の投稿を更新します。レンダリング済み HTML と、指定された場合は古い expected_version を拒否します
wordpress_edit_post投稿を再送信せずに、投稿のソース内のテキストを置換します
wordpress_edit_draftedit_post と同じですが、下書きまたは保留中の投稿のみを対象とします。それ以外のステータスは拒否します
wordpress_delete_post投稿を削除またはゴミ箱に移動します
wordpress_list_revisions投稿のリビジョンを一覧表示します
wordpress_get_revision指定したリビジョンの内容を取得します
wordpress_list_categories利用可能なカテゴリーを一覧表示します
wordpress_list_tags利用可能なタグを一覧表示します
固定ページツール
ツール説明
wordpress_list_pagesフィルターを指定して固定ページを一覧表示します
wordpress_get_pageID を指定して単一の固定ページを取得します。保存済みのソースとバージョンも取得します
wordpress_create_page新しい固定ページを作成します
wordpress_update_page既存の固定ページを更新します。レンダリング済み HTML と、指定された場合は古い expected_version を拒否します
wordpress_edit_page固定ページを再送信せずに、ページのソース内のテキストを置換します
wordpress_delete_page固定ページを削除またはゴミ箱に移動します
wordpress_list_page_revisions固定ページのリビジョンを一覧表示します
メディアツール
ツール説明
wordpress_list_mediaメディア項目を一覧表示します
wordpress_get_mediaメディア項目の詳細を取得します
wordpress_upload_mediaローカルパスからファイルをアップロードします
wordpress_update_mediaメディアのメタデータを更新します
wordpress_delete_mediaメディア項目を削除します
wordpress_get_media_urlメディアの公開 URL を取得します
コメントツール
ツール説明
wordpress_list_commentsフィルターを指定してコメントを一覧表示します
wordpress_get_comment単一のコメントを取得します
wordpress_create_comment投稿にコメントを追加します
wordpress_update_commentコメントの内容またはステータスを更新します
wordpress_delete_commentコメントを削除します
wordpress_moderate_comment承認、保留、スパム指定、またはゴミ箱への移動を行います

例

下書きの投稿を作成する
Create a new WordPress post titled "My Technical Article" with the content below. Keep it as a draft.
投稿を予約する
Update post ID 123 to publish on December 25, 2024 at 10:00 AM.
画像をアップロードする
Upload this image to WordPress and set the alt text to "Architecture diagram".
コメントを検索してモデレートする
List all comments in "hold" status and approve the legitimate ones.

セキュリティ

  • 認証情報の保護:すべての認証情報は SecretStr として保存され、ログに記録されることはありません
  • SSRF の防止:REST API のパスはハードコードされており、上書きできません
  • 入力の検証:すべての入力は Pydantic モデルを使用して検証されます
  • レート制限:WordPress のレート制限を適切に処理します
  • TLS の適用:すべてのリクエストで、証明書検証付きの HTTPS を使用します
  • サイズ制限:メモリの問題を防ぐため、レスポンスサイズを 10MB に制限します
  • タイムアウト:すべてのリクエストは 30 秒後にタイムアウトします

開発

# Install dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Run linting
uv run ruff check src tests

# Run type checking
uv run mypy src

# Format code
uv run ruff format src tests

ライセンス

AGPL-3.0-or-later

クレジット

crunchtools.com によって開発されました

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。