MCP WordPress Server

Un servidor para integrarse con la API REST de WordPress.

Documentación

MCP WordPress Server

Un servidor completo del Model Context Protocol (MCP) para la gestión de WordPress a través de la API REST de WordPress v2. Escrito completamente en TypeScript para máxima seguridad de tipos y mejor experiencia de desarrollo.

🚀 Características

  • 54 herramientas de gestión de WordPress en 8 categorías
  • 100% TypeScript - Seguridad de tipos completa e IntelliSense
  • Módulos ES modernos - Optimizados para rendimiento
  • Asistente de configuración interactivo - Configuración fácil
  • Pruebas exhaustivas - Suite de pruebas completa
  • Autenticación flexible - Compatible con App Passwords, JWT, Basic Auth
  • Depuración y monitoreo - Registro estructurado y seguimiento de errores

⚡ Inicio rápido

Opción 1: NPX (Recomendado)

La forma más fácil de empezar - sin necesidad de instalación:

# Run directly with NPX
npx @aiondadotcom/mcp-wordpress

# Or install globally
npm install -g @aiondadotcom/mcp-wordpress
mcp-wordpress

Opción 2: Desarrollo local

git clone https://github.com/AiondaDotCom/mcp-wordpress.git
cd mcp-wordpress
npm install
npm run setup
npm start

Asistente de configuración

# For NPX users
npx @aiondadotcom/mcp-wordpress setup

# For local installation
npm run setup

El asistente de configuración te guía a través de:

  • Configuración del sitio WordPress
  • Selección del método de autenticación
  • Prueba de conexión
  • Configuración de Claude Desktop

🚀 Configuración fácil vía Claude Desktop

Configuración NPX súper fácil

Si quieres la configuración más fácil posible, simplemente pega este prompt en Claude Desktop:

Set up the MCP WordPress server using NPX for my Claude Desktop. 

My WordPress details:
- Site URL: [YOUR_WORDPRESS_URL]
- Username: [YOUR_USERNAME]

Please:
1. Help me create a WordPress Application Password
2. Configure my Claude Desktop mcp.json file with the NPX command
3. Test the connection to make sure everything works
4. Show me how to use the WordPress tools

I want to use the NPX version (@aiondadotcom/mcp-wordpress) so I don't need to install anything locally.

Configuración completa de desarrollo local

Para desarrollo local y personalización:

Build and configure the MCP WordPress server project from https://github.com/AiondaDotCom/mcp-wordpress locally on my computer. 

Please:
1. Clone the repository to an appropriate directory
2. Install all dependencies 
3. Run the setup wizard and help me configure my WordPress connection
4. Test the connection to make sure everything works
5. Set up the Claude Desktop MCP configuration
6. Run a quick test to verify all tools are working

My WordPress site URL is: [YOUR_WORDPRESS_URL]
My WordPress username is: [YOUR_USERNAME]

Guide me through any steps that require manual input, and let me know if you need any additional information from me.

Solo reemplaza [YOUR_WORDPRESS_URL] y [YOUR_USERNAME] con los detalles reales de tu sitio WordPress, ¡y Claude se encargará del resto!

🔧 Configuración

Variables de entorno (.env)

WORDPRESS_SITE_URL=https://your-wordpress-site.com
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
WORDPRESS_AUTH_METHOD=app-password
DEBUG=false

Integración con Claude Desktop

Configura MCP WordPress Server en tu archivo de configuración mcp.json de Claude Desktop:

Opción 1: NPX (Recomendado)

{
  "mcpServers": {
    "mcp-wordpress": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-wordpress"],
      "env": {
        "WORDPRESS_SITE_URL": "https://your-site.com",
        "WORDPRESS_USERNAME": "your-username", 
        "WORDPRESS_APP_PASSWORD": "your-app-password",
        "WORDPRESS_AUTH_METHOD": "app-password"
      }
    }
  }
}

Opción 2: Instalación global

{
  "mcpServers": {
    "mcp-wordpress": {
      "command": "mcp-wordpress",
      "env": {
        "WORDPRESS_SITE_URL": "https://your-site.com",
        "WORDPRESS_USERNAME": "your-username",
        "WORDPRESS_APP_PASSWORD": "your-app-password", 
        "WORDPRESS_AUTH_METHOD": "app-password"
      }
    }
  }
}

Opción 3: Desarrollo local

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

Usando archivo .env (cualquier opción)

Si prefieres usar un archivo .env en lugar de variables de entorno en la configuración:

{
  "mcpServers": {
    "mcp-wordpress": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-wordpress"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Ubicaciones de los archivos de configuración de Claude Desktop

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Pasos rápidos de configuración

  1. Crea o localiza tu archivo de configuración de Claude Desktop en la ruta indicada arriba
  2. Agrega la configuración del servidor MCP usando una de las opciones anteriores
  3. Reinicia Claude Desktop para que los cambios surtan efecto
  4. Verifica la conexión - deberías ver las herramientas de WordPress disponibles en Claude Desktop

Ejemplo de configuración completa

Aquí tienes un archivo claude_desktop_config.json completo con MCP WordPress:

{
  "mcpServers": {
    "mcp-wordpress": {
      "command": "npx",
      "args": ["@aiondadotcom/mcp-wordpress"],
      "env": {
        "WORDPRESS_SITE_URL": "https://your-site.com",
        "WORDPRESS_USERNAME": "your-username",
        "WORDPRESS_APP_PASSWORD": "your-app-password",
        "WORDPRESS_AUTH_METHOD": "app-password"
      }
    }
  }
}

🛠 Sistema de compilación

Compilación TypeScript

# Compile
npm run build

# Watch mode
npm run build:watch

# Type checking
npm run typecheck

Desarrollo

# Development mode with debug output
npm run dev

# Check status
npm run status

# Re-run setup
npm run setup

🔐 Autenticación

Contraseñas de aplicación de WordPress (Recomendado)

  1. Administración de WordPress → Usuarios → Perfil
  2. Desplázate hasta Contraseñas de aplicación
  3. Ingresa un nombre (p. ej., "MCP WordPress Server")
  4. Haz clic en Agregar nueva contraseña de aplicación
  5. Copia la contraseña generada (formato: xxxx xxxx xxxx xxxx xxxx xxxx)

Métodos de autenticación alternativos

# JWT Authentication (requires JWT plugin)
WORDPRESS_AUTH_METHOD=jwt
WORDPRESS_JWT_SECRET=your-jwt-secret

# Basic Authentication (not recommended for production)
WORDPRESS_AUTH_METHOD=basic
WORDPRESS_PASSWORD=your-actual-password

# API Key Authentication (requires API Key plugin)
WORDPRESS_AUTH_METHOD=api-key
WORDPRESS_API_KEY=your-api-key

📋 Herramientas disponibles (54 herramientas)

📝 Entradas (6 herramientas)

  • wp_list_posts - Listar y filtrar entradas del blog
  • wp_get_post - Obtener una entrada específica
  • wp_create_post - Crear nuevas entradas
  • wp_update_post - Editar entradas
  • wp_delete_post - Eliminar entradas
  • wp_get_post_revisions - Obtener revisiones de entradas

📄 Páginas (6 herramientas)

  • wp_list_pages - Listar páginas
  • wp_get_page - Obtener una página específica
  • wp_create_page - Crear nuevas páginas
  • wp_update_page - Editar páginas
  • wp_delete_page - Eliminar páginas
  • wp_get_page_revisions - Obtener revisiones de páginas

🖼️ Medios (6 herramientas)

  • wp_list_media - Explorar la biblioteca de medios
  • wp_get_media - Obtener detalles de medios
  • wp_upload_media - Subir archivos
  • wp_update_media - Editar metadatos de medios
  • wp_delete_media - Eliminar medios
  • wp_get_media_sizes - Obtener tamaños de imagen disponibles

👥 Usuarios (6 herramientas)

  • wp_list_users - Listar usuarios
  • wp_get_user - Obtener detalles de usuario
  • wp_create_user - Crear nuevos usuarios
  • wp_update_user - Editar perfiles de usuario
  • wp_delete_user - Eliminar usuarios
  • wp_get_current_user - Obtener usuario actual

💬 Comentarios (7 herramientas)

  • wp_list_comments - Listar comentarios
  • wp_get_comment - Obtener detalles de comentarios
  • wp_create_comment - Crear nuevos comentarios
  • wp_update_comment - Editar comentarios
  • wp_delete_comment - Eliminar comentarios
  • wp_approve_comment - Aprobar comentarios
  • wp_spam_comment - Marcar comentarios como spam

🏷️ Taxonomías (10 herramientas)

  • wp_list_categories - Listar categorías
  • wp_get_category - Obtener detalles de categoría
  • wp_create_category - Crear nuevas categorías
  • wp_update_category - Editar categorías
  • wp_delete_category - Eliminar categorías
  • wp_list_tags - Listar etiquetas
  • wp_get_tag - Obtener detalles de etiqueta
  • wp_create_tag - Crear nuevas etiquetas
  • wp_update_tag - Editar etiquetas
  • wp_delete_tag - Eliminar etiquetas

⚙️ Gestión del sitio (7 herramientas)

  • wp_get_site_settings - Obtener configuración del sitio
  • wp_update_site_settings - Actualizar configuración del sitio
  • wp_get_site_stats - Obtener estadísticas del sitio
  • wp_search_site - Búsqueda en todo el sitio
  • wp_get_application_passwords - Listar contraseñas de aplicación
  • wp_create_application_password - Crear nuevas contraseñas de aplicación
  • wp_delete_application_password - Eliminar contraseñas de aplicación

🔐 Autenticación (6 herramientas)

  • wp_test_auth - Probar autenticación
  • wp_get_auth_status - Obtener estado de autenticación
  • wp_start_oauth_flow - Iniciar flujo OAuth
  • wp_complete_oauth_flow - Completar flujo OAuth
  • wp_refresh_oauth_token - Renovar token OAuth
  • wp_switch_auth_method - Cambiar método de autenticación

🧪 Pruebas

# Run all tests
npm test

# Tests with coverage
npm run test:coverage

# Quick tests
npm run test:fast

# MCP integration tests
npm run test:mcp

# Tool integration tests
npm run test:tools

# Tests in watch mode
npm run test:watch

📊 Estado y monitoreo

# Check connection status
npm run status

# Debug mode
DEBUG=true npm run dev

# Lint code
npm run lint

# Auto-fix linting errors
npm run lint:fix

🏗 Estructura del proyecto

mcp-wordpress/
├── src/                     # TypeScript source code
│   ├── index.ts            # Main MCP server
│   ├── server.ts           # Server compatibility
│   ├── types/              # TypeScript definitions
│   │   ├── wordpress.ts    # WordPress API types
│   │   ├── mcp.ts         # MCP protocol types
│   │   ├── client.ts      # Client interface types
│   │   └── index.ts       # Type exports
│   ├── client/             # WordPress API client
│   │   ├── api.ts         # HTTP client
│   │   └── auth.ts        # Authentication
│   ├── tools/              # MCP tool implementations
│   │   ├── posts.ts       # Post management
│   │   ├── pages.ts       # Page management
│   │   ├── media.ts       # Media management
│   │   ├── users.ts       # User management
│   │   ├── comments.ts    # Comment management
│   │   ├── taxonomies.ts  # Categories/Tags
│   │   ├── site.ts        # Site settings
│   │   └── auth.ts        # Authentication
│   └── utils/              # Utility functions
│       └── debug.ts       # Debug logger
├── dist/                   # Compiled JavaScript files
├── bin/                    # Utility scripts
│   ├── setup.js          # Setup wizard
│   └── status.js          # Status checker
├── tests/                  # Test suite
├── scripts/                # Build and test scripts
├── tsconfig.json          # TypeScript configuration
├── jest.config.json       # Jest test configuration
└── package.json           # Node.js project configuration

💡 Características de TypeScript

  • Seguridad de tipos completa - Validación en tiempo de compilación
  • Soporte de IntelliSense - Mejor integración con el IDE
  • Cliente API con seguridad de tipos - Métodos HTTP tipados
  • Tipos de WordPress exhaustivos - Más de 400 líneas de definiciones precisas
  • Tipos del protocolo MCP - Definiciones y manejadores de herramientas
  • Manejo de errores mejorado - Excepciones tipadas
  • Mapas de origen - Soporte de depuración

🔧 Requisitos de WordPress

  • WordPress 5.0+ con la API REST habilitada
  • HTTPS (recomendado para producción)
  • Usuario con permisos adecuados
  • Contraseñas de aplicación habilitadas (WordPress 5.6+)

Roles de usuario de WordPress

RolAcceso
AdministradorAcceso completo a todas las funciones
EditorEntradas, páginas, comentarios, medios
AutorSus propias entradas y medios
ColaboradorSus propias entradas (solo borradores)
SuscriptorSolo lectura

🐛 Solución de problemas

Problemas comunes

  1. "No se puede conectar a WordPress"

    • Verifica WORDPRESS_SITE_URL
    • Asegúrate de que la API REST sea accesible
    • Prueba: curl https://your-site.com/wp-json/wp/v2/
  2. "Error de autenticación"

    • Verifica el nombre de usuario y la contraseña de aplicación
    • Asegúrate de que las Contraseñas de aplicación estén habilitadas
    • Intenta ejecutar npm run setup nuevamente
  3. "Errores de compilación de TypeScript"

    • Ejecuta npm run typecheck
    • Asegúrate de que todas las dependencias estén instaladas

Registros de depuración

DEBUG=true npm run dev

📚 Documentación de la API

🤝 Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de funcionalidad: git checkout -b feature/new-feature
  3. Haz commit de los cambios: git commit -m 'Add new feature'
  4. Sube la rama: git push origin feature/new-feature
  5. Crea un pull request

📄 Licencia

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


🚀 Impulsado por TypeScript para una mejor experiencia de desarrollo y seguridad de tipos!