Skip to main content
Glama

Planka MCP Server

by gcorroto
README.md11.7 kB
# MCP Planka Server Servidor MCP (Model Context Protocol) para integración completa con tableros Kanban de Planka. Permite gestionar proyectos, tableros, tarjetas, tareas y colaboración directamente desde aplicaciones MCP como Claude. ## 🚀 Características - **Gestión de Proyectos**: Crear, listar y administrar proyectos - **Tableros Kanban**: Crear y gestionar tableros con listas personalizadas - **Gestión de Tarjetas**: Crear, mover, duplicar y organizar tarjetas - **Sistema de Tareas**: Crear subtareas y seguimiento de progreso - **Etiquetas y Categorías**: Organizar tarjetas con etiquetas de colores - **Comentarios**: Colaboración a través de comentarios en tarjetas - **Seguimiento de Tiempo**: Cronómetros integrados para time tracking - **Gestión de Membresías**: Control de acceso y permisos por tablero ## 📋 Herramientas Disponibles ### `mcp_kanban_project_board_manager` Gestiona proyectos y tableros con operaciones CRUD completas. - **Parámetros**: `action`, `id`, `projectId`, `name`, `position`, `boardId` ### `mcp_kanban_list_manager` Administra listas dentro de los tableros. - **Parámetros**: `action`, `id`, `boardId`, `name`, `position` ### `mcp_kanban_card_manager` Gestión completa de tarjetas Kanban. - **Parámetros**: `action`, `id`, `listId`, `name`, `description`, `tasks` ### `mcp_kanban_stopwatch` Control de cronómetros para seguimiento de tiempo. - **Parámetros**: `action`, `id` ### `mcp_kanban_label_manager` Gestión de etiquetas y categorización. - **Parámetros**: `action`, `boardId`, `name`, `color`, `cardId`, `labelId` ### `mcp_kanban_task_manager` Control de tareas y subtareas. - **Parámetros**: `action`, `cardId`, `name`, `tasks`, `isCompleted` ### `mcp_kanban_comment_manager` Sistema de comentarios para colaboración. - **Parámetros**: `action`, `cardId`, `text` ### `mcp_kanban_membership_manager` Control de acceso y permisos por tablero. - **Parámetros**: `action`, `boardId`, `userId`, `role`, `canComment` ## 🛠️ Instalación ### Instalación General MCP EN LOCAL (NO RECOMENDADO) 1. **Instalar dependencias**: ```bash npm install ``` 2. **Configurar variables de entorno**: ```bash cp config.example.env .env # Editar .env con la configuración de su servidor Planka ``` 3. **Compilar**: ```bash npm run build ``` ## ⚙️ Configuración ### Variables de Entorno | Variable | Descripción | Por Defecto | |----------|-------------|-------------| | `PLANKA_BASE_URL` | URL base del servidor Planka | `http://localhost:3000` | | `PLANKA_AGENT_EMAIL` | Email para autenticación | - | | `PLANKA_AGENT_PASSWORD` | Contraseña para autenticación | - | | `PLANKA_ALLOW_INSECURE` | Permitir conexiones HTTPS sin validar certificado SSL (útil para certificados autofirmados o internos) | `false` | ### Configuración MCP en Aplicaciones USANDO NPX (RECOMENDADO) #### Ubicación del archivo de configuración **Claude Desktop:** - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Linux**: `~/.config/claude/claude_desktop_config.json` #### Para Claude Desktop (config.json) **Configuración básica con NPX (RECOMENDADO):** ```json { "mcpServers": { "planka": { "command": "npx", "args": ["@grec0/mcp-planka@latest"], "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_AGENT_EMAIL": "demo@demo.demo", "PLANKA_AGENT_PASSWORD": "demo" } } } } ``` > **⚠️ IMPORTANTE**: Usar `@latest` garantiza que se use la versión más reciente del paquete. Sin esto, puedes obtener errores como "no server info found". **Para servidor Planka remoto:** ```json { "mcpServers": { "planka": { "command": "npx", "args": ["@grec0/mcp-planka@latest"], "env": { "PLANKA_BASE_URL": "https://tu-planka-server.com", "PLANKA_AGENT_EMAIL": "tu-email@ejemplo.com", "PLANKA_AGENT_PASSWORD": "tu-contraseña" } } } } ``` **Para servidor Planka con certificado SSL autofirmado o interno:** ```json { "mcpServers": { "planka": { "command": "npx", "args": ["@grec0/mcp-planka@latest"], "env": { "PLANKA_BASE_URL": "https://planka-interno.empresa.com", "PLANKA_AGENT_EMAIL": "tu-email@ejemplo.com", "PLANKA_AGENT_PASSWORD": "tu-contraseña", "PLANKA_ALLOW_INSECURE": "true" } } } } ``` #### Para instalación local ```json { "mcpServers": { "planka": { "command": "node", "args": ["C:/ruta/a/kanban-mcp/dist/index.js"], "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_AGENT_EMAIL": "demo@demo.demo", "PLANKA_AGENT_PASSWORD": "demo" } } } } ``` #### Para entorno de desarrollo ```json { "mcpServers": { "planka": { "command": "npm", "args": ["run", "dev"], "cwd": "C:/ruta/a/kanban-mcp", "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_AGENT_EMAIL": "demo@demo.demo", "PLANKA_AGENT_PASSWORD": "demo" } } } } ``` ### Verificar configuración MCP Después de configurar el MCP, puedes verificar que funciona correctamente: 1. **Reiniciar la aplicación** (Claude Desktop, etc.) 2. **Probar operación básica**: ``` mcp_kanban_project_board_manager(action: "get_projects", page: 1, perPage: 10) ``` 3. **Crear un tablero de prueba**: ``` mcp_kanban_project_board_manager(action: "create_board", projectId: "ID_DEL_PROYECTO", name: "Tablero de Prueba", position: 1) ``` ## 🔧 Solución de Problemas ### Error: "no server info found" Este error típicamente ocurre por: 1. **Falta el `@latest` en la configuración**: ```json // ❌ INCORRECTO "args": ["@grec0/mcp-planka"] // ✅ CORRECTO "args": ["@grec0/mcp-planka@latest"] ``` 2. **Variables de entorno faltantes o incorrectas**: ```json "env": { "PLANKA_BASE_URL": "http://localhost:3000", "PLANKA_AGENT_EMAIL": "demo@demo.demo", "PLANKA_AGENT_PASSWORD": "demo" } ``` 3. **El servidor Planka no está ejecutándose**: - Verificar que Planka esté en `http://localhost:3000` - Verificar que las credenciales sean correctas 4. **Caché de npm desactualizado**: ```bash npm cache clean --force npx @grec0/mcp-planka@latest ``` ### Error de certificado SSL (UNABLE_TO_VERIFY_LEAF_SIGNATURE) Si obtiene errores relacionados con certificados SSL autofirmados o internos: ``` Error: unable to verify the first certificate Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE ``` **Solución**: Habilitar conexiones inseguras agregando `PLANKA_ALLOW_INSECURE: "true"` a la configuración: ```json "env": { "PLANKA_BASE_URL": "https://planka-interno.empresa.com", "PLANKA_AGENT_EMAIL": "tu-email@ejemplo.com", "PLANKA_AGENT_PASSWORD": "tu-contraseña", "PLANKA_ALLOW_INSECURE": "true" } ``` > **⚠️ ADVERTENCIA DE SEGURIDAD**: Solo usar `PLANKA_ALLOW_INSECURE=true` en entornos internos de confianza. Esta opción desactiva la validación de certificados SSL y no debe usarse para servidores públicos en Internet. ### Otros errores comunes - **Error de conexión**: Verificar que `PLANKA_BASE_URL` sea correcta y accesible - **Error de autenticación**: Verificar email y contraseña en las variables de entorno - **Timeout**: Verificar conectividad de red con el servidor Planka ### Variables de Entorno Principales ```bash # Configuración básica PLANKA_BASE_URL=http://localhost:3000 PLANKA_AGENT_EMAIL=demo@demo.demo PLANKA_AGENT_PASSWORD=demo # Opcional: Para certificados SSL autofirmados o internos PLANKA_ALLOW_INSECURE=true ``` ### Configuración de Servidor Planka Local Si necesita un servidor Planka local para desarrollo: ```bash # Usando Docker Compose docker-compose up -d # O usando NPM scripts del proyecto npm run up # Acceder a Planka # URL: http://localhost:3000 # Credenciales por defecto: demo@demo.demo / demo ``` ## 🚀 Uso ### Iniciar el servidor (instalación local) ```bash npm run start ``` ### Modo desarrollo ```bash npm run dev ``` ### Con inspector MCP ```bash npm run inspector ``` ### Scripts Docker (Para Planka local) ```bash # Iniciar contenedores Planka npm run up # Detener contenedores npm run down # Reiniciar contenedores npm run restart ``` ## 📚 Ejemplos de Uso ### Gestión de Proyectos ```javascript // Listar proyectos mcp_kanban_project_board_manager({ action: "get_projects", page: 1, perPage: 10 }) // Crear tablero mcp_kanban_project_board_manager({ action: "create_board", projectId: "project_id", name: "Mi Nuevo Tablero", position: 1 }) ``` ### Gestión de Tarjetas ```javascript // Crear tarjeta con tareas mcp_kanban_card_manager({ action: "create_with_tasks", listId: "list_id", name: "Nueva Funcionalidad", description: "Implementar nueva característica", tasks: ["Diseño", "Desarrollo", "Testing", "Deploy"], comment: "Tarjeta creada automáticamente" }) // Mover tarjeta entre listas mcp_kanban_card_manager({ action: "move", id: "card_id", listId: "new_list_id", position: 0 }) ``` ### Seguimiento de Tiempo ```javascript // Iniciar cronómetro mcp_kanban_stopwatch({ action: "start", id: "card_id" }) // Detener cronómetro mcp_kanban_stopwatch({ action: "stop", id: "card_id" }) ``` ## 🔧 Solución de Problemas ### Error de Conexión con Planka Si obtiene errores de conexión: 1. **Verificar URL base**: Asegúrese que `PLANKA_BASE_URL` sea correcta 2. **Verificar credenciales**: Email y contraseña deben ser válidos 3. **Verificar conectividad**: El servidor Planka debe estar ejecutándose ```bash # Probar conectividad manualmente curl -X POST http://localhost:3000/api/access-tokens \ -H "Content-Type: application/json" \ -d '{"emailOrUsername": "demo@demo.demo", "password": "demo"}' ``` ### Error NPX "Package not found" Si NPX no encuentra el paquete: ```bash # Limpiar cache de NPX npx clear-npx-cache # O instalar globalmente npm install -g @grec0/mcp-planka ``` ### Problemas de Autenticación ```bash # Verificar variables de entorno echo $PLANKA_BASE_URL echo $PLANKA_AGENT_EMAIL # No mostrar password en logs por seguridad ``` ### Error de Configuración MCP 1. **Verificar sintaxis JSON** en el archivo de configuración 2. **Reiniciar la aplicación** después de cambios 3. **Verificar rutas absolutas** si usa instalación local ### Variables de Entorno Faltantes Verificar: 1. `PLANKA_BASE_URL` configurada correctamente 2. `PLANKA_AGENT_EMAIL` y `PLANKA_AGENT_PASSWORD` válidos 3. Servidor Planka accesible desde la red ## 🧪 Testing ```bash npm test ``` ## 📖 Compatibilidad - **Planka**: v1.0.0+ - **Node.js**: >=18.0.0 - **Sistemas**: Windows, Linux, macOS - **MCP**: Compatible con Claude Desktop y otros clientes MCP ## 🔐 Seguridad - Autenticación basada en credenciales de Planka - Comunicación a través de API REST estándar - Variables de entorno para credenciales seguras - Sin almacenamiento local de credenciales ## 🤝 Contribución 1. Fork el proyecto 2. Crear branch para feature (`git checkout -b feature/nueva-funcionalidad`) 3. Commit cambios (`git commit -am 'Add nueva funcionalidad'`) 4. Push al branch (`git push origin feature/nueva-funcionalidad`) 5. Crear Pull Request ## 📜 License Este proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para detalles. ## 🆘 Support - **Issues**: [GitHub Issues](https://github.com/grec0/mcp-planka/issues) - **Documentación**: [Wiki del Proyecto](https://github.com/grec0/mcp-planka/wiki) - **Planka**: [Documentación Oficial de Planka](https://docs.planka.cloud/)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gcorroto/mcp-planka'

If you have feedback or need assistance with the MCP directory API, please join our Discord server