J

stefans71_wordpress-mcp-server

...
Created 1/2/2025byMCP-Mirror

Language:

JavaScript

Stars:

3

Forks:

2

WordPress MCP Server

License: MIT

A Model Context Protocol (MCP) server that enables AI assistants to interact with WordPress sites through the WordPress REST API. This server provides tools for managing WordPress content programmatically, including creating, retrieving, and updating posts.

Features

  • Create new WordPress posts with customizable titles, content, and status
  • Retrieve WordPress posts with pagination support
  • Update existing posts with new content or status
  • Secure authentication using WordPress application passwords
  • Error handling and detailed response messages

Prerequisites

  • Node.js v18 or higher
  • A WordPress site with REST API enabled
  • WordPress application password for authentication

Installation

  1. Clone this repository:
git clone https://github.com/stefans71/wordpress-mcp-server.git
cd wordpress-server
  1. Install dependencies:
npm install
  1. Build the server:
npm run build

WordPress Configuration

Before using the server, you need to set up your WordPress site:

  1. Ensure your WordPress site has REST API enabled (enabled by default in WordPress 4.7+)
  2. Create an application password:
    • Log in to your WordPress admin panel
    • Go to Users → Profile
    • Scroll down to "Application Passwords"
    • Enter a name for the application (e.g., "MCP Server")
    • Click "Add New Application Password"
    • Copy the generated password (you won't be able to see it again)

MCP Configuration

Add the server to your MCP settings file (usually located at ~/AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "wordpress": {
      "command": "node",
      "args": ["path/to/wordpress-server/build/index.js"]
    }
  }
}

Available Tools

1. create_post

Creates a new WordPress post.

Parameters:

            - `siteUrl` (required): Your WordPress site URL
  • username (required): WordPress username
  • password (required): WordPress application password
  • title (required): Post title
  • content (required): Post content
  • status (optional): Post status ('draft', 'publish', or 'private', defaults to 'draft')

Example:

{
  "tool": "create_post",
  "siteUrl": "https://example.com",
  "username": "admin",
  "password": "xxxx xxxx xxxx xxxx",
  "title": "My First Post",
  "content": "Hello, world!",
  "status": "draft"
}

2. get_posts

Retrieves WordPress posts with pagination.

Parameters:

  • siteUrl (required): Your WordPress site URL
  • username (required): WordPress username
  • password (required): WordPress application password
  • perPage (optional): Number of posts per page (default: 10)
  • page (optional): Page number (default: 1)

Example:

{
  "tool": "get_posts",
  "siteUrl": "https://example.com",
  "username": "admin",
  "password": "xxxx xxxx xxxx xxxx",
  "perPage": 5,
  "page": 1
}

3. update_post

Updates an existing WordPress post.

Parameters:

  • siteUrl (required): Your WordPress site URL
  • username (required): WordPress username
  • password (required): WordPress application password
  • postId (required): ID of the post to update
  • title (optional): New post title
  • content (optional): New post content
  • status (optional): New post status ('draft', 'publish', or 'private')

Example:

{
  "tool": "update_post",
  "siteUrl": "https://example.com",
  "username": "admin",
  "password": "xxxx xxxx xxxx xxxx",
  "postId": 123,
  "title": "Updated Title",
  "content": "Updated content",
  "status": "publish"
}

Response Format

All tools return responses in the following format:

Success Response

{
  "success": true,
  "data": {
    // WordPress API response data
  }
}

Error Response

{
  "success": false,
  "error": "Error message here"
}
            ## Error Handling

The server handles various types of errors:

  • Invalid request format
  • Missing required parameters
  • WordPress API errors
  • Authentication failures
  • Network issues

Each error response includes a descriptive message to help diagnose the issue.

Security Considerations

  • Always use HTTPS URLs for your WordPress site
  • Use application passwords instead of your main WordPress password
  • Keep your application passwords secure and don't share them
  • Consider using WordPress roles and capabilities to limit access
  • Regularly rotate application passwords

Development

To contribute to the development:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests (when available)
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. By contributing to this project, you agree to abide by its terms.

Last updated: 3/4/2025

Publisher info

MCP-Mirror's avatar

MCP Mirror

MCP Mirror

9
followers
0
following
1,016
repos

More MCP servers built with JavaScript

emergency-medicare-planner-mcp-server

emergency-medicare-planner-mcp-server

By manolaz1
mcp-warpcast-server

MCP Server for Warpcast integration

By zhangzhongnan9281
mcp-tavily-server

Tavily MCP Server for Cline

By dkmaker1