← Back to search

io.github.crunchtools/wordpress

crunchtools Scanned 22d ago

Secure MCP server for WordPress content management

C
71.6 / 100

Versions

0.4.1latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 30

wordpress_get_site_info
annotations: none low

Get WordPress site information. Returns site title, description, URL, timezone, and other settings.

wordpress_test_connection
annotations: none low

Test connection to WordPress REST API. Verifies API credentials and returns connection status.

wordpress_list_posts
annotations: none low

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

page int tags string order str search string status string orderby str per_page int categories string
wordpress_get_post
annotations: none low

Get a single WordPress post by ID with full content. Args: post_id: Post ID Returns: Full post details including content

post_id int
wordpress_search_posts
annotations: none low

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

page int keyword str per_page int
wordpress_create_post
annotations: none low

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

date string slug string tags string title str status str content str excerpt string categories string post_format string featured_media string
wordpress_update_post
annotations: none low

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

date string slug string tags string title string status string content string excerpt string post_id int categories string post_format string featured_media string
wordpress_delete_post
annotations: none low

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

force bool post_id int
wordpress_list_revisions
annotations: none low

List revisions for a WordPress post. Args: post_id: Post ID Returns: List of revisions

post_id int
wordpress_get_revision
annotations: none low

Get a specific revision of a WordPress post. Args: post_id: Post ID revision_id: Revision ID Returns: Revision details with content

post_id int revision_id int
wordpress_list_categories
annotations: none low

List available WordPress categories. Args: page: Page number per_page: Results per page (max 100) search: Search categories by name Returns: List of categories

page int search string per_page int
wordpress_list_tags
annotations: none low

List available WordPress tags. Args: page: Page number per_page: Results per page (max 100) search: Search tags by name Returns: List of tags

page int search string per_page int
wordpress_list_pages
annotations: none low

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

page int order str parent string search string status string orderby str per_page int
wordpress_get_page
annotations: none low

Get a single WordPress page by ID with full content. Args: page_id: Page ID Returns: Full page details including content

page_id int
wordpress_create_page
annotations: none low

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

date string slug string title str parent string status str content str excerpt string template string menu_order string featured_media string
wordpress_update_page
annotations: none low

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

date string slug string title string parent string status string content string excerpt string page_id int template string menu_order string featured_media string
wordpress_delete_page
annotations: none low

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

force bool page_id int
wordpress_list_page_revisions
annotations: none low

List revisions for a WordPress page. Args: page_id: Page ID Returns: List of revisions

page_id int
wordpress_list_media
annotations: none low

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

page int order str search string orderby str per_page int mime_type string media_type string
wordpress_get_media
annotations: none low

Get a single WordPress media item by ID. Args: media_id: Media ID Returns: Media item details

media_id int
wordpress_upload_media
annotations: none low

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

title string caption string alt_text string file_path str description string
wordpress_update_media
annotations: none low

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

title string caption string alt_text string media_id int description string
wordpress_delete_media
annotations: none low

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

force bool media_id int
wordpress_get_media_url
annotations: none low

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

size str media_id int
wordpress_list_comments
annotations: none low

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

page int post string order str search string status string orderby str per_page int
wordpress_get_comment
annotations: none low

Get a single WordPress comment by ID. Args: comment_id: Comment ID Returns: Comment details

comment_id int
wordpress_create_comment
annotations: none low

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

post int parent string content str author_name string author_email string
wordpress_update_comment
annotations: none low

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

status string content string comment_id int
wordpress_delete_comment
annotations: none low

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

force bool comment_id int
wordpress_moderate_comment
annotations: none low

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

action str comment_id int

Permissions 3

network medium
Server uses network capabilities via: httpx, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, tempfile
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 88

low
Tool 'wordpress_get_site_info' has no annotations annotation_checker · 100%
low
Tool 'wordpress_test_connection' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_posts' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_post' has no annotations annotation_checker · 100%
low
Tool 'wordpress_search_posts' has no annotations annotation_checker · 100%
low
Tool 'wordpress_create_post' has no annotations annotation_checker · 100%
low
Tool 'wordpress_update_post' has no annotations annotation_checker · 100%
low
Tool 'wordpress_delete_post' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_revisions' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_revision' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_categories' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_tags' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_pages' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_page' has no annotations annotation_checker · 100%
low
Tool 'wordpress_create_page' has no annotations annotation_checker · 100%
low
Tool 'wordpress_update_page' has no annotations annotation_checker · 100%
low
Tool 'wordpress_delete_page' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_page_revisions' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_media' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_media' has no annotations annotation_checker · 100%
low
Tool 'wordpress_upload_media' has no annotations annotation_checker · 100%
low
Tool 'wordpress_update_media' has no annotations annotation_checker · 100%
low
Tool 'wordpress_delete_media' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_media_url' has no annotations annotation_checker · 100%
low
Tool 'wordpress_list_comments' has no annotations annotation_checker · 100%
low
Tool 'wordpress_get_comment' has no annotations annotation_checker · 100%
low
Tool 'wordpress_create_comment' has no annotations annotation_checker · 100%
low
Tool 'wordpress_update_comment' has no annotations annotation_checker · 100%
low
Tool 'wordpress_delete_comment' has no annotations annotation_checker · 100%
low
Tool 'wordpress_moderate_comment' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0 (PYSEC-2026-338) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: wordpress_get_site_info manifest_parser · 90%
info
Tool: wordpress_test_connection manifest_parser · 90%
info
Tool: wordpress_list_posts manifest_parser · 90%
info
Tool: wordpress_get_post manifest_parser · 90%
info
Tool: wordpress_search_posts manifest_parser · 90%
info
Tool: wordpress_create_post manifest_parser · 90%
info
Tool: wordpress_update_post manifest_parser · 90%
info
Tool: wordpress_delete_post manifest_parser · 90%
info
Tool: wordpress_list_revisions manifest_parser · 90%
info
Tool: wordpress_get_revision manifest_parser · 90%
info
Tool: wordpress_list_categories manifest_parser · 90%
info
Tool: wordpress_list_tags manifest_parser · 90%
info
Tool: wordpress_list_pages manifest_parser · 90%
info
Tool: wordpress_get_page manifest_parser · 90%
info
Tool: wordpress_create_page manifest_parser · 90%
info
Tool: wordpress_update_page manifest_parser · 90%
info
Tool: wordpress_delete_page manifest_parser · 90%
info
Tool: wordpress_list_page_revisions manifest_parser · 90%
info
Tool: wordpress_list_media manifest_parser · 90%
info
Tool: wordpress_get_media manifest_parser · 90%
info
Tool: wordpress_upload_media manifest_parser · 90%
info
Tool: wordpress_update_media manifest_parser · 90%
info
Tool: wordpress_delete_media manifest_parser · 90%
info
Tool: wordpress_get_media_url manifest_parser · 90%
info
Tool: wordpress_list_comments manifest_parser · 90%
info
Tool: wordpress_get_comment manifest_parser · 90%
info
Tool: wordpress_create_comment manifest_parser · 90%
info
Tool: wordpress_update_comment manifest_parser · 90%
info
Tool: wordpress_delete_comment manifest_parser · 90%
info
Tool: wordpress_moderate_comment manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (4) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 80%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
high
Hardcoded Password found in crunchtools-mcp-wordpress-4b352e8/README.md secret_scanner · 65%
high
Hardcoded Password found in crunchtools-mcp-wordpress-4b352e8/.github/workflows/ci.yml secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%