personal-memory-mcp
Personal Memory MCP Server
Un almacén de hechos sobre tu vida, sin pérdidas, estructurado y consultable, que Claude lee y escribe durante cualquier conversación. Un despliegue sirve a una sola persona. Se ejecuta por completo en el nivel gratuito de Cloudflare (Workers + D1 + KV). Consulta requirements.md para la especificación completa.
Hechos, no documentos. Cada hecho es una declaración fechada con procedencia.
Solo añadir. Las correcciones insertan un hecho nuevo y retiran el anterior con un puntero; nada se elimina.
Autenticación: OAuth 2.1 con registro dinámico de clientes; identidad mediante GitHub, vinculada a una única cuenta de GitHub.
Transporte: Streamable HTTP en
/mcp(createMcpHandlersin estado, sin Durable Objects).
Configuración
1. Crear los recursos de Cloudflare
npm install
npx wrangler d1 create memory
npx wrangler kv namespace create OAUTH_KVColoca el database_id de D1 y el id del espacio de nombres KV devueltos en wrangler.jsonc y luego aplica las migraciones:
npx wrangler d1 migrations apply memory --remote2. Crear la aplicación OAuth de GitHub
En https://github.com/settings/developers → New OAuth App:
URL de inicio:
https://personal-memory-mcp.<your-subdomain>.workers.devURL de devolución de llamada de autorización:
https://personal-memory-mcp.<your-subdomain>.workers.dev/callback
Encuentra tu id numérico de GitHub en https://api.github.com/users/<your-login> (el campo id).
3. Establecer los secretos
npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY # e.g. openssl rand -hex 32
npx wrangler secret put OWNER_GITHUB_ID # numeric id, not login(Al desplegar mediante Workers Builds CI/CD, establécelos una vez en el panel de Cloudflare en Configuración del Worker → Variables y secretos; sobreviven a los despliegues).
4. Desplegar
npm run deployO conecta el repositorio de GitHub en el panel de Cloudflare (Workers Builds) para que cada push se despliegue. Las migraciones no se ejecutan automáticamente en el despliegue; sigue aplicándolas manualmente o configura el comando de despliegue de Workers Builds como:
npx wrangler d1 migrations apply memory --remote && npx wrangler deploy5. Conectar desde Claude.ai
Configuración → Conectores → Añadir conector personalizado → URL https://personal-memory-mcp.<your-subdomain>.workers.dev/mcp, deja en blanco el ID de cliente/Secreto (registro dinámico de clientes). Se te redirigirá al inicio de sesión de GitHub; cualquier cuenta que no sea OWNER_GITHUB_ID recibirá un 403. El conector funciona entonces desde la web de Claude, el escritorio e iOS.
Añade a las preferencias de tu perfil de Claude.ai:
Ejecuto un servidor MCP de memoria personal llamado "memory". Es la fuente de verdad sobre mi vida y anula tu memoria integrada. Cuando hablemos de algo personal, úsalo según las descripciones de las herramientas. Si no está disponible, dímelo y ten en cuenta que tu respuesta puede estar desactualizada.
6. Datos iniciales (opcional)
Pide a Claude que redacte
seed.jsona partir de su memoria integrada:[{topic, content, fact_date?, tags?}], un hecho por entrada.Revísalo y luego:
npm run seed # validates seed.json, writes seed-import.sql
npx wrangler d1 execute memory --remote --file=seed-import.sqlEn una primera conversación, pide a Claude que escriba los resúmenes iniciales de los temas (
update_summary).
Related MCP server: chronomem
Desarrollo
cp .dev.vars.example .dev.vars # separate GitHub OAuth app with callback http://localhost:8788/callback
npx wrangler d1 migrations apply memory --local
npm run dev # http://localhost:8788/mcp
npm test # vitest (workers runtime, real D1 + FTS5)
npm run typecheckPrueba con el inspector MCP: npx @modelcontextprotocol/inspector@latest → conéctate a http://localhost:8788/mcp. La redirección OAuth de localhost del inspector solo funciona con ALLOW_LOCALHOST_REDIRECTS=1 (configurado en .dev.vars, nunca en producción; producción solo acepta las devoluciones de llamada del conector de Claude).
Notas
Copias de seguridad: usa la herramienta
export(markdown o json). La exportación nativa de D1 no funciona mientras existan tablas virtuales FTS5. D1 Time Travel permite restaurar a un punto en el tiempo (30 días en el plan de pago, menos en el gratuito; verifica la retención actual).Diferido deliberadamente (decisión del propietario, no descuidos): el cron de copia de seguridad semanal del §11 a un repositorio privado de GitHub y el visor de solo lectura
/viewdel §12. Hasta que exista el cron, ejecutaexportperiódicamente y guarda la salida en un lugar seguro.El flujo de aprobación de OAuth solo acepta las devoluciones de llamada del conector
claude.ai/claude.comcomo URI de redirección (localhost requiere la bandera de solo desarrollo anterior).Las filas nunca se eliminan en el funcionamiento normal; el propietario corrige los hechos diciéndoselo a Claude.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Person-owned AI memory that learns, not just stores — portable context for any MCP client.
- HeirmosOAuthcom.heirmos
Persistent memory shared across Claude, ChatGPT, Grok and other MCP clients.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables persistent memory storage and retrieval for MCP clients, allowing AI assistants to remember facts and context across conversations.17 npmMIT- AlicenseAqualityCmaintenanceEnables AI agents and MCP clients to store, retrieve, and manage bi-temporal, graph-aware facts in an embedded SQLite memory engine with token-budgeted recall and contradiction tracking.61MIT
- AlicenseAqualityAmaintenanceEnables personal AI memory management through MCP tools for adding, searching, exporting, and deleting memories, with knowledge-graph retrieval and multi-hop association for clients like Claude Desktop and Cursor.6Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients such as Cursor, Claude, and Windsurf to store and recall user preferences, behaviors, and other text-based information across conversations, using vector similarity search so conceptually related items are found even when exact keywords differ.15 npmMIT