MCP Wordpress
Secure MCP server for WordPress content management
Versions
0.4.1latestTools 30
wordpress_get_site_info Get WordPress site information. Returns site title, description, URL, timezone, and other settings.
wordpress_test_connection Test connection to WordPress REST API. Verifies API credentials and returns connection status.
wordpress_list_posts List WordPress posts with filtering and pagination. Args: status: Filter by status (publish, draft, pending, private, future) search: Search posts by keyword categories: Filter by category IDs tags: Filter by tag IDs page: Page number (default: 1) per_page: Results per page, max 100 (default: 10) orderby: Sort by field (date, title, id, modified) order: Sort direction (asc, desc) Returns: List of posts with pagination info
wordpress_get_post Get a single WordPress post by ID with full content. Args: post_id: Post ID Returns: Full post details including content
wordpress_search_posts Search WordPress posts by keyword in title and content. Args: keyword: Search keyword page: Page number (default: 1) per_page: Results per page (default: 10) Returns: Search results
wordpress_create_post Create a new WordPress post. Args: title: Post title content: Post content (HTML or block format) status: Post status - publish, draft, pending, private, future (default: draft) excerpt: Post excerpt slug: URL slug categories: List of category IDs tags: List of tag IDs featured_media: Featured image media ID date: Publication date (ISO 8601 for scheduling, e.g., 2024-12-25T10:00:00) post_format: Format - standard, aside, gallery, link, image, quote, status, video, audio Returns: Created post details
wordpress_update_post Update an existing WordPress post. Args: post_id: Post ID to update title: New title content: New content status: New status excerpt: New excerpt slug: New slug categories: New category IDs tags: New tag IDs featured_media: New featured image ID date: New publication date post_format: New post format Returns: Updated post details
wordpress_delete_post Delete or trash a WordPress post. Args: post_id: Post ID to delete force: If true, permanently delete. If false, move to trash. Returns: Deletion confirmation
wordpress_list_revisions List revisions for a WordPress post. Args: post_id: Post ID Returns: List of revisions
wordpress_get_revision Get a specific revision of a WordPress post. Args: post_id: Post ID revision_id: Revision ID Returns: Revision details with content
wordpress_list_categories List available WordPress categories. Args: page: Page number per_page: Results per page (max 100) search: Search categories by name Returns: List of categories
wordpress_list_tags List available WordPress tags. Args: page: Page number per_page: Results per page (max 100) search: Search tags by name Returns: List of tags
wordpress_list_pages List WordPress pages with filtering and pagination. Args: status: Filter by status (publish, draft, pending, private, future) search: Search pages by keyword parent: Filter by parent page ID page: Page number (default: 1) per_page: Results per page, max 100 (default: 10) orderby: Sort by field (date, title, id, modified, menu_order) order: Sort direction (asc, desc) Returns: List of pages with pagination info
wordpress_get_page Get a single WordPress page by ID with full content. Args: page_id: Page ID Returns: Full page details including content
wordpress_create_comment Create a new comment on a WordPress post. Args: post: Post ID to comment on content: Comment content parent: Parent comment ID for replies author_name: Comment author name (for anonymous comments) author_email: Comment author email (for anonymous comments) Returns: Created comment details
wordpress_create_page Create a new WordPress page. Args: title: Page title content: Page content (HTML or block format) status: Page status - publish, draft, pending, private, future (default: draft) excerpt: Page excerpt slug: URL slug parent: Parent page ID menu_order: Menu order template: Page template file featured_media: Featured image media ID date: Publication date (ISO 8601) Returns: Created page details
wordpress_update_page Update an existing WordPress page. Args: page_id: Page ID to update title: New title content: New content status: New status excerpt: New excerpt slug: New slug parent: New parent page ID menu_order: New menu order template: New template featured_media: New featured image ID date: New publication date Returns: Updated page details
wordpress_delete_page Delete or trash a WordPress page. Args: page_id: Page ID to delete force: If true, permanently delete. If false, move to trash. Returns: Deletion confirmation
wordpress_list_page_revisions List revisions for a WordPress page. Args: page_id: Page ID Returns: List of revisions
wordpress_list_media List WordPress media items with filtering. Args: media_type: Filter by type (image, video, audio, application) mime_type: Filter by MIME type (e.g., image/jpeg) search: Search media by keyword page: Page number (default: 1) per_page: Results per page, max 100 (default: 10) orderby: Sort by field (date, title, id) order: Sort direction (asc, desc) Returns: List of media items with pagination info
wordpress_get_media Get a single WordPress media item by ID. Args: media_id: Media ID Returns: Media item details
wordpress_upload_media Upload a media file to WordPress from a local file path. The file is read directly from disk, avoiding large base64 payloads over the MCP protocol. Provide an absolute path to the file. CONTAINER NOTE: When running as a container, the file path refers to the container filesystem, not the host. Files must be placed in ~/.local/share/mcp-wordpress/uploads/ on the host (mounted to /tmp/mcp-uploads/ inside the container) to be accessible. Args: file_path: Absolute path to the file (e.g., /tmp/mcp-uploads/image.png) title: Media title alt_text: Alt text for accessibility caption: Media caption description: Media description Returns: Uploaded media item details
wordpress_update_media Update WordPress media item metadata. Args: media_id: Media ID to update title: New title alt_text: New alt text caption: New caption description: New description Returns: Updated media item details
wordpress_delete_media Delete a WordPress media item. Args: media_id: Media ID to delete force: Must be true for media (media cannot be trashed) Returns: Deletion confirmation
wordpress_get_media_url Get the public URL for a WordPress media item. Args: media_id: Media ID size: Image size (thumbnail, medium, large, full) Returns: Media URL information
wordpress_list_comments List WordPress comments with filtering. Args: post: Filter by post ID status: Filter by status (approved, hold, spam, trash) search: Search comments by content page: Page number (default: 1) per_page: Results per page, max 100 (default: 10) orderby: Sort by field (date, id) order: Sort direction (asc, desc) Returns: List of comments with pagination info
wordpress_get_comment Get a single WordPress comment by ID. Args: comment_id: Comment ID Returns: Comment details
wordpress_update_comment Update an existing WordPress comment. Args: comment_id: Comment ID to update content: New comment content status: New status (approved, hold, spam, trash) Returns: Updated comment details
wordpress_delete_comment Delete or trash a WordPress comment. Args: comment_id: Comment ID to delete force: If true, permanently delete. If false, move to trash. Returns: Deletion confirmation
wordpress_moderate_comment Moderate a WordPress comment by changing its status. Args: comment_id: Comment ID to moderate action: Moderation action (approve, hold, spam, trash) Returns: Updated comment details
Permissions 3
network medium filesystem low env_vars low