OmniFocus MCP Server
Integra OmniFocus con Claude Desktop para la gestión de tareas y revisiones semanales impulsadas por IA.
Documentación
OmniFocus MCP Server
Un servidor de Protocolo de Contexto de Modelo (MCP) para integrar OmniFocus con Claude Desktop. Este servidor proporciona a Claude acceso a tus tareas y proyectos de OmniFocus, permitiendo la gestión de tareas y revisiones semanales impulsadas por IA.
Características
- 🎯 Integración con OmniFocus - Accede a tareas y proyectos de OmniFocus
- 🔧 Filtrado de tareas activas - Obtén solo tareas no completadas, excluyendo plantillas y elementos del sistema
- 🚀 TypeScript + SDK de MCP - Seguro en tipos y mantenible
- 🔒 Automatización segura - Utiliza la API oficial de JavaScript de Omni Automation
- 📱 Listo para Claude Desktop - Funciona perfectamente con Claude Desktop
Herramientas actuales
omnifocus:get_all_tasks
Recupera todas las tareas de OmniFocus con opciones de filtrado:
includeCompleted(booleano) - Incluir tareas completadas (por defecto: false)limit(número) - Número máximo de tareas a devolver (por defecto: 100)
omnifocus:get_active_tasks
Recupera solo tareas activas (no completadas), filtrando automáticamente:
- Tareas de carpetas "Templates"
- Tareas que contienen marcadores de plantilla (
«,») - Tareas con marcadores de preferencias sincronizadas (
⚙️)
omnifocus:get_projects
Recupera todos los proyectos activos de OmniFocus.
Requisitos previos
- macOS con OmniFocus instalado
- Node.js 23.10.0 o superior
- Aplicación Claude Desktop
- Permisos de automatización para OmniFocus
Instalación
-
Clona el repositorio:
git clone https://github.com/mdoel/omnifocus-mcp cd omnifocus-mcp -
Instala las dependencias:
npm install -
Compila el proyecto:
npm run build -
Configura Claude Desktop:
Añade esto a tu configuración MCP de Claude Desktop:
{ "mcpServers": { "omnifocus": { "command": "/path/to/omnifocus/run-server.sh", "args": [] } } }Importante: Reemplaza
/path/to/omnifocus/con la ruta real a tu directorio del proyecto. -
Otorga permisos de automatización:
La primera vez que ejecutes el servidor, macOS te pedirá que otorgues permisos de automatización para OmniFocus. Haz clic en "Permitir" cuando se te solicite.
Nota: Si encuentras problemas de permisos, es posible que necesites descomentar temporalmente las líneas
osascriptenrun-server.shpara activar el diálogo de permisos. Después de otorgar los permisos, vuelve a comentar esas líneas para evitar el diálogo en cada inicio. -
Reinicia Claude Desktop para cargar el nuevo servidor MCP.
Uso
Una vez configurado, puedes pedirle a Claude que:
- "Obtén todas mis tareas activas de OmniFocus"
- "Muéstrame mis proyectos"
- "¿Qué tareas tengo para hoy?"
- "Ayúdame con mi revisión semanal"
Arquitectura
Componentes principales
OmniFocusClient- Maneja la comunicación con OmniFocus mediante Omni AutomationOmniFocusJXA- Utilidad para construir y ejecutar scripts JXAOmniFocusMCPServer- Implementación principal del servidor MCP
Estructura de directorios
src/
├── index.ts # Main entry point
├── server.ts # MCP server implementation
├── omnifocus/
│ ├── client.ts # OmniFocus automation client
│ └── omnifocus-jxa.ts # JXA script utilities
└── types/
└── omnifocus.ts # TypeScript definitions
Desarrollo
Compilación
# Build the project
npm run build
# Watch mode for development
npm run dev
Pruebas
Puedes probar el servidor localmente:
# Test with command line arguments
node dist/index.js all # Get all tasks
node dist/index.js active # Get active tasks only
node dist/index.js projects # Get projects only
Pruebas de automatización de OmniFocus
Prueba la automatización de OmniFocus directamente:
# Test basic connection
osascript -l JavaScript -e "Application('OmniFocus').running()"
# Test task retrieval
osascript -l JavaScript -e "
const app = Application('OmniFocus');
const doc = app.defaultDocument;
const tasks = doc.flattenedTasks();
console.log('Found ' + tasks.length + ' tasks');
"
Solución de problemas
Problemas de conexión del servidor
Si Claude Desktop no puede conectarse al servidor:
- Verifica la ruta del script en tu configuración de Claude Desktop
- Verifica los permisos - asegúrate de que el script
run-server.shsea ejecutable:chmod +x run-server.sh - Verifica la instalación de Node.js - asegúrate de que Node.js 23.10.0+ esté instalado
- Revisa los registros - consulta los registros del servidor MCP de Claude Desktop para ver mensajes de error
Problemas de permisos
Si obtienes errores de permisos de automatización:
- Abre Preferencias del Sistema > Seguridad y Privacidad > Privacidad
- Selecciona Automatización en la barra lateral izquierda
- Encuentra tu terminal/shell y marca OmniFocus
- Reinicia tu terminal e inténtalo de nuevo
OmniFocus no encontrado
- Asegúrate de que OmniFocus esté instalado y en ejecución
- Verifica que el nombre de la aplicación sea "OmniFocus" (no "OmniFocus 3" o algo similar)
- Comprueba que OmniFocus no esté en la papelera o deshabilitado
Problemas de rendimiento
Si el servidor es lento o se agota el tiempo:
- El servidor puede tardar en procesar bases de datos grandes de OmniFocus
- Considera usar el parámetro
limitpara reducir el número de tareas devueltas - Asegúrate de que OmniFocus no esté realizando otras operaciones
Contribuciones
Este proyecto está diseñado para ser extensible. Para añadir nueva funcionalidad:
- Añade nuevas herramientas en el directorio
src/omnifocus/ - Actualiza el servidor para registrar nuevas herramientas
- Prueba a fondo con tus datos de OmniFocus
- Envía una solicitud de extracción con documentación clara
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles.
Soporte
Para problemas y preguntas:
- Consulta la sección de solución de problemas anterior
- Revisa la documentación de MCP de Claude Desktop
- Abre un problema en este repositorio