Things 3
Gestiona tus tareas y proyectos en Things 3 en macOS.
Documentación
Servidor MCP de Things 3 (Ruby)
Un servidor integral del Model Context Protocol (MCP) para la gestión de tareas de Things 3 en macOS. Este servidor proporciona gestión de tareas en lenguaje natural, filtrado avanzado, operaciones masivas, análisis y herramientas de mantenimiento mediante la integración con AppleScript.
Solo macOS: Este servidor MCP requiere macOS y Things 3 (que es exclusivo de macOS).
🏗️ Arquitectura
El código está organizado en clases enfocadas con una clara separación de responsabilidades:
Things3MCPServer- Implementación principal del servidor MCPAppleScriptExecutor- Maneja la ejecución de AppleScript con gestión de erroresAppleScriptGenerator- Genera código AppleScript para operaciones de Things 3Things3Client- Operaciones principales de tareas de Things 3 (CRUD)DateParser- Análisis de fechas en lenguaje natural usando la gema ChronicTaskFilter- Capacidades avanzadas de filtrado y búsqueda de tareasBulkOperations- Operaciones masivas de tareas (crear, actualizar, mover, completar, importar)ReportGenerator- Revisiones semanales, informes de proyectos y análisis
🚀 Características
Gestión Principal de Tareas
- Operaciones CRUD: Crear, leer, actualizar, eliminar tareas
- Fechas en Lenguaje Natural: "mañana", "el próximo viernes", "en 3 días", etc.
- Organización Inteligente: Asignación de proyectos/áreas con creación automática
- Búsqueda Avanzada: Filtrado multicriterio con soporte de expresiones regulares
Filtrado Avanzado
- Filtros Complejos: Estado, proyectos, áreas, etiquetas, fechas, notas
- Filtros Rápidos: Filtros predefinidos para escenarios comunes
- Filtros Guardados: Almacena y reutiliza combinaciones de filtros complejas
- Búsqueda de Texto: Búsqueda en nombres y contenido de notas con expresiones regulares
Operaciones Masivas
- Creación Masiva: Crea múltiples tareas desde listas o plantillas
- Actualizaciones Masivas: Actualiza tareas que coincidan con criterios específicos
- Operaciones con Etiquetas: Añadir, eliminar, estandarizar etiquetas entre tareas
- Importar/Exportar: Soporte de importación CSV, JSON y texto plano
Análisis e Informes
- Revisiones Semanales: Generación integral de revisiones
- Salud del Proyecto: Analiza el progreso y los cuellos de botella del proyecto
- Perspectivas de Productividad: Patrones y tendencias de finalización
- Herramientas de Planificación: Planificación de la próxima semana con programación basada en energía
Mantenimiento de Datos
- Detección de Duplicados: Encuentra y fusiona tareas similares
- Limpieza de Tareas Huérfanas: Organiza tareas sin proyectos/áreas
- Estandarización de Etiquetas: Limpia la nomenclatura inconsistente de etiquetas
- Salud del Sistema: Puntuación de organización y métricas de salud
📋 Requisitos
- macOS: Requerido (Things 3 es solo para macOS)
- Things 3: Debe estar instalado y en ejecución
- Ruby: Versión 3.0.0 o superior
- Dependencias: Gestionadas mediante Bundler
Nota: Este servidor MCP solo funciona en macOS ya que Things 3 es una aplicación exclusiva de macOS.
🔐 Configuración de Permisos de macOS
Este servidor MCP utiliza AppleScript para comunicarse con Things 3, lo que requiere permisos específicos de macOS:
1. Permisos de Accesibilidad
Cuando ejecutes el servidor MCP por primera vez, macOS solicitará permisos de accesibilidad:
- Preferencias del Sistema → Seguridad y Privacidad → Privacidad → Accesibilidad
- Haz clic en el candado para realizar cambios (introduce tu contraseña)
- Añade tu cliente MCP (por ejemplo, Claude Desktop, Cursor, Terminal)
- Activa la casilla para la aplicación
2. Permisos de AppleScript
El servidor también puede necesitar permisos de AppleScript:
- Preferencias del Sistema → Seguridad y Privacidad → Privacidad → Automatización
- Encuentra tu cliente MCP en la lista
- Activa "Things3" bajo tu aplicación cliente
3. Permisos de Terminal/Ruby (si se ejecuta directamente)
Si ejecutas el servidor directamente desde Terminal:
- Preferencias del Sistema → Seguridad y Privacidad → Privacidad → Accesibilidad
- Añade Terminal (o tu aplicación de terminal)
- Activa la casilla
💡 Consejo: Si recibes errores de "permiso denegado", reinicia tu cliente MCP después de otorgar los permisos.
🛠 Instalación
-
Clona el repositorio:
git clone https://github.com/mattsafaii/things3-mcp.git cd things3-mcp -
Instala las dependencias:
bundle install -
Ejecuta el servidor MCP:
./things3-mcp-server -
Configúralo en tu cliente MCP - Consulta Configuración del Cliente MCP a continuación
🔌 Configuración del Cliente MCP
Claude Desktop
-
Encuentra tu archivo de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
-
Añade la configuración del servidor:
{ "mcpServers": { "things3": { "command": "/absolute/path/to/things3-mcp/things3-mcp-server", "args": [] } } } -
Reinicia Claude Desktop - El servidor aparecerá en tus herramientas disponibles
Cursor IDE
-
Abre la Configuración de Cursor (
Cmd + ,) -
Navega a Extensiones → MCP
-
Añade la configuración del servidor:
{ "name": "Things3", "command": "/absolute/path/to/things3-mcp/things3-mcp-server", "args": [] }
VS Code (con Extensión MCP)
-
Instala una extensión MCP desde el mercado de VS Code
-
Abre la Configuración de VS Code (
Cmd + ,) -
Busca "MCP" y añade el servidor:
{ "mcp.servers": [ { "name": "things3", "command": "/absolute/path/to/things3-mcp/things3-mcp-server", "args": [] } ] }
Editor Zed
-
Abre la configuración de Zed (
Cmd + ,) -
Añade a tu
settings.json:{ "language_models": { "mcp_servers": { "things3": { "command": "/absolute/path/to/things3-mcp/things3-mcp-server", "args": [] } } } }
Continue (Extensión de VS Code)
-
Abre la configuración de Continue (
.continue/config.jsonen tu espacio de trabajo) -
Añade el servidor MCP:
{ "mcpServers": { "things3": { "command": "/absolute/path/to/things3-mcp/things3-mcp-server", "args": [] } } }
Cliente MCP Genérico
Para cualquier cliente MCP que soporte el estándar, usa:
{
"name": "things3",
"command": "/absolute/path/to/things3-mcp/things3-mcp-server",
"args": [],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin"
}
}
Consejos de Configuración
- Usa rutas absolutas - Las rutas relativas pueden no funcionar en diferentes clientes
- Verifica los permisos - Asegúrate de que el ejecutable tenga los permisos adecuados (
chmod +x) - Prueba el servidor - Ejecuta
./things3-mcp-servermanualmente para verificar que funciona - Revisa los registros - La mayoría de los clientes MCP proporcionan registros para depurar problemas de conexión
Verificación de la Instalación
Una vez configurado, deberías ver estas herramientas disponibles en tu cliente MCP:
add_task,list_tasks,complete_task(operaciones principales)weekly_review,project_status_report(análisis)bulk_create_tasks,filter_tasks(características avanzadas)- Y más de 30 otras herramientas especializadas
Prueba con un comando simple:
"Add a task called 'Test MCP integration' to my Things 3"
Si tiene éxito, verás la tarea aparecer en Things 3 y recibirás un mensaje de confirmación.
Primera Ejecución: En el primer uso, macOS solicitará permisos (consulta Configuración de Permisos de macOS). Otorga los permisos y reinicia tu cliente MCP.
🎯 Herramientas Disponibles
33 herramientas integrales organizadas en categorías funcionales:
Operaciones Principales de Tareas
add_task- Crear nuevas tareas con metadatos completoslist_tasks- Listar tareas con opciones de filtradolist_projects- Listar todos los proyectos y áreasupdate_task- Modificar propiedades de tareas existentescomplete_task- Marcar tareas como completadasdelete_task- Eliminar tareas de Things 3move_task- Mover tareas entre proyectos/áreassearch_tasks- Buscar nombres y contenido de tareas
Características Avanzadas
add_task_with_planning_notes- Crear tareas con metadatos de planificaciónlist_tasks_by_date_range- Filtrar tareas por rangos de fechassnooze_task- Posponer tareas a fechas futurasparse_date- Probar el análisis de fechas en lenguaje natural
Filtrado y Búsqueda
filter_tasks- Filtrado avanzado multicriterioquick_filters- Filtros útiles predefinidos (huérfanas, vencidas, etc.)saved_filters- Gestionar configuraciones de filtros reutilizables
Análisis e Informes
weekly_review- Generar revisiones semanales integralesproject_status_report- Analizar proyectos activosproductivity_insights- Rastrear patrones de productividadnext_week_planning- Planificar la próxima semana con niveles de energíareview_templates- Gestionar formatos de revisión consistentes
Operaciones Masivas
bulk_create_tasks- Crear múltiples tareas a la vezbulk_update_tasks- Actualizar múltiples tareas coincidentesbulk_move_tasks- Mover tareas entre proyectosbulk_tag_operations- Gestión masiva de etiquetasbulk_complete_tasks- Completar múltiples tareasbulk_import_tasks- Importar desde formatos externos
Limpieza y Mantenimiento de Datos
cleanup_orphaned_tasks- Organizar tareas no asignadasfind_duplicate_tasks- Detectar y fusionar duplicadosstandardize_tags- Limpiar la consistencia de nombres de etiquetascleanup_stale_tasks- Manejar tareas antiguas/abandonadasanalyze_project_health- Métricas de salud del proyectofix_broken_references- Reparar problemas de integridad de datosorganization_score- Evaluación general de la salud del sistema
Plantillas y Automatización
task_templates- Gestionar conjuntos de tareas reutilizables
🔧 Configuración
Almacenamiento de Filtros Guardados
Los filtros se guardan automáticamente en: ~/.things3_mcp_filters.json
Modo de Depuración
Activa el registro detallado estableciendo indicadores de depuración en los constructores de clases o mediante variables de entorno.
📖 Ejemplos de Uso
Gestión Básica de Tareas
# Add simple task
add_task({"name": "Buy groceries"})
# Add task with project and due date
add_task({
"name": "Finish quarterly report",
"project": "Work",
"due_date": "next Friday",
"tags": ["urgent", "quarterly"]
})
Fechas en Lenguaje Natural
# Various supported formats
add_task({"name": "Team meeting", "due_date": "tomorrow at 2pm"})
add_task({"name": "Vacation planning", "due_date": "end of month"})
add_task({"name": "Project review", "start_date": "next Monday", "due_date": "in 2 weeks"})
Filtrado Avanzado
# Complex filter
filter_tasks({
"status": ["open"],
"project_names": ["Work", "Personal"],
"tag_filter": {"has_tags": ["urgent"]},
"date_filter": {"overdue": true}
})
# Quick filters
quick_filters({"filter_type": "orphaned_tasks"})
Flujo de Trabajo de Revisión Semanal
# Generate comprehensive review
weekly_review({
"review_type": "last_week",
"include_sections": ["completed", "overdue", "upcoming", "projects", "insights"]
})
# Project health check
project_status_report({"include_metrics": true})
# Plan next week
next_week_planning({"include_energy_levels": true})
Operaciones Masivas
# Create multiple tasks
bulk_create_tasks({
"tasks": [
{"name": "Research competitors", "project": "Website"},
{"name": "Design mockups", "project": "Website", "due_date": "Friday"},
{"name": "Write content", "project": "Website"}
]
})
# Standardize tags
standardize_tags({
"apply": true,
"rules": {"lowercase": true, "merge_similar": true}
})
🛡️ Manejo de Errores
- Disponibilidad de Things 3: Valida que Things 3 esté en ejecución antes de las operaciones
- Errores de AppleScript: Captura integral de errores con mensajes descriptivos
- Análisis de Fechas: Manejo elegante de fechas ambiguas con indicadores de confianza
- Validación de Entrada: Validación de parámetros con mensajes de error útiles
- Protección de Tiempo de Espera: Tiempo de espera de 30 segundos en operaciones de AppleScript
📁 Estructura de Archivos
things3-mcp/
├── things3-mcp-server # Executable script (root level)
├── lib/
│ ├── things3_mcp.rb # Main entry point
│ └── things3_mcp/
│ ├── server.rb # MCP server implementation
│ ├── client.rb # Core Things 3 operations
│ ├── date_parser.rb # Natural language date parsing
│ ├── task_filter.rb # Advanced task filtering
│ ├── bulk_operations.rb # Bulk task operations
│ ├── report_generator.rb # Analytics and reports
│ └── applescript/
│ ├── executor.rb # AppleScript execution engine
│ └── generator.rb # AppleScript code generation
├── Gemfile # Ruby dependencies
├── Gemfile.lock # Locked dependency versions
└── README.md # This documentation
🔍 Solución de Problemas
Problemas Comunes
Things 3 No Está en Ejecución
Error: Things 3 is not available
Solución: Inicia la aplicación Things 3
Permiso Denegado de AppleScript
Error: AppleScript execution failed - permission denied
Soluciones:
- Otorga permisos de Accesibilidad: Preferencias del Sistema → Seguridad y Privacidad → Privacidad → Accesibilidad
- Otorga permisos de Automatización: Preferencias del Sistema → Seguridad y Privacidad → Privacidad → Automatización
- Añade tu cliente MCP (Claude Desktop, Cursor, etc.) a ambas listas de permisos
- Reinicia tu cliente MCP después de otorgar los permisos
- Si se ejecuta directamente, añade Terminal a los permisos de Accesibilidad
Problemas de Análisis de Fechas
Error: Could not parse date: 'next Flursday'
Solución: Usa formatos compatibles como "el próximo viernes", "en 3 días" o "AAAA-MM-DD"
Tiempo de Espera de AppleScript
Error: AppleScript execution timeout
Solución: Reduce el tamaño de las operaciones masivas o verifica el rendimiento de Things 3
El Servidor MCP No Se Conecta
Error: MCP server failed to start
Soluciones:
- Verifica que la ruta absoluta a
things3-mcp-serversea correcta - Comprueba que el ejecutable tenga los permisos adecuados (
chmod +x things3-mcp-server) - Prueba el servidor manualmente:
./things3-mcp-server - Revisa los registros del cliente MCP para mensajes de error detallados
- Asegúrate de que Ruby y las dependencias estén instalados correctamente
Las Herramientas MCP No Aparecen
No Things3 tools available in client
Soluciones:
- Reinicia tu cliente MCP después de los cambios de configuración
- Verifica que la sintaxis de la configuración JSON sea válida
- Comprueba que el nombre del servidor no entre en conflicto con otros servidores MCP
- Busca errores de conexión en los registros del cliente
Modo de Depuración
Activa el registro detallado estableciendo debug: true en los constructores de clases para solucionar problemas.
🤝 Integración MCP
Este servidor implementa el Model Context Protocol y puede usarse con cualquier cliente compatible con MCP:
- Claude Desktop - El cliente MCP más popular
- Cursor IDE - Editor de código con IA con soporte MCP
- VS Code - Con extensiones MCP
- Editor Zed - Editor moderno con soporte MCP integrado
- Continue - Extensión de VS Code para asistencia de codificación con IA
- Aplicaciones Personalizadas - Cualquier herramienta que implemente el estándar MCP
Consulta la sección Configuración del Cliente MCP anterior para obtener instrucciones detalladas de configuración para cada cliente.
El servidor proporciona una interfaz de lenguaje natural para la gestión integral de tareas de Things 3 a través del protocolo MCP estandarizado, haciendo que tu gestión de tareas esté disponible para cualquier asistente de IA o herramienta de automatización que soporte MCP.
📄 Dependencias
mcp(~> 0.1.0) - Implementación del Model Context Protocolchronic(~> 0.10.2) - Análisis de fechas en lenguaje naturaldebug,rubocop(desarrollo)
📊 Salud del Sistema
El servidor incluye monitoreo de salud integrado a través de:
- Puntuación de organización (0-100 en múltiples dimensiones)
- Análisis de salud del proyecto
- Detección de duplicados
- Verificaciones de integridad de datos
- Análisis de tendencias de productividad
El mantenimiento regular se puede automatizar a través de las herramientas de limpieza y análisis proporcionadas.