Goodday
Un servidor de solo lectura para la plataforma de gestión de proyectos Goodday.
Documentación
Servidor MCP de Solo Lectura Goodday
Un servidor de Protocolo de Contexto de Modelo (MCP) de solo lectura para integrarse con la plataforma de gestión de proyectos Goodday. Este servidor proporciona herramientas de solo lectura para consultar proyectos, tareas y usuarios a través de la API v2 de Goodday, garantizando que no se puedan modificar datos.
Características
Gestión de Proyectos (Solo Lectura)
- get_projects: Recuperar lista de proyectos (con opciones para filtrado de archivados y solo raíz)
- get_project: Obtener información detallada sobre un proyecto específico
- get_project_users: Obtener usuarios asociados a un proyecto específico
Gestión de Tareas (Solo Lectura)
- get_project_tasks: Recuperar tareas de proyectos específicos (con opciones para tareas cerradas y subcarpetas)
- get_user_assigned_tasks: Obtener tareas asignadas a un usuario específico
- get_user_action_required_tasks: Obtener tareas que requieren acción para un usuario
- get_task: Obtener información detallada sobre una tarea específica
Gestión de Usuarios (Solo Lectura)
- get_users: Recuperar lista de usuarios de la organización
- get_user: Obtener información detallada sobre un usuario específico
Instalación
Desde PyPI (Recomendado)
pip install goodday-ro-mcp
Desde el Código Fuente
Requisitos Previos
- Python 3.10 o superior
- Gestor de paquetes UV (recomendado) o pip
- Token de API de Goodday
Configuración con UV
-
Instalar UV (si no está instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Clonar y configurar el proyecto:
git clone https://github.com/your-username/goodday-ro-mcp.git cd goodday-ro-mcp uv sync
Configuración con pip
git clone https://github.com/your-username/goodday-ro-mcp.git
cd goodday-ro-mcp
pip install -e .
Configuración
Variables de Entorno
Establezca su token de API de Goodday como variable de entorno:
export GOODDAY_API_TOKEN="your_goodday_api_token_here"
Cómo encontrar su token de API:
- Inicie sesión en su cuenta de Goodday
- Vaya a Configuración → API e Integraciones
- Genere o copie su token de API
Uso
Como Servidor MCP (Claude Desktop)
Agregue a su archivo de configuración de Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"goodday-ro": {
"command": "goodday-ro-mcp",
"env": {
"GOODDAY_API_TOKEN": "your_goodday_api_token_here"
}
}
}
}
Como Servidor HTTP (Docker)
También puede ejecutarlo como un servidor HTTP independiente con documentación OpenAPI y soporte de Server-Sent Events:
# Run directly
goodday-ro-mcp-server
# Or with Docker (see Docker section below)
docker run -e GOODDAY_API_TOKEN=your_token -p 8000:8000 goodday-ro-mcp:latest
El servidor estará disponible en:
- API principal: http://localhost:8000
- Documentación OpenAPI: http://localhost:8000/docs
- Verificación de salud: http://localhost:8000/health
- Endpoint SSE: http://localhost:8000/sse
- Herramientas disponibles: http://localhost:8000/tools
Implementación con Docker
Construir Imagen Docker
cd goodday-ro-mcp
docker build -t goodday-ro-mcp:latest .
Ejecutar con Docker
docker run -d \
--name goodday-ro-mcp \
-e GOODDAY_API_TOKEN=your_goodday_api_token_here \
-p 8000:8000 \
goodday-ro-mcp:latest
Ejecutar con Docker Compose
version: '3.8'
services:
goodday-ro-mcp:
build: .
environment:
- GOODDAY_API_TOKEN=${GOODDAY_API_TOKEN}
ports:
- "8000:8000"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
Endpoints de API
Cuando se ejecuta como servidor HTTP, están disponibles los siguientes endpoints:
Endpoints Principales
GET /- Información del servidor y herramientas disponiblesGET /health- Endpoint de verificación de saludGET /tools- Lista de herramientas disponibles con descripcionesPOST /tools/call- Ejecutar una herramienta con argumentosGET /sse- Server-Sent Events para actualizaciones en tiempo realGET /docs- Documentación OpenAPI (Swagger UI)
Ejemplo de Uso de API
# Get all projects
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_projects", "arguments": {"archived": false, "root_only": true}}'
# Get specific project
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_project", "arguments": {"project_id": "12345"}}'
# Get project tasks
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_project_tasks", "arguments": {"project_id": "12345", "closed": false}}'
Herramientas Disponibles
Todas las herramientas son de solo lectura y no modificarán ningún dato en su cuenta de Goodday.
Herramientas de Proyectos
get_projects(archived=False, root_only=False)- Listar proyectosget_project(project_id)- Obtener detalles del proyectoget_project_users(project_id)- Obtener miembros del equipo del proyecto
Herramientas de Tareas
get_project_tasks(project_id, closed=False, subfolders=False)- Listar tareas del proyectoget_task(task_id)- Obtener detalles de la tareaget_user_assigned_tasks(user_id, closed=False)- Obtener tareas asignadas del usuarioget_user_action_required_tasks(user_id)- Obtener tareas que requieren acción del usuario
Herramientas de Usuarios
get_users()- Listar usuarios de la organizaciónget_user(user_id)- Obtener detalles del usuario
Manejo de Errores
El servidor incluye manejo integral de errores:
- Errores de API: Los errores de la API de Goodday se capturan y devuelven con mensajes descriptivos
- Errores de Red: Los tiempos de espera de conexión y problemas de red se manejan correctamente
- Errores de Autenticación: Los tokens de API faltantes o inválidos se reportan claramente
- Validación de Datos: Las respuestas inválidas de la API se manejan de forma segura
Desarrollo
Ejecutar Pruebas
uv run pytest
Formato de Código
uv run black goodday_ro_mcp/
uv run isort goodday_ro_mcp/
Verificación de Tipos
uv run mypy goodday_ro_mcp/
Seguridad
Este es un servidor de solo lectura que:
- Solo realiza solicitudes GET a la API de Goodday
- No puede crear, actualizar ni eliminar ningún dato
- Valida todas las entradas para prevenir ataques de inyección
- Utiliza encabezados HTTP seguros y políticas CORS
Limitaciones
- Solo Lectura: No puede crear, actualizar ni eliminar proyectos, tareas o usuarios
- Límite de Velocidad: Sujeto a los límites de velocidad de la API de Goodday
- Autenticación: Requiere un token de API válido de Goodday
- Permisos: Limitado a los datos accesibles por el usuario asociado al token de API
Licencia
Licencia MIT - consulte el archivo LICENSE para más detalles.
Contribuciones
- Haga un fork del repositorio
- Cree una rama de características
- Realice sus cambios
- Agregue pruebas si corresponde
- Envíe una solicitud de pull
Soporte
Para problemas y preguntas:
- Problemas de GitHub: https://github.com/your-username/goodday-ro-mcp/issues
- Documentación de la API de Goodday: https://developers.goodday.work