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
- Crea o localiza tu archivo de configuración de Claude Desktop en la ruta indicada arriba
- Agrega la configuración del servidor MCP usando una de las opciones anteriores
- Reinicia Claude Desktop para que los cambios surtan efecto
- 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)
- Administración de WordPress → Usuarios → Perfil
- Desplázate hasta Contraseñas de aplicación
- Ingresa un nombre (p. ej., "MCP WordPress Server")
- Haz clic en Agregar nueva contraseña de aplicación
- 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 blogwp_get_post- Obtener una entrada específicawp_create_post- Crear nuevas entradaswp_update_post- Editar entradaswp_delete_post- Eliminar entradaswp_get_post_revisions- Obtener revisiones de entradas
📄 Páginas (6 herramientas)
wp_list_pages- Listar páginaswp_get_page- Obtener una página específicawp_create_page- Crear nuevas páginaswp_update_page- Editar páginaswp_delete_page- Eliminar páginaswp_get_page_revisions- Obtener revisiones de páginas
🖼️ Medios (6 herramientas)
wp_list_media- Explorar la biblioteca de medioswp_get_media- Obtener detalles de medioswp_upload_media- Subir archivoswp_update_media- Editar metadatos de medioswp_delete_media- Eliminar medioswp_get_media_sizes- Obtener tamaños de imagen disponibles
👥 Usuarios (6 herramientas)
wp_list_users- Listar usuarioswp_get_user- Obtener detalles de usuariowp_create_user- Crear nuevos usuarioswp_update_user- Editar perfiles de usuariowp_delete_user- Eliminar usuarioswp_get_current_user- Obtener usuario actual
💬 Comentarios (7 herramientas)
wp_list_comments- Listar comentarioswp_get_comment- Obtener detalles de comentarioswp_create_comment- Crear nuevos comentarioswp_update_comment- Editar comentarioswp_delete_comment- Eliminar comentarioswp_approve_comment- Aprobar comentarioswp_spam_comment- Marcar comentarios como spam
🏷️ Taxonomías (10 herramientas)
wp_list_categories- Listar categoríaswp_get_category- Obtener detalles de categoríawp_create_category- Crear nuevas categoríaswp_update_category- Editar categoríaswp_delete_category- Eliminar categoríaswp_list_tags- Listar etiquetaswp_get_tag- Obtener detalles de etiquetawp_create_tag- Crear nuevas etiquetaswp_update_tag- Editar etiquetaswp_delete_tag- Eliminar etiquetas
⚙️ Gestión del sitio (7 herramientas)
wp_get_site_settings- Obtener configuración del sitiowp_update_site_settings- Actualizar configuración del sitiowp_get_site_stats- Obtener estadísticas del sitiowp_search_site- Búsqueda en todo el sitiowp_get_application_passwords- Listar contraseñas de aplicaciónwp_create_application_password- Crear nuevas contraseñas de aplicaciónwp_delete_application_password- Eliminar contraseñas de aplicación
🔐 Autenticación (6 herramientas)
wp_test_auth- Probar autenticaciónwp_get_auth_status- Obtener estado de autenticaciónwp_start_oauth_flow- Iniciar flujo OAuthwp_complete_oauth_flow- Completar flujo OAuthwp_refresh_oauth_token- Renovar token OAuthwp_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
| Rol | Acceso |
|---|---|
| Administrador | Acceso completo a todas las funciones |
| Editor | Entradas, páginas, comentarios, medios |
| Autor | Sus propias entradas y medios |
| Colaborador | Sus propias entradas (solo borradores) |
| Suscriptor | Solo lectura |
🐛 Solución de problemas
Problemas comunes
-
"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/
-
"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 setupnuevamente
-
"Errores de compilación de TypeScript"
- Ejecuta
npm run typecheck - Asegúrate de que todas las dependencias estén instaladas
- Ejecuta
Registros de depuración
DEBUG=true npm run dev
📚 Documentación de la API
🤝 Contribuciones
- Haz un fork del repositorio
- Crea una rama de funcionalidad:
git checkout -b feature/new-feature - Haz commit de los cambios:
git commit -m 'Add new feature' - Sube la rama:
git push origin feature/new-feature - 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!