Pinto Notes
Servidor MCP hospedado para Pinto Notes (antigo Amber Notes), um aplicativo de notas criptografadas para Mac e iPhone. ChatGPT, Claude, Claude Code e Codex podem pesquisar, ler e editar suas notas, com OAuth e sua aprovação. Substitui a listagem ambernotes-app-blog-mcp-server.
Servidor MCP hospedado
npx add-mcp 'https://mcp.pintonotes.com'Instala no Claude Code, Codex, Cursor e outros
Documentação
Pinto Notes, o aplicativo de notas para iPhone e Mac, tem um servidor MCP remoto integrado. Esta página é para desenvolvedores e qualquer pessoa curiosa sobre como funciona: o endereço, como um aplicativo de IA faz login e é aprovado, e todas as ferramentas que ele pode chamar.

Pinto Notes perguntando "Permitir que o ChatGPT use suas notas?" com a opção de Ler e Editar ou Somente Leitura, e botões Permitir e Não Permitir.
O endereço
https://mcp.pintonotes.com
O endereço antigo, https://mcp.ambernotes.app,, é o mesmo servidor e continua funcionando, então qualquer coisa que você conectou antes não precisa de mudanças.
- Transporte: MCP Streamable HTTP, respondendo com JSON. Não há stream enviado pelo servidor; os clientes enviam cada solicitação via POST.
- Versões de protocolo: 2025-11-25, 2025-06-18, 2025-03-26 e 2024-11-05.
- Nome do servidor:
pinto-notes. Ele envia instruções eminitializeque informam ao modelo como as notas estão organizadas.
Como o acesso funciona
Existem duas formas de acesso. Ambas exigem uma conta Pinto Notes, e ambas são aprovadas pela pessoa.
Entrar com OAuth (ChatGPT, Claude e outros aplicativos)
- Uma solicitação não autenticada recebe um 401 com um cabeçalho
WWW-Authenticateapontando para os metadados do recurso protegido, no endereço acima mais/.well-known/oauth-protected-resource. - O cliente se registra (registro dinâmico de cliente) e inicia OAuth 2.1 com PKCE (S256). Os escopos são
notes:readenotes:write. - Os metadados do servidor de autorização estão no endereço acima mais
/.well-known/oauth-authorization-server. - A etapa de autorização abre
pintonotes.com/connect. A pessoa faz login lá (e-mail e senha, ou Entrar com Apple), e a página mostra um número de dois dígitos. O Pinto Notes no iPhone ou Mac dela pergunta "Permitir que [app] use suas notas?" e para onde o acesso vai; ela digita o número, escolhe Ler e Editar ou Somente Leitura, e então Permite. Sem um dispositivo por perto, ela pode aprovar na página com a chave de recuperação. - O cliente recebe um token de acesso (válido por uma hora) e um token de atualização. Os tokens só abrem este servidor.
Token de acesso (Claude Code, Codex e scripts)
No Pinto Notes, em Ajustes, Conectar uma IA, o Claude Code ou o Codex cria um token que começa com pane_, somente leitura ou leitura e edição. Envie-o como Authorization: Bearer pane_…. O guia do Claude Code e Codex tem a configuração exata.

Ajustes, Conectar uma IA: configuração guiada para cada aplicativo e tudo o que está conectado.
Toda conexão aparece no Pinto Notes em Conectado, e a pessoa pode desconectá-la a qualquer momento. Cada chamada de ferramenta é executada como essa pessoa, com segurança em nível de linha, então um token só pode alcançar as notas do seu dono. As chamadas são limitadas por conta.
As notas são criptografadas de ponta a ponta, então o servidor não pode lê-las em repouso. Aprovar uma conexão dá a ela uma cópia da chave das notas, bloqueada com um segredo derivado do próprio token. Durante cada solicitação, o servidor desbloqueia a chave na memória, descriptografa o que a chamada precisa e a descarta quando a solicitação termina; desconectar exclui essa cópia. Notas bloqueadas ficam fora de alcance, pois sua chave vem da senha das notas. Um aplicativo de notas criptografado que ChatGPT e Claude podem usar explica a compensação.
O que acontece com as mudanças
- Cada edição mantém a versão anterior.
historyas lista erestorerestaura uma. - No aplicativo, a pessoa vê o que uma IA mudou, com Desfazer.
- Notas excluídas vão para Excluídas Recentemente por 30 dias e podem ser recuperadas com
restore. - Uma conexão somente leitura só vê as ferramentas marcadas como leitura abaixo.
Ferramentas
As ferramentas tratam suas notas como uma pasta de arquivos, da mesma forma que agentes de codificação já funcionam. Cada nota é um arquivo markdown com um caminho, como Work/Acme.md, e sua primeira linha é o título. As subnotas de uma nota e os arquivos anexos ficam em uma pasta com seu nome, como Work/Acme/Agenda.md. Listas de verificação são linhas - [ ], e tabelas são tabelas markdown.
edit é uma busca e substituição exata, como o Editar de um agente de codificação. A IA precisa ler uma nota com fetch antes de alterá-la, e uma edição é recusada se a nota mudou desde então. Isso cobre marcar um item de lista de verificação, adicionar uma linha a uma tabela e corrigir uma frase, sem reescrever o resto da nota.
Uma nota também pode conter um aplicativo: um pequeno projeto React em um caminho como Work/Habits.app/, com seus dados em data.json. As mesmas ferramentas o leem e alteram, e see_app mostra como ele se parece.
search(leituras). Encontra notas. Com consulta: pesquisa de texto completo classificada (palavras, "frases entre aspas", OU, -palavra), melhores primeiro, com um trecho. Com padrão: como grep, uma expressão regular (ou texto simples) correspondida linha por linha; saída "arquivos" (os caminhos correspondentes), "conteúdo" (linhas correspondentes como caminho:linha: texto, com linhas de contexto) ou "contagem". Nomes e caminhos também correspondem. Restrinja com caminho (uma pasta "Trabalho/", um glob "Trabalho/**/2026*", uma nota e suas subnotas, um aplicativo "Trabalho/Hábitos.app" para pesquisar seu código), tipo, fixado, modificado_depois/antes (AAAA-MM-DD), somente_título, subnotas: falso, excluído: verdadeiro. Páginas com limite e deslocamento.list(leituras). Lista como um navegador de arquivos, mais recentes primeiro. Sem caminho: o nível superior. Uma pasta ("Trabalho/"), a pasta de uma nota ("Trabalho/Acme/": suas subnotas e arquivos), um aplicativo ("Trabalho/Hábitos.app") ou "Excluídas Recentemente/". padrão é um glob sobre cada caminho abaixo dele ("**/*.md", "Trabalho/**", "**/*.app", "**/*fatura*"). Páginas com limite e deslocamento.fetch(leituras). Lê uma nota, um arquivo de aplicativo, um data.json de aplicativo ou um arquivo, com números de linha (cat -n). Texto longo é lido em partes: deslocamento é a primeira linha, limite quantas (padrão 2000). Uma pasta é lida como sua listagem. Arquivos: arquivos de texto (TXT, CSV, JSON, código) como texto que você pode editar; PDFs, Word, Excel e PowerPoint como seu texto; imagens como imagens. bruto: verdadeiro retorna o próprio arquivo (base64, até 10 MB).create(mudanças). Cria uma nota, uma pasta ou um aplicativo. Uma nota: caminho "Trabalho/Acme.md" (seu nome é seu título; pastas são criadas conforme necessário) e conteúdo, seu markdown. Na pasta de uma nota ("Trabalho/Acme/Agenda.md") torna-se a subnota dessa nota. Uma pasta: caminho "Trabalho/Clientes/". Um aplicativo: o caminho é a nota que se torna o aplicativo (existente ou novo, como "Trabalho/Hábitos.md"); começa como um projeto React + TypeScript + Tailwind + shadcn/ui cujo README.md diz como os aplicativos funcionam aqui, ou, com modelo, como o aplicativo desse modelo pintonotes.com, seus dados e sua nota. Notas são markdown: listas de verificação "- [ ] item", links para notas [[Título]], e um rastreador é uma tabela com uma linha como <!-- pane-table: Date=date; Mood=scale 1-5; Walk=choice Yes|No --> acima dela (mantenha os valores no intervalo).edit(mudanças; pode remover ou substituir). Substitui string_antiga por string_nova em uma nota, um arquivo de aplicativo, um data.json de aplicativo ou um arquivo de texto (TXT, CSV, JSON, código), como o Editar de um agente de codificação. string_antiga é o texto exato, sem números de linha, e o item deve ter sido lido nesta sessão. Deve corresponder uma vez, a menos que substituir_tudo; uma string_nova vazia o exclui. Responde com verificações: o que a mudança quebrou em uma nota (uma tabela, uma linha de lista de verificação, um valor de rastreador) ou os resultados de compilação, renderização e teste do aplicativo. Cada edição é uma mudança que a pessoa pode desfazer.write(mudanças; pode remover ou substituir). Escreve uma nota inteira, arquivo de aplicativo, data.json ou arquivo: cria ou substitui tudo (um item existente deve ter sido lido nesta sessão). A versão antiga permanece no histórico. Um arquivo ("Para ler/Resumo.txt", "Para ler/Paper.pdf") aceita conteúdo para texto, ou conteúdo_base64 com tipo_mime para qualquer outra coisa (um PDF, uma imagem, uma planilha), até 10 MB. Responde com verificações: o que a mudança quebrou em uma nota ou os resultados de compilação, renderização e teste do aplicativo. Notas são markdown: listas de verificação "- [ ] item", links para notas [[Título]], e um rastreador é uma tabela com uma linha como <!-- pane-table: Date=date; Mood=scale 1-5; Walk=choice Yes|No --> acima dela (mantenha os valores no intervalo).move(mudanças; pode remover ou substituir). Move ou renomeia uma nota, uma pasta ou um arquivo de aplicativo: uma nota para uma pasta ("Clientes/", criada se necessário), para a pasta de uma nota ("Trabalho/Acme/": torna-se uma subnota) ou para um novo nome ("Trabalho/Novo título.md"); uma pasta para um novo caminho ("Arquivo/2025/"); um arquivo de aplicativo dentro de seu aplicativo; um arquivo em uma pasta para outra pasta ("Arquivo/") ou um novo nome ("Para ler/Paper antigo.pdf", mesmo final).delete(mudanças; pode remover ou substituir). Exclui uma nota (para Excluídas Recentemente com suas subnotas, por 30 dias), uma pasta (suas notas e arquivos vão para Excluídas Recentemente), um arquivo em uma pasta (para Excluídas Recentemente por 30 dias), um arquivo de aplicativo ou um aplicativo ("Trabalho/Hábitos.app": a nota permanece; o aplicativo é mantido no histórico).history(leituras). Versões anteriores, mais recentes primeiro, com quem fez cada uma (um dispositivo ou uma IA): do texto de uma nota, de um aplicativo (código e dados) ou de um arquivo.restore(mudanças; pode remover ou substituir). Traz de volta uma nota ou arquivo de Excluídas Recentemente (sem versão) ou uma versão anterior do histórico: do texto de uma nota, de um aplicativo (código e dados como estavam) ou de um arquivo.pin(mudanças; pode remover ou substituir). Fixa uma nota no topo da lista ou a desafixa.see_app(leituras). Capturas de tela do aplicativo de uma nota nos tamanhos de iPhone e Mac, claro e escuro, sobre uma amostra com a forma de seus dados, com o que cada visualização mostra e qualquer coisa quebrada. Com etapas, usa o aplicativo como uma pessoa e responde após cada etapa com o que está na tela, erros de console, o que mudou em seus dados e capturas de tela: { tocar: "Adicionar" } (texto, rótulo ou seletor CSS), { digitar: "85", em: "Peso" }, { rolar: "para baixo" }, { esperar: 500 | "Salvo" }, { pressionar: "Enter" }, { redimensionar: "telefone" | "desktop" }, { escuro: verdadeiro }. Nada é gravado de volta.
search e fetch seguem a forma que o ChatGPT espera para pesquisar e ler. Cada ferramenta carrega anotações MCP (readOnlyHint e destructiveHint onde se aplica), para que os clientes possam perguntar antes de uma mudança.
Instalar na sua ferramenta de IA
Cada uma destas adiciona o endereço acima. Na primeira vez que a ferramenta conecta, seu navegador abre pintonotes.com/connect: faça login lá, depois aprove no seu iPhone ou Mac digitando o número que a página mostra e escolha Ler e Editar ou Somente Leitura. Você precisa do aplicativo gratuito e de uma conta.
Claude Code
claude plugin marketplace add pinto-notes/pinto-notes
claude plugin install amber-notes
O plugin adiciona o servidor e uma habilidade que diz ao Claude como suas notas estão organizadas. Depois execute /mcp no Claude Code, escolha amber-notes e faça login.
Ou adicione apenas o servidor, para todos os projetos:
claude mcp add --scope user --transport http amber-notes https://mcp.pintonotes.com
Codex
codex mcp add amber_notes --url https://mcp.pintonotes.com
O Codex inicia o login imediatamente. Para entrar novamente mais tarde, execute codex mcp login amber_notes.
Gemini CLI
gemini extensions install https://github.com/pinto-notes/pinto-notes
Depois execute /mcp auth amber-notes no Gemini CLI para entrar.
VS Code
code --add-mcp '{"name":"amber-notes","type":"http","url":"https://mcp.pintonotes.com"}'
Na primeira vez que o VS Code inicia o servidor, ele pede que você faça login.
Incredible
- Abra Apps e pesquise por notas.
- Escolha Conectar e depois Permitir no Pinto Notes.
- De volta ao Incredible, escolha Vamos lá.
O Pinto Notes mostra como um aplicativo neste computador que se chama "incredible". Permita apenas se você acabou de escolher Conectar. Em uma versão mais antiga do Incredible, escolha Adicionar aqui na parte inferior de Apps (ou Adicionar outro servidor MCP), cole https://mcp.pintonotes.com, e depois Continuar e Entrar, e Adicionar servidor depois de permitir.
Com um token em vez de entrar
Qualquer uma dessas ferramentas pode usar um token de acesso. No Pinto Notes, abra Ajustes, Conectar uma IA, Codex e escolha Criar Token de Acesso. O token funciona em qualquer cliente MCP; envie-o como um cabeçalho Authorization: Bearer pane_…, da forma que o guia do Claude Code e Codex mostra. Ele é mostrado apenas uma vez, então mantenha-o privado.
Conecte-o
- Claude: Pinto Notes no diretório de conectores do Claude, depois Conectar ao Claude.
- Conecte ChatGPT ou Claude às suas notas: adicione o endereço como um aplicativo personalizado no ChatGPT ou como um conector personalizado em um aplicativo Claude mais antigo.
- Use suas notas do Claude Code e Codex: um comando ou algumas linhas de configuração.
- Gemini CLI, VS Code e Incredible: os passos para cada um estão acima.
- Qualquer outra coisa que fale MCP: adicione o endereço e faça login quando solicitado. Escolhendo um aplicativo de notas para um agente? The best notes app for AI agents define os critérios. Vindo do Apple Notes? Apple Notes MCP servers compared cobre os servidores locais para Notes em um Mac e como eles diferem deste. Obsidian MCP servers compared faz o mesmo para cofres do Obsidian.
O servidor é de código aberto. Leia em supabase/functions/mcp no GitHub.
Verificado em relação ao aplicativo em .