Pinto Notes
Servidor MCP alojado para Pinto Notes (anteriormente Amber Notes), una aplicación de notas cifradas para Mac y iPhone. ChatGPT, Claude, Claude Code y Codex pueden buscar, leer y editar tus notas, con OAuth y tu aprobación. Reemplaza el listado ambernotes-app-blog-mcp-server.
Servidor MCP alojado
npx add-mcp 'https://mcp.pintonotes.com'Se instala en Claude Code, Codex, Cursor y más
Documentación
Pinto Notes, la aplicación de notas para iPhone y Mac, tiene un servidor MCP remoto integrado. Esta página es para desarrolladores y para cualquier persona curiosa sobre cómo funciona: la dirección, cómo una aplicación de IA inicia sesión y obtiene aprobación, y cada herramienta que puede llamar.

Pinto Notes preguntando "¿Permitir que ChatGPT use tus notas?" con una opción de Leer y Editar o Solo Lectura, y botones de Permitir y No Permitir.
La dirección
https://mcp.pintonotes.com
La dirección anterior, https://mcp.ambernotes.app,, es el mismo servidor y sigue funcionando, así que cualquier cosa que hayas conectado antes no necesita cambios.
- Transporte: MCP Streamable HTTP, respondiendo con JSON. No hay flujo de eventos del servidor; los clientes envían cada solicitud.
- Versiones de protocolo: 2025-11-25, 2025-06-18, 2025-03-26 y 2024-11-05.
- Nombre del servidor:
pinto-notes. Envía instrucciones eninitializeque le indican al modelo cómo están organizadas las notas.
Cómo funciona el acceso
Hay dos formas de entrar. Ambas requieren una cuenta de Pinto Notes, y ambas son aprobadas por la persona.
Iniciar sesión con OAuth (ChatGPT, Claude y otras aplicaciones)
- Una solicitud no autenticada recibe un 401 con un encabezado
WWW-Authenticateque apunta a los metadatos del recurso protegido, en la dirección anterior más/.well-known/oauth-protected-resource. - El cliente se registra (registro dinámico de clientes) e inicia OAuth 2.1 con PKCE (S256). Los ámbitos son
notes:readynotes:write. - Los metadatos del servidor de autorización están en la dirección anterior más
/.well-known/oauth-authorization-server. - El paso de autorización abre
pintonotes.com/connect. La persona inicia sesión allí (correo electrónico y contraseña, o Iniciar sesión con Apple), y la página muestra un número de dos dígitos. Pinto Notes en su iPhone o Mac pregunta "¿Permitir que [aplicación] use tus notas?" y a dónde va el acceso; escriben el número, eligen Leer y Editar o Solo Lectura, luego Permitir. Sin un dispositivo cercano, pueden aprobar en la página con su clave de recuperación. - El cliente obtiene un token de acceso (válido por una hora) y un token de actualización. Los tokens solo abren este servidor.
Token de acceso (Claude Code, Codex y scripts)
En Pinto Notes, Configuración, Conectar una IA, Claude Code o Codex crea un token que comienza con pane_, de solo lectura o lectura y edición. Envíalo como Authorization: Bearer pane_…. La guía de Claude Code y Codex tiene la configuración exacta.

Configuración, Conectar una IA: configuración guiada para cada aplicación, y todo lo que está conectado.
Cada conexión aparece en Pinto Notes bajo Conectado, y la persona puede desconectarla en cualquier momento. Cada llamada de herramienta se ejecuta como esa persona, con seguridad a nivel de fila, por lo que un token solo puede llegar a las notas de su propietario. Las llamadas tienen límite de velocidad por cuenta.
Las notas están cifradas de extremo a extremo, por lo que el servidor no puede leerlas en reposo. Aprobar una conexión le da una copia de la clave de las notas, bloqueada con un secreto derivado de su propio token. Durante cada solicitud, el servidor desbloquea la clave en memoria, descifra lo que la llamada necesita y la elimina cuando la solicitud termina; desconectar elimina esa copia. Las notas bloqueadas permanecen fuera de alcance, ya que su clave proviene de la contraseña de las notas. Una aplicación de notas cifrada que ChatGPT y Claude pueden usar explica la compensación.
Qué sucede con los cambios
- Cada edición conserva la versión anterior.
historylas lista yrestorerestaura una. - En la aplicación, la persona ve lo que una IA cambió, con Deshacer.
- Las notas eliminadas van a Eliminados recientemente durante 30 días y se pueden recuperar con
restore. - Una conexión de solo lectura solo ve las herramientas marcadas como lecturas a continuación.
Herramientas
Las herramientas tratan tus notas como una carpeta de archivos, de la misma manera que ya funcionan los agentes de codificación. Cada nota es un archivo markdown con una ruta, como Work/Acme.md, y su primera línea es el título. Las sub-notas de una nota y los archivos adjuntos están en una carpeta con su nombre, como Work/Acme/Agenda.md. Las listas de verificación son líneas - [ ], y las tablas son tablas markdown.
edit es una búsqueda y reemplazo exacta, como la Edición de un agente de codificación. La IA tiene que leer una nota con fetch antes de cambiarla, y una edición se rechaza si la nota cambió desde entonces. Eso cubre marcar un elemento de lista de verificación, agregar una fila a una tabla y corregir una oración, sin reescribir el resto de la nota.
Una nota también puede contener una aplicación: un pequeño proyecto React en una ruta como Work/Habits.app/, con sus datos en data.json. Las mismas herramientas la leen y cambian, y see_app muestra cómo se ve.
search(lecturas). Encuentra notas. Con consulta: búsqueda de texto completo clasificada (palabras, "frases entre comillas", O, -palabra), mejores primero, con un fragmento. Con patrón: como grep, una expresión regular (o texto plano) comparada línea por línea; salida "files" (las rutas coincidentes), "content" (líneas coincidentes como ruta:línea: texto, con líneas de contexto) o "count". Los nombres y rutas también coinciden. Limita con ruta (una carpeta "Trabajo/", un glob "Trabajo/**/2026*", una nota y sus sub-notas, una aplicación "Trabajo/Hábitos.app" para buscar su código), tipo, fijada, modificada_despué de/antes (AAAA-MM-DD), solo_título, sub_notas: falso, eliminada: verdadero. Páginas con límite y desplazamiento.list(lecturas). Lista como un explorador de archivos, más recientes primero. Sin ruta: el nivel superior. Una carpeta ("Trabajo/"), la carpeta de una nota ("Trabajo/Acme/": sus sub-notas y archivos), una aplicación ("Trabajo/Hábitos.app"), o "Eliminados recientemente/". patrón es un glob sobre cada ruta debajo de ella ("**/*.md", "Trabajo/**", "**/*.app", "**/*factura*"). Páginas con límite y desplazamiento.fetch(lecturas). Lee una nota, un archivo de aplicación, el data.json de una aplicación o un archivo, con números de línea (cat -n). El texto largo se lee en partes: desplazamiento es la primera línea, límite cuántas (predeterminado 2000). Una carpeta se lee como su listado. Archivos: archivos de texto (TXT, CSV, JSON, código) como texto que puedes editar; PDF, Word, Excel y PowerPoint como su texto; imágenes como imágenes. raw: verdadero devuelve el archivo en sí (base64, hasta 10 MB).create(cambios). Crea una nota, una carpeta o una aplicación. Una nota: ruta "Trabajo/Acme.md" (su nombre es su título; las carpetas se crean según sea necesario) y contenido, su markdown. En la carpeta de una nota ("Trabajo/Acme/Agenda.md") se convierte en la sub-nota de esa nota. Una carpeta: ruta "Trabajo/Clientes/". Una aplicación: la ruta es la nota que se convierte en la aplicación (existente o nueva como "Trabajo/Hábitos.md"); comienza como un proyecto React + TypeScript + Tailwind + shadcn/ui cuyo README.md dice cómo se ejecutan las aplicaciones aquí, o, con plantilla, como la aplicación de esa plantilla de pintonotes.com, sus datos y su nota. Las notas son markdown: listas de verificación "- [ ] elemento", enlaces a notas [[Título]], y un rastreador es una tabla con una línea como <!-- pane-table: Date=date; Mood=scale 1-5; Walk=choice Yes|No --> encima (mantén los valores en rango).edit(cambios; puede eliminar o reemplazar). Reemplaza cadena_antigua con cadena_nueva en una nota, un archivo de aplicación, el data.json de una aplicación o un archivo de texto (TXT, CSV, JSON, código), como la Edición de un agente de codificación. cadena_antigua es el texto exacto, sin números de línea, y el elemento debe haberse leído en esta sesión. Debe coincidir una vez a menos que reemplazar_todo; una cadena_nueva vacía lo elimina. Responde con verificaciones: qué rompió el cambio en una nota (una tabla, una línea de lista de verificación, un valor de rastreador), o los resultados de compilación, renderizado y pruebas de la aplicación. Cada edición es un cambio que la persona puede deshacer.write(cambios; puede eliminar o reemplazar). Escribe una nota completa, archivo de aplicación, data.json o archivo: lo crea, o lo reemplaza todo (un elemento existente debe haberse leído en esta sesión). La versión anterior permanece en el historial. Un archivo ("Para leer/Resumen.txt", "Para leer/Paper.pdf") toma contenido para texto, o contenido_base64 con tipo_mime para cualquier otra cosa (un PDF, una imagen, una hoja de cálculo), hasta 10 MB. Responde con verificaciones: qué rompió el cambio en una nota, o los resultados de compilación, renderizado y pruebas de la aplicación. Las notas son markdown: listas de verificación "- [ ] elemento", enlaces a notas [[Título]], y un rastreador es una tabla con una línea como <!-- pane-table: Date=date; Mood=scale 1-5; Walk=choice Yes|No --> encima (mantén los valores en rango).move(cambios; puede eliminar o reemplazar). Mueve o renombra una nota, una carpeta o un archivo de aplicación: una nota a una carpeta ("Clientes/", creada si es necesario), a la carpeta de una nota ("Trabajo/Acme/": se convierte en una sub-nota), o a un nuevo nombre ("Trabajo/Nuevo título.md"); una carpeta a una nueva ruta ("Archivo/2025/"); un archivo de aplicación dentro de su aplicación; un archivo en una carpeta a otra carpeta ("Archivo/") o un nuevo nombre ("Para leer/Viejo paper.pdf", mismo final).delete(cambios; puede eliminar o reemplazar). Elimina una nota (a Eliminados recientemente con sus sub-notas, durante 30 días), una carpeta (sus notas y archivos van a Eliminados recientemente), un archivo en una carpeta (a Eliminados recientemente durante 30 días), un archivo de aplicación, o una aplicación ("Trabajo/Hábitos.app": la nota permanece; la aplicación se conserva en el historial).history(lecturas). Versiones anteriores, más recientes primero, con quién hizo cada una (un dispositivo o una IA): del texto de una nota, una aplicación (código y datos), o un archivo.restore(cambios; puede eliminar o reemplazar). Recupera una nota o archivo de Eliminados recientemente (sin versión), o una versión anterior del historial: del texto de una nota, una aplicación (código y datos como estaban), o un archivo.pin(cambios; puede eliminar o reemplazar). Fija una nota al principio de la lista, o la desfija.see_app(lecturas). Capturas de pantalla de la aplicación de una nota en tamaños de iPhone y Mac, claro y oscuro, sobre una muestra con la forma de sus datos, con lo que muestra cada vista y cualquier cosa rota. Con pasos, usa la aplicación como una persona en su lugar y responde después de cada paso con lo que está en pantalla, errores de consola, qué cambió en sus datos, y capturas de pantalla: { tap: "Agregar" } (texto, etiqueta o selector CSS), { type: "85", into: "Peso" }, { scroll: "abajo" }, { wait: 500 | "Guardado" }, { press: "Enter" }, { resize: "teléfono" | "escritorio" }, { dark: verdadero }. No se escribe nada de vuelta.
search y fetch siguen la forma que ChatGPT espera para buscar y leer. Cada herramienta lleva anotaciones MCP (readOnlyHint, y destructiveHint donde corresponde), para que los clientes puedan preguntar antes de un cambio.
Instalar en tu herramienta de IA
Cada una de estas agrega la dirección anterior. La primera vez que la herramienta se conecta, tu navegador abre pintonotes.com/connect: inicia sesión allí, luego aprueba en tu iPhone o Mac escribiendo el número que muestra la página, y elige Leer y Editar o Solo Lectura. Necesitas la aplicación gratuita y una cuenta.
Claude Code
claude plugin marketplace add pinto-notes/pinto-notes
claude plugin install amber-notes
El plugin agrega el servidor y una habilidad que le dice a Claude cómo están organizadas tus notas. Luego ejecuta /mcp en Claude Code, elige amber-notes e inicia sesión.
O agrega solo el servidor, para cada proyecto:
claude mcp add --scope user --transport http amber-notes https://mcp.pintonotes.com
Codex
codex mcp add amber_notes --url https://mcp.pintonotes.com
Codex inicia el inicio de sesión de inmediato. Para iniciar sesión de nuevo más tarde, ejecuta codex mcp login amber_notes.
Gemini CLI
gemini extensions install https://github.com/pinto-notes/pinto-notes
Luego ejecuta /mcp auth amber-notes en Gemini CLI para iniciar sesión.
VS Code
code --add-mcp '{"name":"amber-notes","type":"http","url":"https://mcp.pintonotes.com"}'
La primera vez que VS Code inicia el servidor, te pide que inicies sesión.
Incredible
- Abre Aplicaciones y busca notas.
- Elige Conectar, luego Permitir en Pinto Notes.
- De vuelta en Incredible, elige Vamos.
Pinto Notes lo muestra como una aplicación en esta computadora que se llama a sí misma "incredible". Permítela solo si acabas de elegir Conectar. En una versión anterior de Incredible, elige Agregar aquí en la parte inferior de Aplicaciones (o Agregar otro servidor MCP), pega https://mcp.pintonotes.com, luego Continuar e Iniciar sesión, y Agregar servidor después de permitirlo.
Con un token en lugar de iniciar sesión
Cualquiera de estas herramientas puede usar un token de acceso en su lugar. En Pinto Notes, abre Configuración, Conectar una IA, Codex, y elige Crear token de acceso. El token funciona en cualquier cliente MCP; envíalo como un encabezado Authorization: Bearer pane_…, como muestra la guía de Claude Code y Codex. Se muestra una sola vez, así que mantenlo privado.
Conéctalo
- Claude: Pinto Notes en el directorio de conectores de Claude, luego Conectar a Claude.
- Conecta ChatGPT o Claude a tus notas: agrega la dirección como una aplicación personalizada en ChatGPT, o como un conector personalizado en una aplicación anterior de Claude.
- Usa tus notas desde Claude Code y Codex: un comando, o unas pocas líneas de configuración.
- Gemini CLI, VS Code e Incredible: los pasos para cada uno están arriba.
- Cualquier otra cosa que hable MCP: agrega la dirección e inicia sesión cuando lo pida. ¿Eligiendo una aplicación de notas para un agente? La mejor aplicación de notas para agentes de IA establece los criterios. ¿Vienes de Apple Notes? Servidores MCP de Apple Notes comparados cubre los servidores locales para Notes en una Mac, y en qué se diferencian de este. Servidores MCP de Obsidian comparados hace lo mismo para bóvedas de Obsidian.
El servidor es de código abierto. Léelo en supabase/functions/mcp en GitHub.
Verificado contra la aplicación en .