OmniFocus MCP Server

Integre o OmniFocus com o Claude Desktop para gerenciamento de tarefas e revisões semanais com inteligência artificial.

Documentação

Servidor MCP OmniFocus

Um servidor Model Context Protocol (MCP) para integrar o OmniFocus com o Claude Desktop. Este servidor fornece ao Claude acesso às suas tarefas e projetos do OmniFocus, permitindo gerenciamento de tarefas com IA e revisões semanais.

Recursos

  • 🎯 Integração OmniFocus - Acesse tarefas e projetos do OmniFocus
  • 🔧 Filtragem de Tarefas Ativas - Obtenha apenas tarefas não concluídas, excluindo modelos e itens do sistema
  • 🚀 TypeScript + SDK MCP - Seguro em termos de tipos e fácil de manter
  • 🔒 Automação Segura - Usa a API oficial JavaScript do Omni Automation
  • 📱 Pronto para Claude Desktop - Funciona perfeitamente com o Claude Desktop

Ferramentas Atuais

omnifocus:get_all_tasks

Recupera todas as tarefas do OmniFocus com opções de filtragem:

  • includeCompleted (booleano) - Incluir tarefas concluídas (padrão: false)
  • limit (número) - Número máximo de tarefas a retornar (padrão: 100)

omnifocus:get_active_tasks

Recupera apenas tarefas ativas (não concluídas), filtrando automaticamente:

  • Tarefas de pastas "Templates"
  • Tarefas contendo placeholders de modelo («, »)
  • Tarefas com marcadores de preferências sincronizadas (⚙️)

omnifocus:get_projects

Recupera todos os projetos ativos do OmniFocus.

Pré-requisitos

  • macOS com OmniFocus instalado
  • Node.js 23.10.0 ou superior
  • Aplicativo Claude Desktop
  • Permissões de automação para o OmniFocus

Instalação

  1. Clone o repositório:

    git clone https://github.com/mdoel/omnifocus-mcp
    cd omnifocus-mcp
    
  2. Instale as dependências:

    npm install
    
  3. Compile o projeto:

    npm run build
    
  4. Configure o Claude Desktop:

    Adicione isto à sua configuração MCP do Claude Desktop:

    {
      "mcpServers": {
        "omnifocus": {
          "command": "/path/to/omnifocus/run-server.sh",
          "args": []
        }
      }
    }
    

    Importante: Substitua /path/to/omnifocus/ pelo caminho real para o diretório do seu projeto.

  5. Conceda permissões de automação:

    Na primeira vez que você executar o servidor, o macOS solicitará que você conceda permissões de automação para o OmniFocus. Clique em "Permitir" quando solicitado.

    Nota: Se você encontrar problemas de permissão, pode ser necessário descomentar temporariamente as linhas osascript em run-server.sh para acionar o diálogo de permissão. Após conceder as permissões, comente essas linhas novamente para evitar o diálogo em cada inicialização.

  6. Reinicie o Claude Desktop para carregar o novo servidor MCP.

Uso

Depois de configurado, você pode pedir ao Claude para:

  • "Pegue todas as minhas tarefas ativas do OmniFocus"
  • "Mostre-me meus projetos"
  • "Que tarefas tenho para hoje?"
  • "Ajude-me com minha revisão semanal"

Arquitetura

Componentes Principais

  • OmniFocusClient - Gerencia a comunicação com o OmniFocus via Omni Automation
  • OmniFocusJXA - Utilitário para construir e executar scripts JXA
  • OmniFocusMCPServer - Implementação principal do servidor MCP

Estrutura de Diretórios

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

Desenvolvimento

Compilação

# Build the project
npm run build

# Watch mode for development
npm run dev

Testes

Você pode testar o 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

Testando a Automação do OmniFocus

Teste a automação do OmniFocus diretamente:

# 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');
"

Solução de Problemas

Problemas de Conexão com o Servidor

Se o Claude Desktop não conseguir se conectar ao servidor:

  1. Verifique o caminho do script na sua configuração do Claude Desktop
  2. Verifique as permissões - garanta que o script run-server.sh seja executável:
    chmod +x run-server.sh
    
  3. Verifique a instalação do Node.js - garanta que o Node.js 23.10.0+ esteja instalado
  4. Revise os logs - verifique os logs do servidor MCP do Claude Desktop para mensagens de erro

Problemas de Permissão

Se você receber erros de permissão de automação:

  1. Abra Preferências do Sistema > Segurança e Privacidade > Privacidade
  2. Selecione Automação na barra lateral esquerda
  3. Encontre seu terminal/shell e marque OmniFocus
  4. Reinicie seu terminal e tente novamente

OmniFocus Não Encontrado

  • Certifique-se de que o OmniFocus esteja instalado e em execução
  • Verifique se o nome do aplicativo é "OmniFocus" (não "OmniFocus 3" ou algo semelhante)
  • Verifique se o OmniFocus não está na lixeira ou desativado

Problemas de Desempenho

Se o servidor estiver lento ou expirar:

  • O servidor pode levar tempo para processar grandes bancos de dados do OmniFocus
  • Considere usar o parâmetro limit para reduzir o número de tarefas retornadas
  • Certifique-se de que o OmniFocus não esteja realizando outras operações

Contribuindo

Este projeto foi projetado para ser extensível. Para adicionar novas funcionalidades:

  1. Adicione novas ferramentas no diretório src/omnifocus/
  2. Atualize o servidor para registrar novas ferramentas
  3. Teste minuciosamente com seus dados do OmniFocus
  4. Envie um pull request com documentação clara

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

Suporte

Para problemas e perguntas:

  • Consulte a seção de solução de problemas acima
  • Revise a documentação MCP do Claude Desktop
  • Abra uma issue neste repositório