mcp-apple-notes

Pesquisa semânt

Documentação

MCP Apple Notes

MCP Apple Notes

mcp-apple-notes MCP server

Um servidor Model Context Protocol (MCP) que permite busca semântica e RAG (Geração Aumentada por Recuperação) sobre suas Notas do Apple. Funciona com qualquer cliente compatível com MCP — Claude Desktop, Cursor, Windsurf, Cline e outros.

MCP Apple Notes Demo

Recursos

  • 🔍 Busca semântica sobre Notas do Apple usando o modelo de embeddings no dispositivo all-MiniLM-L6-v2
  • 📝 Recursos de busca em texto completo
  • 📂 Suporte a pastas — listar pastas, navegar por pasta, filtrar busca por pasta
  • 📊 Armazenamento vetorial usando LanceDB
  • 🤖 Funciona com qualquer cliente compatível com MCP (Claude, Cursor, Windsurf, Cline, etc.)
  • 🍎 Integração nativa com Notas do Apple via JXA
  • 🔒 Modo somente leitura opcional para exploração segura
  • 🏃‍♂️ Execução totalmente local — sem necessidade de chaves de API

Segurança e Transparência

Como este servidor interage com suas Notas do Apple privadas, ele foi projetado com transparência absoluta em mente. Ele roda 100% localmente no seu Mac.

  • Sem Nuvem, Sem Telemetria — Sem chaves de API, nenhum dado sai da sua máquina.
  • JXA Nativo do Apple — Usa a ponte de script oficial JavaScript for Automation da Apple.
  • Embeddings no dispositivo — O modelo all-MiniLM-L6-v2 roda localmente via @huggingface/transformers.
  • Verificável — Você é altamente incentivado a ler cada linha de código (especialmente index.ts) antes de tocar em suas notas.
  • Lançamentos do GitHub incluem somas de verificação SHA-256 para que você possa verificar os artefatos baixados.

Instalação e Configuração

Escolha o método de instalação que se adequa ao seu fluxo de trabalho.


Método 1: Instalar a partir do código-fonte (recomendado)

Ao clonar o repositório localmente, você pode inspecionar o código-fonte e saber exatamente o que está sendo executado na sua máquina.

Pré-requisitos: Node.js (v18+) ou Bun

Usando Bun?
git clone https://github.com/Dan8Oren/mcp-apple-notes && cd mcp-apple-notes && bun install
{
  "mcpServers": {
    "apple-notes": {
      "command": "bun",
      "args": ["run", "/path/to/mcp-apple-notes/index.ts"]
    }
  }
}

Usando NPM:

git clone https://github.com/Dan8Oren/mcp-apple-notes && cd mcp-apple-notes && npm install

Em seguida, adicione o servidor à configuração do seu cliente MCP. Substitua /path/to/mcp-apple-notes pelo local onde você clonou o repositório:

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-apple-notes/index.ts"]
    }
  }
}

Dica: Quer experimentar sem risco? Ative o modo somente leitura para bloquear todas as operações de escrita enquanto explora.
"env": { "MCP_APPLE_NOTES_READ_ONLY": "1" }


Método 2: Início rápido via npx

Se você preferir uma abordagem sem configuração e confiar no pacote npm publicado, basta adicionar isso diretamente à sua configuração MCP:

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": ["-y", "@dan8oren/mcp-apple-notes"]
    }
  }
}

Após a configuração, reinicie seu cliente e peça ao seu assistente de IA para "indexar minhas notas" para começar.

Instruções por cliente

Claude Desktop
  1. Abra Configurações → Desenvolvedor → Editar Configuração
  2. Cole a configuração JSON escolhida em claude_desktop_config.json
  3. Reinicie o Claude Desktop

Logs:

tail -n 50 -f ~/Library/Logs/Claude/mcp-server-apple-notes.log
Claude Code
# npm version:
claude mcp add apple-notes npx -- -y @dan8oren/mcp-apple-notes
# or from source:
claude mcp add apple-notes npx -- tsx /path/to/mcp-apple-notes/index.ts
Cursor

Adicione a configuração JSON a ~/.cursor/mcp.json (global) ou .cursor/mcp.json na raiz do seu projeto.

Windsurf

Adicione a configuração JSON a ~/.windsurf/mcp.json.

Ferramentas Disponíveis

FerramentaDescrição
index-notesIndexe todas as notas para busca semântica. Execute isso primeiro
list-foldersListe todas as pastas de Notas do Apple com caminhos completos e contagens de notas
list-notesListe notas com metadados. Filtro opcional path, flag includeContent e contentPreviewChars (pré-visualização por nota sem HTML truncada em N caracteres — uma chamada rápida, evita o limite de tokens de resposta ao listar o conteúdo de muitas notas)
search-notesBusca semântica + texto completo com filtro de caminho e limite opcionais
get-noteObtenha o conteúdo completo por noteId ou título. Retorna candidatos em caso de ambiguidade
create-noteCrie uma nova nota com conteúdo markdown, opcionalmente em uma pasta
edit-noteEdite o título e/ou conteúdo (markdown) de uma nota existente
append-to-noteAcrescente conteúdo markdown a uma nota existente
move-noteMova uma nota para uma pasta diferente
delete-noteExclua uma nota (move para Excluídos Recentemente)

Verifique Antes de Confiar

Cada operação de Notas do Apple é uma chamada JXA que você pode inspecionar em index.ts. Sem solicitações de rede, sem sincronização em segundo plano — apenas chamadas locais de ponte de script.

Modo somente leitura

Quer uma rede de segurança? Ative o modo somente leitura para bloquear todas as operações de escrita — apenas as ferramentas de busca, listagem e leitura estarão disponíveis:

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": ["-y", "@dan8oren/mcp-apple-notes"],
      "env": { "MCP_APPLE_NOTES_READ_ONLY": "1" }
    }
  }
}

Quando ativado, apenas estas ferramentas estão disponíveis: index-notes, list-folders, list-notes, search-notes, get-note.

Modo verboso

Ative o registro verboso para ver cada chamada JXA antes de executar (registrado em stderr):

Flag de CLI — adicione --verbose aos argumentos de configuração do seu cliente MCP:

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": ["--verbose", "-y", "@dan8oren/mcp-apple-notes"]
    }
  }
}

Variável de ambiente — para clientes que suportam env:

{
  "mcpServers": {
    "apple-notes": {
      "command": "npx",
      "args": ["-y", "@dan8oren/mcp-apple-notes"],
      "env": { "MCP_APPLE_NOTES_VERBOSE": "1" }
    }
  }
}

Referência de operações JXA

OperaçãoTipoO que faz
getNotesLeituraLista todas as notas (id, título, caminho da pasta)
getFoldersLeituraLista todas as pastas com caminhos e contagens de notas
getNotesByPathLeituraObtém notas em uma pasta específica
getNoteDetailsByIdLeituraObtém o conteúdo completo de uma nota por ID
createNoteEscritaCria uma nova nota com título e conteúdo
appendToNoteEscritaAcrescenta conteúdo HTML a uma nota existente
editNoteEscritaAtualiza o título e/ou conteúdo de uma nota
moveNoteEscritaMove uma nota para uma pasta diferente
deleteNoteDestrutivoMove uma nota para Excluídos Recentemente

Todas as operações passam pela ponte de script JXA da Apple (Application('Notes')). Sem acesso direto ao sistema de arquivos, sem chamadas de rede. A operação delete não é permanente — as notas vão para Excluídos Recentemente e podem ser recuperadas em até 30 dias.

Formato de Resposta

As respostas das ferramentas são objetos JSON em um envelope consistente:

  • Sucesso: { "ok": true, "data": ... }
  • Erro: { "ok": false, "error": { "type": "...", "message": "..." } }

A maioria das respostas orientadas a notas agora inclui o id estável das Notas do Apple para que os clientes possam rastrear notas com segurança em renomeações e movimentações.

Comunidade e Suporte

Relatórios de bugs, ideias, perguntas e demonstrações têm um lugar — use o canal que se adequar:

PRs são bem-vindos. Para mudanças não triviais, abra uma issue ou discussão primeiro para alinharmos a direção antes de você investir tempo.

Agradecimentos

Originalmente baseado em RafalWilinski/mcp-apple-notes.