WordPress Standalone

Integra asistentes de IA con sitios de WordPress utilizando la API REST de WordPress.

Documentación

MseeP.ai Security Assessment Badge

WordPress Standalone MCP Server

Un potente servidor Model Context Protocol (MCP) que proporciona una integración perfecta entre asistentes de IA y sitios WordPress a través de la API REST de WordPress. Este servidor descubre y crea automáticamente herramientas individuales para cada endpoint de la API REST de WordPress, permitiendo la gestión de WordPress en lenguaje natural.

✨ Características

  • 🔄 Generación Dinámica de Herramientas: Crea automáticamente herramientas individuales para cada endpoint de la API REST de WordPress descubierto
  • 🌐 Soporte Multi-Sitio: Gestiona múltiples sitios WordPress simultáneamente desde una única configuración
  • 🔒 Autenticación Segura: Utiliza Contraseñas de Aplicación de WordPress para un acceso seguro a la API
  • 🎯 Filtrado Inteligente de Herramientas: Incluye/excluye herramientas específicas usando coincidencias exactas o patrones regex
  • 📊 Cobertura Integral: Soporte para entradas, páginas, usuarios, medios, comentarios, plugins, temas y más
  • 🚀 Descubrimiento sin Configuración: Mapea automáticamente todos los endpoints disponibles sin configuración manual
  • ⚡ Alto Rendimiento: Descubrimiento de endpoints y manejo de solicitudes eficiente
  • 🛡️ Manejo de Errores: Manejo de errores elegante con mensajes de diagnóstico detallados

🚀 Inicio Rápido

Instalación

# Install globally
npm install -g wp-standalone-mcp

# Or run directly with npx
npx github:diazoxide/wp-standalone-mcp start

Configuración Básica

  1. Crea una Contraseña de Aplicación de WordPress:
    • Ve a tu administrador de WordPress → Usuarios → Perfil
      • Desplázate a la sección "Contraseñas de Aplicación"
      • Crea una nueva contraseña de aplicación
      • Copia la contraseña generada
  2. Crea el archivo de configuración (wp-sites.json):
    {
      "myblog": {
        "URL": "https://myblog.com",
        "USER": "your_username",
        "PASS": "your_application_password"
      }
    }
    
  3. Configura Claude Desktop (claude_desktop_config.json):
    {
      "mcpServers": {
        "wordpress": {
          "command": "npx",
          "args": ["-y", "github:diazoxide/wp-standalone-mcp", "start"],
          "env": {
            "WP_SITES_PATH": "/absolute/path/to/wp-sites.json"
          }
        }
      }
    }
    
  4. Reinicia Claude Desktop y ¡comienza a gestionar tus sitios WordPress!

Referencia de Herramientas

Herramientas de Endpoint Dinámicas

Cuando el servidor se inicia, descubre automáticamente todos los endpoints de la API REST de WordPress disponibles y crea herramientas individuales para cada combinación de endpoint/método. Los nombres de las herramientas siguen el patrón: [site]_[method]_[resource] o [site]_[method]_[resource]_id para endpoints específicos por ID.

Ejemplos:

  • myblog_get_v2_posts - Lista todas las entradas
  • myblog_get_v2_posts_id - Obtiene una entrada específica por ID
  • myblog_post_v2_posts - Crea una nueva entrada
  • myblog_put_v2_posts_id - Actualiza una entrada específica
  • myblog_delete_v2_posts_id - Elimina una entrada específica

wp_discover_endpoints

Redescubre todos los endpoints de la API REST disponibles en un sitio WordPress.

Argumentos:

{
    "site": {
        "type": "string",
        "description": "Site alias (as defined in configuration)",
        "required": true
    }
}

Devuelve: Lista de endpoints disponibles con sus métodos y espacios de nombres.

🔧 Configuración

Variables de Entorno

  • WP_SITES_PATH: Ruta al archivo de configuración de tus sitios WordPress
  • WP_SITES: Configuración JSON directa (alternativa al archivo)

Esquema de Configuración del Sitio

{
  "site_alias": {
    "URL": "https://your-site.com",
    "USER": "wordpress_username", 
    "PASS": "application_password",
    "FILTERS": {
      "include": ["tool_name_patterns"],
      "exclude": ["tool_name_patterns"]
    }
  }
}

Obtención de una Contraseña de Aplicación

  1. Inicia sesión en tu panel de administración de WordPress
  2. Ve a Usuarios → Perfil
  3. Desplázate a la sección "Contraseñas de Aplicación"
  4. Ingresa un nombre para la aplicación (por ejemplo, "MCP Server")
  5. Haz clic en "Agregar Nueva Contraseña de Aplicación"
  6. Copia la contraseña generada (no podrás verla de nuevo)

Nota: Las Contraseñas de Aplicación requieren WordPress 5.6 o posterior y HTTPS.

Filtrado Avanzado de Herramientas

Controla qué operaciones de WordPress están disponibles filtrando herramientas:

{
  "myblog": {
    "URL": "https://myblog.com",
    "USER": "admin",
    "PASS": "abcd 1234 efgh 5678",
    "FILTERS": {
      "include": [
        "myblog_get_v2_posts",
        "myblog_post_v2_posts",
        "/.*_get_.*_posts.*/"
      ],
      "exclude": [
        "myblog_delete_v2_posts_id",
        "/.*_.*_users.*/",
        "/.*_delete_.*/"
      ]
    }
  }
}

Reglas de Filtrado:

  • include: Solo se exponen las herramientas especificadas (lista blanca)
  • exclude: Las herramientas especificadas están ocultas (lista negra)
  • include tiene prioridad sobre exclude
  • Soporta coincidencias exactas y patrones regex (envuélvelos en /pattern/)

🛠️ Herramientas Generadas

El servidor crea automáticamente herramientas siguiendo esta convención de nombres:

  • Patrón: [site]_[method]_[resource] o [site]_[method]_[resource]_id
  • Ejemplos:
    • myblog_get_v2_posts - Lista todas las entradas
      • myblog_get_v2_posts_id - Obtiene entrada específica por ID
      • myblog_post_v2_posts - Crea nueva entrada
      • myblog_put_v2_posts_id - Actualiza entrada específica
      • myblog_delete_v2_posts_id - Elimina entrada específica
      • myblog_get_v2_media - Lista archivos multimedia
      • myblog_get_v2_users - Lista usuarios

Herramienta de Descubrimiento

  • wp_discover_endpoints - Redescubre endpoints disponibles para un sitio

💡 Ejemplos de Uso

Una vez configurado, interactúa con tus sitios WordPress usando lenguaje natural:

Listar y Consultar Entradas

Can you show me all posts from myblog published in the last month?
Find all posts on testsite tagged with "technology" and "AI"
Show me draft posts from myblog that need review

Crear y Editar Contenido

Create a new draft post on testsite titled "The Future of AI" with these key points: [points]
Update the featured image on myblog's latest post about machine learning
Add a new category called "Tech News" to myblog

Gestionar Comentarios

Show me all pending comments on myblog's latest post
Find comments from testsite that might be spam
List the most engaged commenters on myblog

Gestión de Plugins

What plugins are currently active on myblog?
Check if any plugins on testsite need updates
Tell me about the security plugins installed on myblog

Gestión de Contenido

"Show me the last 5 posts from myblog"
"Create a new draft post titled 'AI and the Future' on myblog"
"Update the featured image for post ID 123 on myblog"
"Delete the post with ID 456 from myblog"

Gestión de Medios

"List all images uploaded this month to myblog"
"Upload a new image to myblog media library"
"Get details for media file ID 789"

Gestión de Usuarios

"Show all users with editor role on myblog"
"Create a new contributor account on myblog"
"Update user permissions for user ID 101"

Análisis del Sitio

"What plugins are active on myblog?"
"Show me all pending comments"
"Get the current theme information"
"List all categories and their post counts"

🏗️ Arquitectura

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Claude AI     │    │  MCP Server      │    │  WordPress API  │
│                 │◄──►│                  │◄──►│                 │
│ Natural Language│    │ Dynamic Tools    │    │ REST Endpoints  │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │  Configuration   │
                       │   wp-sites.json  │
                       └──────────────────┘

🔒 Seguridad

  • Contraseñas de Aplicación: Utiliza el sistema seguro de contraseñas de aplicación de WordPress
  • HTTPS Requerido: Todas las conexiones deben usar HTTPS
  • Seguridad de Configuración: Mantén los archivos de configuración fuera de directorios accesibles desde la web
  • Principio de Mínimo Privilegio: Usa cuentas con los permisos mínimos necesarios
  • Sin Almacenamiento de Credenciales: Las credenciales solo se usan para la autenticación de la API

🐛 Solución de Problemas

Problemas Comunes

Error "Sitio no configurado"

  • Verifica que el alias del sitio en la configuración coincida con el uso
  • Revisa la ruta y el formato del archivo de configuración

Error "Autenticación fallida"

  • Verifica que la contraseña de aplicación sea correcta
  • Asegúrate de que la cuenta de usuario tenga los permisos necesarios
  • Comprueba si la URL del sitio es accesible

Error "No se descubrieron herramientas"

  • Verifica que el sitio WordPress tenga la API REST habilitada
  • Comprueba si la URL del sitio incluye accesibilidad a /wp-json
  • Revisa cualquier plugin de seguridad que bloquee la API REST

Modo de Depuración

Establece la variable de entorno DEBUG=wp-mcp para un registro detallado:

DEBUG=wp-mcp npx github:diazoxide/wp-standalone-mcp start

📋 Requisitos

  • WordPress: 5.6+ (para Contraseñas de Aplicación)
  • Node.js: 16+
  • HTTPS: Requerido para Contraseñas de Aplicación
  • API REST: Debe estar habilitada (por defecto en WordPress)

🤝 Contribuciones

¡Damos la bienvenida a las contribuciones! Consulta nuestra Guía de Contribución para más detalles.

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Realiza tus cambios
  4. Agrega pruebas si corresponde
  5. Envía una solicitud de extracción (pull request)

📄 Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

🔗 Enlaces

🙏 Agradecimientos

  • Al equipo de la API REST de WordPress por la API integral
  • A Anthropic por la especificación del Model Context Protocol
  • A la comunidad de código abierto por su continuo apoyo y retroalimentación

Hecho con ❤️ para la comunidad de WordPress e IA