MCP WordPress Post Server
Gestiona publicaciones de WordPress y sube imágenes directamente desde rutas de archivo.
Documentación
MCP WordPress Post Server
Servidor MCP (Model Context Protocol) con funciones de carga de imágenes mediante rutas de archivo, especializado en la gestión de publicaciones de WordPress.
Este proyecto se basa en el excelente wordpress-mcp-server de @prathammanocha, con mejoras significativas en el procesamiento de imágenes.
✨ Funciones principales
🖼️ Sistema avanzado de carga de imágenes
- Método de ruta de archivo: Acceso directo al sistema de archivos (sin codificación Base64)
- Soporte para archivos grandes: Procesamiento sin pérdida de datos dentro de los límites de WordPress
- multipart/form-data: Uso de la API estándar de carga de medios de WordPress
- Optimización automática: Aprovechamiento de las funciones integradas de procesamiento de imágenes de WordPress
- Imágenes responsivas: Generación automática de srcset para diferentes tamaños de pantalla
📝 Gestión de publicaciones
- Creación de publicaciones: Soporte para adjuntar múltiples imágenes
- Actualización de publicaciones: Edición de publicaciones existentes
- Listado de publicaciones: Compatible con paginación
- Obtención de detalles de publicación: Visualización de contenido completo
- Flujo de trabajo de borrador/publicación: Gestión de estados
🔧 Mejoras técnicas
- Reducción del 33% en el uso de memoria: Eliminación de la codificación Base64
- Integridad de datos: Solución a la pérdida de datos del 95-98% que ocurría con el método Base64
- Manejo de errores: Verificación de existencia de archivos y validación de carga mejoradas
- Registros de depuración: Registros detallados para la resolución de problemas
🚀 Inicio rápido
Requisitos previos
- Node.js v18 o superior
- Sitio de WordPress con API REST habilitada
- Contraseña de aplicación de WordPress
Instalación
- Clonar el repositorio:
git clone [your-repo-url]
cd mcp-wordpress-post
- Instalar dependencias:
npm install
- Configuración del entorno:
cp .env.example .env
# .envファイルを編集してWordPressの認証情報を設定
- Compilar:
npm run build
- Iniciar el servidor:
npm start
📖 Uso
Configuración de MCP
Agregue lo siguiente al archivo de configuración de su cliente MCP:
{
"mcpServers": {
"wordpress-post": {
"command": "node",
"args": ["/path/to/mcp-wordpress-post/build/posts-only.js"]
}
}
}
Crear una publicación con imágenes
El sistema mejorado de carga de imágenes utiliza rutas de archivo:
// 新しいファイルパス方式(推奨)
{
"tool": "create-post",
"title": "画像付きの投稿",
"content": "この画像をご覧ください: {IMAGE1}",
"images": [{
"filePath": "/絶対パス/to/image.png",
"filename": "カスタム名.png", // 省略可能
"placeholder": "{IMAGE1}"
}]
}
Herramientas disponibles
create-post
Crea una nueva publicación de WordPress con soporte para adjuntar imágenes
Parámetros:
siteUrl(cadena): URL del sitio de WordPressusername(cadena): Nombre de usuario de WordPresspassword(cadena): Contraseña de aplicacióntitle(cadena): Título de la publicacióncontent(cadena): Contenido de la publicación con marcadores de posición de imágenesstatus(enumeración):"draft"|"publish"|"private"(predeterminado:"draft")images(matriz, opcional): Objetos de imagen confilePath,placeholderyfilenameopcional
list-posts
Obtiene publicaciones de WordPress con soporte de paginación
get-post
Obtiene información detallada de una publicación específica
update-post
Actualiza una publicación existente de WordPress
🔄 Migración desde el método Base64
Si está migrando desde un sistema basado en Base64:
Método anterior (Base64 - no recomendado):
images: [{
data: "iVBORw0KGgoAAAANSUhEUgAAAAE...", // 大きなBase64文字列
filename: "image.png",
placeholder: "{IMAGE1}"
}]
Nuevo método (ruta de archivo - actual):
images: [{
filePath: "/path/to/image.png", // ファイルシステムパス
filename: "カスタム名.png", // 省略可能なカスタム名
placeholder: "{IMAGE1}"
}]
🐛 Solución de problemas
Problemas comunes
-
Error de archivo no encontrado:
- Verifique que la ruta del archivo sea una ruta absoluta
- Verifique los permisos de acceso al archivo
-
Error al cargar archivos grandes:
- Verifique la configuración de
upload_max_filesizeen WordPress - Verifique
post_max_sizeymemory_limit
- Verifique la configuración de
-
Las imágenes no se muestran:
- Verifique que el formato del marcador de posición coincida exactamente
- Revise los registros de depuración de
/tmp/mcp-debug.log
Modo de depuración
Para habilitar registros detallados:
npm run debug-mcp
📊 Comparación de rendimiento
| Elemento | Método Base64 | Método de ruta de archivo |
|---|---|---|
| Uso de memoria | Alto (+33%) | Eficiente |
| Pérdida de datos | 95-98% en archivos grandes | 0% |
| Velocidad de procesamiento | Lento | Rápido |
| Límite de tamaño de archivo | ~100KB en la práctica | Hasta el límite de WordPress |
🤝 Contribuciones
Este proyecto está construido sobre la base de prathammanocha/wordpress-mcp-server.
Configuración del entorno de desarrollo
- Clonar con submódulos:
git clone --recursive [your-repo-url]
- Instalar dependencias:
npm install
- Modo de desarrollo:
npm run dev
Pruebas
Ejecute los scripts de depuración para probar las funciones:
npm run debug-playwright # WordPress統合テスト
npm run debug-mcp # MCPサーバーテスト
📊 Problemas resueltos
Problemas del método Base64
- 98% de pérdida de datos: Problema grave de 85KB → 1.5KB
- Mala eficiencia de memoria: 33% de uso innecesario de memoria
- Velocidad de procesamiento reducida: Sobrecarga de los procesos de codificación/decodificación
Ventajas del método de ruta de archivo
- Cero pérdida de datos: 85KB → 50KB (optimización normal)
- Eficiencia de memoria: Eliminación del proceso de codificación Base64
- Procesamiento rápido: Aceleración mediante lectura directa de archivos
- Estabilidad: Funcionamiento estable mediante el uso de la API estándar de WordPress
📄 Licencia
Licencia MIT: consulte el archivo LICENSE para obtener más detalles.
🙏 Agradecimientos
- @prathammanocha - wordpress-mcp-server original
- Equipo de la API REST de WordPress: documentación excelente
- Creadores de la especificación del Model Context Protocol
🔗 Proyectos relacionados
- Servidor original: prathammanocha/wordpress-mcp-server
- SDK de MCP: @modelcontextprotocol/sdk
Creado con ❤️ para una mejor automatización de WordPress