keytrends-wp-mcp
by dataxquare
README.md
# Keytrends WordPress MCP Server (`keytrends-wp-mcp`)
Servidor [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) oficial de Keytrends para WordPress REST API.
Diseñado para resolver las limitaciones de los conectores genéricos de WordPress: permite **gestión completa de borradores, asignación de autor, taxonomías (categorías/etiquetas) y programación determinista de posts en tandas editoriales**.
---
## Características principales
- **Cero plugins en el WordPress del cliente:** Conecta directamente con la REST API estándar de WordPress (`wp/v2`).
- **Autenticación estándar:** Utiliza Application Passwords nativas de WordPress (HTTP Basic Auth).
- **Gestión editorial completa:**
- `wp_diagnose`: Diagnóstico determinista de conectividad, permisos y estado de la API.
- `wp_list_posts`: Lista posts (con soporte para borradores y estados privados vía `context=edit`).
- `wp_get_post`: Obtiene contenido íntegro y bloques Gutenberg.
- `wp_create_post`: Crea posts especificando autor, categorías, etiquetas, slug y fecha.
- `wp_update_post`: Modifica posts existentes con verificación automática tras edición.
- `wp_list_users`: Lista usuarios y roles para resolver IDs de autores.
- `wp_list_categories`: Lista categorías disponibles con sus slugs e IDs.
- `wp_schedule_drafts`: **Programación masiva determinista** de posts por día, slots horarios, rotación de autores y asignación de categorías con modo simulación (`apply=false` por defecto).
---
## Instalación y Uso
No requiere instalación manual previa. Puedes ejecutarlo directamente con `npx`:
### Commit fijado (obligatorio en Cognitiv)
Sustituye `<COMMIT>` por el SHA vigente antes de pegar la configuración:
```bash
git ls-remote https://github.com/iDankest/keytrends-wp-mcp HEAD
```
Tiene que ser un **commit**, no una rama ni una etiqueta: una etiqueta se puede mover con force-push y entonces instalarías otra versión sin enterarte. El host de agentes de Cognitiv rechaza directamente las especificaciones sin commit fijado.
### 1. Claude Desktop
Añade lo siguiente a tu archivo `claude_desktop_config.json`:
```json
{
"mcpServers": {
"keytrends-wp": {
"command": "npx",
"args": ["-y", "github:iDankest/keytrends-wp-mcp#<COMMIT>"],
"env": {
"WORDPRESS_BASE_URL": "https://tu-sitio.com",
"WORDPRESS_USERNAME": "tu_usuario_wp",
"WORDPRESS_APPLICATION_PASSWORD": "xxxx xxxx xxxx xxxx",
"WP_DEFAULT_LANG": "es",
"WP_TIMEZONE": "Europe/Madrid"
}
}
}
}
```
### 2. Claude Code (CLI)
```bash
claude mcp add keytrends-wp \
--env WORDPRESS_BASE_URL=https://tu-sitio.com \
--env WORDPRESS_USERNAME=tu_usuario_wp \
--env WORDPRESS_APPLICATION_PASSWORD="xxxx xxxx xxxx xxxx" \
-- npx -y github:iDankest/keytrends-wp-mcp#<COMMIT>
```
### 3. Cursor
En `~/.cursor/mcp.json` o `.cursor/mcp.json`:
```json
{
"mcpServers": {
"keytrends-wp": {
"command": "npx",
"args": ["-y", "github:iDankest/keytrends-wp-mcp#<COMMIT>"],
"env": {
"WORDPRESS_BASE_URL": "https://tu-sitio.com",
"WORDPRESS_USERNAME": "tu_usuario_wp",
"WORDPRESS_APPLICATION_PASSWORD": "xxxx xxxx xxxx xxxx"
}
}
}
}
```
### 4. Grok CLI (`~/.grok/config.toml`)
```toml
[mcp_servers.keytrends-wp]
command = "npx"
args = ["-y", "github:iDankest/keytrends-wp-mcp#<COMMIT>"]
[mcp_servers.keytrends-wp.env]
WORDPRESS_BASE_URL = "https://tu-sitio.com"
WORDPRESS_USERNAME = "tu_usuario_wp"
WORDPRESS_APPLICATION_PASSWORD = "xxxx xxxx xxxx xxxx"
```
### 5. Cognitiv (agentes en Slack)
| Campo | Valor |
|---|---|
| Who can use it | `Workspace` |
| Name | `<cliente>-wp-full` |
| Connection | `stdio` |
| Command | `npx` |
| Arguments (uno por línea) | `-y` / `github:iDankest/keytrends-wp-mcp#<COMMIT>` |
| Credentials | `BASE_URL`, `USERNAME`, `APPLICATION_PASSWORD` |
---
## Variables de entorno
| Variable | Requerida | Descripción |
|---|---|---|
| `WORDPRESS_BASE_URL` | **Sí** | URL base de la instalación de WordPress (ej: `https://lizarte.com/blog` o `https://vdenergy.es`). Sin `/wp-json`. |
| `WORDPRESS_USERNAME` | **Sí** | Nombre de usuario de WordPress. |
| `WORDPRESS_APPLICATION_PASSWORD` | **Sí** | Contraseña de aplicación generada desde WordPress (**Usuarios → Perfil → Contraseñas de aplicación**). |
| `WP_DEFAULT_LANG` | No | Código de idioma WPML por defecto (ej: `es`, `en`, `fr`). |
| `WP_TIMEZONE` | No | Zona horaria para cálculo de horas locales (por defecto `Europe/Madrid`). |
| `WP_USER_AGENT` | No | User-Agent personalizado para evitar bloqueos WAF. |
---
## Licencia
MIT © Keytrends
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues