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

  1. Clona el repositorio:

    git clone https://github.com/mdoel/omnifocus-mcp
    cd omnifocus-mcp
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el proyecto:

    npm run build
    
  4. 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.

  5. 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 osascript en run-server.sh para 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.

  6. 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 Automation
  • OmniFocusJXA - Utilidad para construir y ejecutar scripts JXA
  • OmniFocusMCPServer - 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:

  1. Verifica la ruta del script en tu configuración de Claude Desktop
  2. Verifica los permisos - asegúrate de que el script run-server.sh sea ejecutable:
    chmod +x run-server.sh
    
  3. Verifica la instalación de Node.js - asegúrate de que Node.js 23.10.0+ esté instalado
  4. 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:

  1. Abre Preferencias del Sistema > Seguridad y Privacidad > Privacidad
  2. Selecciona Automatización en la barra lateral izquierda
  3. Encuentra tu terminal/shell y marca OmniFocus
  4. 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 limit para 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:

  1. Añade nuevas herramientas en el directorio src/omnifocus/
  2. Actualiza el servidor para registrar nuevas herramientas
  3. Prueba a fondo con tus datos de OmniFocus
  4. 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