Skip to main content
Glama
WordPress MCP Server

WordPress MCP Server

by Leonelberio

WordPress MCP Server

A Model Context Protocol (MCP) server for WordPress integration, compatible with Windows, macOS, and Linux.

Overview

This MCP server enables interaction with WordPress sites through the WordPress REST API. It provides tools for creating, retrieving, and updating posts using JSON-RPC 2.0 protocol.

Related MCP server: WordPress MCP Server

Installation

  1. Clone the repository

  2. Install dependencies:

npm install
  1. Build the project:

npm run build

Configuration

Add the server to your MCP settings file with environment variables for WordPress credentials:

{
  "mcpServers": {
    "wordpress": {
      "command": "node",
      "args": ["path/to/build/index.js"],
      "env": {
        "WORDPRESS_SITE_URL": "https://your-wordpress-site.com",
        "WORDPRESS_USERNAME": "your-username",
        "WORDPRESS_PASSWORD": "your-app-password"
      }
    }
  }
}

The environment variables are:

  • WORDPRESS_SITE_URL: Your WordPress site URL

  • WORDPRESS_USERNAME: WordPress username

  • WORDPRESS_PASSWORD: WordPress application password

You can also provide these credentials in the request parameters if you prefer not to use environment variables.

Available Methods

create_post

Creates a new WordPress post.

Parameters:

  • siteUrl: (optional if set in env) WordPress site URL

  • username: (optional if set in env) WordPress username

  • password: (optional if set in env) WordPress application password

  • title: Post title

  • content: Post content

  • status: (optional) 'draft' | 'publish' | 'private' (default: 'draft')

get_posts

Retrieves WordPress posts.

Parameters:

  • siteUrl: (optional if set in env) WordPress site URL

  • username: (optional if set in env) WordPress username

  • password: (optional if set in env) WordPress application password

  • perPage: (optional) Number of posts per page (default: 10)

  • page: (optional) Page number (default: 1)

update_post

Updates an existing WordPress post.

Parameters:

  • siteUrl: (optional if set in env) WordPress site URL

  • username: (optional if set in env) WordPress username

  • password: (optional if set in env) WordPress application password

  • postId: ID of the post to update

  • title: (optional) New post title

  • content: (optional) New post content

  • status: (optional) 'draft' | 'publish' | 'private'

Security Note

For security, it's recommended to use WordPress application passwords instead of your main account password. You can generate an application password in your WordPress dashboard under Users → Security → Application Passwords.

Example Usage

Using environment variables:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "create_post",
  "params": {
    "title": "My New Post",
    "content": "Hello World!",
    "status": "draft"
  }
}

Without environment variables:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "create_post",
  "params": {
    "siteUrl": "https://your-wordpress-site.com",
    "username": "your-username",
    "password": "your-app-password",
    "title": "My New Post",
    "content": "Hello World!",
    "status": "draft"
  }
}

Requirements

  • Node.js 20.0.0 or higher

  • WordPress site with REST API enabled

  • WordPress application password for authentication

License

MIT License - See LICENSE file for details

Available Tools

3 tools
create_postC

Create a new WordPress post

Inputs: content (required), title (required), password, siteUrl, +2 more.

get_postsC

Get WordPress posts

Inputs: page, password, perPage, siteUrl, +1 more.

update_postC

Update an existing WordPress post

Inputs: postId (required), content, password, siteUrl, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting different CRUD operations: create_post for creation, get_posts for retrieval, and update_post for modification. There is no overlap or ambiguity between these functions, making it easy for an agent to select the correct tool.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (create_post, get_posts, update_post) with no deviations in style or convention. This predictability enhances readability and usability for agents.

    Tool Count3/5

    With only 3 tools, the set feels thin for a WordPress server, as it lacks delete_post and other common operations like managing pages or media. While the tools cover basic post CRUD, the scope is limited and may not support full agent workflows.

    Completeness2/5

    The tool surface is significantly incomplete for WordPress management. It includes create, get, and update for posts but omits delete_post, as well as tools for pages, media, users, or settings, leaving notable gaps that could cause agent failures in broader tasks.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers