MarsNMe

Backend de memoria persistente agnóstico al agente. 13 herramientas MCP, Supabase + embeddings de Jina, aislamiento multiperfil, recuerdo semántico entre sesiones.

Documentación

Español | 繁體中文(台灣) | 繁體中文(香港) | 简体中文


marsnme.com — Claude.md es para contexto. MarsNMe es para continuidad.

Tus herramientas de IA deberían conocerte, no empezar desde cero cada vez. Cuando Perplexity te ayuda a decidir, Claude debería recordar el porqué. Cuando Cursor lanza una función, Warp debería conocer el contexto. Eso no es compartir contexto. Eso es continuidad.

La mayoría de las herramientas de memoria para IA ayudan a la IA a recordarte. MarsNMe te ayuda a ti y a tu IA a recordarse mutuamente: entre sesiones, entre herramientas, a lo largo del tiempo.

Un backend de memoria agnóstico de agentes y agnóstico de LLM para herramientas compatibles con MCP.

curl -fsSL https://marsnme.com/install.sh | bash

MarsNMe on Glama npm version MCP Registry LobeHub npm downloads License GitHub stars

MarsNMe dark mode demo

MarsNMe light mode demo

MarsNMe — Your AI finally remembers you

Without vs With MarsNMe    How MarsNMe works

Historia real de un usuario

Uso Cursor para programar, Warp para desplegar, Perplexity para investigar y Claude Code para gestionar mi bóveda. Antes de MarsNMe, cada herramienta empezaba en blanco: tenía que reexplicar mi proyecto, mis preferencias y mis decisiones en cada sesión. Ahora mi IA en las cuatro herramientas sabe lo que decidimos ayer, lo que probamos la semana pasada y por qué elegimos esta arquitectura en lugar de aquella. No se trata de inyectar contexto. Se trata de tener una relación que se acumula con el tiempo.

— Leo, creador de MarsNMe (3 meses de uso diario en 4 herramientas de IA)

Herramientas MCP disponibles (16)

HerramientaDescripción
insert_memoryAlmacenar memoria a corto plazo
list_memoriesListar memorias recientes
search_memoriesBúsqueda semántica mediante embeddings de Jina
recallRecuperación de fragmentos a largo plazo: vista previa de ~80 caracteres por coincidencia
get_summaryExtracto medio (~300 caracteres) de un fragmento por ID
get_fullTexto completo de un fragmento a largo plazo por ID
memory_ingestIngerir fragmentos de conocimiento a largo plazo
dream_ingestIngestión a largo plazo en modo sueño
session_bootIniciar una sesión con precarga de contexto
session_closeCerrar sesión, resumir y promover automáticamente memorias que expiran
health_checkDiagnósticos de cobertura, caducidad y conflictos
reload_source_registryActualizar la lista blanca de fuentes en tiempo de ejecución
demote_memoryDegradar una memoria a menor prioridad
soft_forgetEliminación suave de una memoria
explain_memoryExplicar la procedencia de una memoria
batch_promotePromover memorias a corto plazo que expiran a largo plazo

Novedades en 0.3.0

  • Recuperación en 3 capas: recall devuelve vistas previas de ~80 caracteres, luego get_summary (~300 caracteres) y luego get_full (completo). Evita volcar fragmentos completos en cada recuperación; profundiza solo cuando una vista previa parezca relevante.
  • Transferencia de notas de cuerpo a cuerpo: session_close(to=<body>, note=...) deja una nota que session_boot(body=<target>) entrega y marca como leída: un agente puede pasar contexto a otro.
  • batch_promote automático en session_close: cerrar una sesión promueve automáticamente memorias a corto plazo que expiran pronto (ventana de 48 h, hasta 5) al almacenamiento a largo plazo, sin necesidad de Hermes ni promoción manual.
  • Fuentes grok + draft: añadidas a la lista blanca de fuentes para que el cuerpo de Grok y los hooks del ciclo de vida de Draft puedan escribir memorias de forma nativa.
  • Superficie de herramientas solo CoCo: las herramientas de PRD (save_prd, get_prd, list_prds, score_prd, spawn_to_linear) se eliminaron de la puerta de enlace de Supabase: la ejecución de ideas/PRD/tareas ahora vive en Draft. MarsNMe = solo memoria del alma de CoCo.

MarsNMe

¿Por qué MarsNMe?

La mayoría de las herramientas de memoria para IA ayudan a la IA a recordarte. MarsNMe te ayuda a ti y a tu IA a recordarse mutuamente.

MarsNMeHerramienta de memoria típica
FilosofíaContinuidad mutua: humano + IA crecen juntosSolo inyección de contexto del lado de la IA
Soporte de agentesCualquier cliente compatible con MCPA menudo específico del cliente
Niveles de memoriaCorto plazo (TTL) + largo plazo (semántico)Generalmente una sola capa
PerfilesPerfiles aislados ilimitados mediante MCP_PROFILESolo un usuario
Propiedad de los datosTu propio Supabase: cero dependencia del proveedorAlojado por el proveedor
BúsquedaBúsqueda semántica Jina v3 (pgvector de 1024 dimensiones)Palabras clave o similitud básica
Autoalojable✅ Control totalRaramente

Cuándo MarsNMe es la opción adecuada

  • Usas múltiples asistentes de IA (Claude, Cursor, Perplexity, Warp, agentes personalizados) y quieres memoria compartida entre todos ellos
  • Quieres una IA que recuerde tus proyectos, preferencias y decisiones entre sesiones sin tener que reexplicar
  • Te importa la soberanía de los datos: tus memorias permanecen en tu propio proyecto de Supabase
  • Estás construyendo un agente de IA y necesitas un backend de memoria listo para producción con recuperación semántica

Cuándo podría no ser la opción adecuada

  • Solo necesitas contexto de una sola sesión (usa el prompt del sistema)
  • Quieres memoria totalmente gestionada y sin configuración (prueba una solución alojada)

Paquetes de ejecución

CarpetaEntorno de ejecuciónQuién lo usa
marsnme-supabase/Puerta de enlace Supabase + Jina (@marsnme/mcp-gateway)Dogfood de Mars Group: Proxmox CT101 (memoria del alma de CoCo / Toto)
marsnme-cf/Cloudflare Workers + D1 + VectorizePlantilla de autoalojamiento; no es la ruta de despliegue en Proxmox
marsnme-supabase/cloudflare-routing-worker/Proxy de enrutamiento mcp.marsnme.comAsistente de configuración público → puerta de enlace ascendente

División de productos (Mars Group): Ejecución de ideas / PRD / tareas → Draft + draft-mcp. MarsNMe Supabase = solo memoria del alma de CoCo (recuperación, inicio/cierre de sesión, ingesta, ciclo de vida). A partir de @marsnme/mcp-gateway v0.3.0, las herramientas MCP de PRD (save_prd, get_prd, list_prds, score_prd, spawn_to_linear) se eliminaron de la puerta de enlace de Supabase: usa Draft para flujos de trabajo de ideas/PRD/tareas.

Despliegue en Proxmox: MarsNMe-lab privado: flujo de trabajo deploy/deploy-proxmox-ct101.sh o GitHub cd-selfhosted. No es un despliegue de un solo script como draft-mcp.

Paquetes del repositorio

PaqueteDescripción
marsnme-supabase/Puerta de enlace MCP principal: backend de memoria agnóstico de agentes (este paquete se publica en npm como @marsnme/mcp-gateway)
marsnme-supabase/cloudflare-routing-worker/Cloudflare Worker para mcp.marsnme.com: proxy de enrutamiento MCP basado en nombre de usuario con asistente de configuración
marsnme-cf/Servidor de memoria MCP autoalojado en Cloudflare Workers + D1 + Vectorize (sin necesidad de Supabase)

Configuración rápida (sin instalación)

Ve a mcp.marsnme.com/setup: crea tu URL MCP personal en 4 pasos:

  1. Elige un nombre de usuario
  2. Introduce tus credenciales de Supabase (URL + clave anónima)
  3. Elige preferencias
  4. Obtén tu URL MCP: https://mcp.marsnme.com/your-name

Luego añádela a cualquier cliente MCP (Claude, Cursor, Perplexity, Warp).

¿Autoalojado? Despliega marsnme-cf/ en tu propia cuenta de Cloudflare: no necesita Supabase, usa D1 + Workers AI + Vectorize.


Antes de empezar (dependencias externas)

  1. Crea un proyecto de Supabase (el plan gratuito es suficiente):
    • Regístrate: https://supabase.com
    • Crea el proyecto: https://supabase.com/dashboard/new
    • Abre la configuración de API (Project Settings → API):
      • URL del proyecto → SUPABASE_BASE_URL
      • Clave service_role → SUPABASE_SERVICE_ROLE_KEY
    • Mantén SUPABASE_SERVICE_ROLE_KEY privada. Nunca la confirmes en el repositorio.
  2. Crea una clave API de Jina (hay nivel gratuito disponible):

Inicio rápido (15-20 minutos)

Para la ruta más rápida, usa el instalador de una línea: curl -fsSL https://marsnme.com/install.sh | bash

La ruta manual siguiente sigue el mismo flujo de herramientas primero que docs/onboarding-a-mcp-zero-to-recall.md y docs/onboarding-b-platform-skill-install.md.

  1. Clona el repositorio:
git clone https://github.com/Marsmanleo/MarsNMe.git
cd MarsNMe
  1. Verifica la versión de Node.js (se requiere 20+):
node --version
  1. Copia la plantilla de entorno:
cp .env.example .env
  1. Completa los valores requeridos en .env:
    • SUPABASE_BASE_URL
    • SUPABASE_SERVICE_ROLE_KEY
    • JINA_API_KEY
  2. Ejecuta las migraciones requeridas de Supabase antes del primer inicio:
    • Opción A (recomendada, CLI de Supabase):
npx supabase db push --db-url "<your-supabase-db-connection-string>"
  • Nota: --db-url debe ser la cadena de conexión de la base de datos Postgres de Project Settings → Database → Connection string.
  • No es lo mismo que SUPABASE_BASE_URL (https://<project-ref>.supabase.co, URL de la API REST).
  • Usa un rol que pueda ejecutar DDL en tus esquemas de destino.
  • En Postgres alojado en Supabase, normalmente es supabase_admin (no postgres).
  • Opción B (Editor SQL del panel de Supabase):
    1. Abre el Editor SQL.
    2. Asegúrate de que la extensión vector esté habilitada primero (Database → Extensions).
    3. Ejecuta los archivos de migración en orden de nombre desde supabase/migrations/:
      • 20260504052744_semantic_vector_dual_profile.sql
      • 20260513213800_memory_lifecycle_tracking.sql
      • 20260513222500_health_check_detect_conflicts_v2.sql
      • 20260517183000_provenance_audit_trail.sql
      • 20260517194000_memory_scope_agent_body_environment.sql
      • 20260517200500_forget_demote_mechanism.sql
      • 20260517223500_usage_cost_telemetry_light.sql
      • 20260517231000_memories_source_constraint_regex.sql
      • 20260517232000_source_registry_table.sql
  1. Inicia la puerta de enlace:
    • MCP_PROFILE separa la memoria por agente o caso de uso.
    • Usa cualquier nombre de perfil que quieras (por ejemplo: default, my-agent, profile-a).
    • Los ID de perfil integrados heredados coco y toto siguen siendo compatibles por retrocompatibilidad.
    • Si se omite PORT, el puerto predeterminado se basa en el perfil (coco=18790, toto=18791, otros perfiles deterministas en 20000-29999).
MCP_PROFILE=profile-a PORT=18790 npx @marsnme/mcp-gateway
  1. Verifica el estado de salud:
curl -sS http://127.0.0.1:18790/health
  1. Conecta tu cliente MCP (siguiente sección) y luego ejecuta la primera verificación de ida y vuelta.

Pruébalo en 30 segundos (Docker, M1)

Si solo quieres una ruta de demostración local, usa Docker Compose.

Instalación de una línea (recomendada):

curl -fsSL https://marsnme.com/install.sh | bash

O manualmente:

  1. Establece solo la clave requerida:
cp .env.example .env
# fill JINA_API_KEY in .env
  1. Inicia la pila local:
docker compose up

Esto inicia:

  • PostgreSQL + pgvector
  • Migraciones SQL desde supabase/migrations/
  • PostgREST + rest-proxy
  • Puerta de enlace de MarsNMe (http://127.0.0.1:18790/mcp)
  1. Verifica el estado de salud:
curl -sS http://127.0.0.1:18790/health

Perfil de túnel Cloudflare M2 (demostración)

Cuando necesites un endpoint público temporal para herramientas de IA remotas:

docker compose --profile tunnel up

Salida esperada (de los registros de tunnel):

https://xxxx.trycloudflare.com

Obtén el endpoint MCP:

docker compose --profile tunnel logs tunnel | grep -Eo 'https://[^ ]+trycloudflare.com' | head -n1
# append /mcp

Notas:

  • La URL trycloudflare.com es temporal (solo demostración).
  • El endpoint local permanece: http://127.0.0.1:18790/mcp.
  • Para una URL estable de producción, usa un túnel con nombre (fuera del alcance de M2).
  • Env opcional:
    • MCP_TUNNEL_PROFILE (predeterminado coco)
    • MCP_TUNNEL_REQUIRE_BEARER (predeterminado false por conveniencia de demostración)

Guía de conexión de clientes MCP

Endpoint local:

  • http://127.0.0.1:18790/mcp

Si la autenticación bearer está habilitada (MCP_REQUIRE_BEARER=true), incluye:

  • Authorization: Bearer <your-token>

Claude Desktop

  1. Abre claude_desktop_config.json (ruta predeterminada en macOS: ~/Library/Application Support/Claude/claude_desktop_config.json).
  2. Añade/actualiza:
{
  "mcpServers": {
    "marsnme-cf": {
      "url": "http://127.0.0.1:18790/mcp"
    }
  }
}
  1. Reinicia Claude Desktop.

Cursor

  1. Abre la configuración de Cursor y busca MCP.
  2. Añade un nuevo servidor:
    • Nombre: marsnme-cf
    • URL: http://127.0.0.1:18790/mcp
    • Encabezados: encabezado bearer opcional si está habilitado
  3. Reconecta MCP en Cursor.

Warp

  1. Abre Settings > Agents > MCP servers.
  2. Añade un servidor que apunte a:
    • URL: http://127.0.0.1:18790/mcp
  3. Añade el encabezado bearer opcional si es necesario y luego reconecta.

Perplexity

  1. Abre un Space en Perplexity y ve a Space Settings.
  2. En servidores MCP, añade:
    • URL: http://127.0.0.1:18790/mcp
  3. Guarda e inicia una nueva conversación en ese Space.

Cualquier cliente MCP (HTTP/SSE genérico)

Usa una entrada MCP HTTP/SSE transmisible:

{
  "marsnme-cf": {
    "url": "http://127.0.0.1:18790/mcp"
  }
}

Validación de la primera conexión (ida y vuelta)

Después de la conexión del cliente, verifica esta secuencia una vez:

  1. tools/list:
curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
  1. insert_memory:
curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"insert_memory","arguments":{"body":"quickstart memory check","source":"warp","session_id":"quickstart-smoke"}}}'
  1. recall:
curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"recall","arguments":{"query":"quickstart memory check","limit":3}}}'

Qué es este repositorio

mars-memory-mcp es el repositorio principal de la puerta de enlace MCP detrás de la versión pública de MarsNMe.
Un solo código base (marsnme-supabase/server.mjs) sirve múltiples esquemas de perfil mediante MCP_PROFILE. Este repositorio público mantiene actualmente dos ID de perfil integrados heredados (coco, toto) por retrocompatibilidad.

Capacidades actuales

  • Métodos MCP: initialize, notifications/initialized, tools/list, tools/call, ping
  • Perfiles: IDs de perfil configurables (integrados heredados: coco, toto)
  • Herramientas de memoria (16):
    • insert_memory (memoria a corto plazo)
    • list_memories
    • search_memories (búsqueda de incrustaciones Jina)
    • recall (~vista previa de 80 caracteres) luego get_summary (~extracto de 300 caracteres) luego get_full (texto completo)
    • memory_ingest / dream_ingest (ingestión de fragmentos a largo plazo)
    • session_boot / session_close (ciclo de vida del ritmo diario; el cierre promueve automáticamente memorias que expiran + admite transferencia de notas de cuerpo a cuerpo)
    • health_check (diagnósticos de cobertura, caducidad y conflictos)
    • reload_source_registry (actualizar la lista blanca de fuentes en tiempo de ejecución)
    • demote_memory / soft_forget / explain_memory (gestión del ciclo de vida de la memoria)
    • batch_promote (promover memorias a corto plazo que expiran a largo plazo)
  • Fuentes: perplexity, cursor, warp, openclaw, hermes, draft, grok
  • Endpoint MCP protegido por OAuth (configurable mediante variables de entorno)

Modelo de memoria

  • Tabla de memoria a corto plazo: <profile>.memories
  • Tabla de memoria a largo plazo: <profile>.marsvault_chunks
  • Uso recomendado:
    • Mantén el contexto de interacción diaria en insert_memory
    • Promueve conocimientos duraderos mediante herramientas de ingesta

Estructura del repositorio

  • marsnme-supabase/server.mjs — punto de entrada de la puerta de enlace
  • marsnme-supabase/scripts/hermes_digest_runner.py — ejecutor de resúmenes opcional
  • marsnme-supabase/scripts/dream_runner.py — ejecutor de sueños autohospedado público
  • marsnme-supabase/deploy/systemd/ — plantillas de systemd
  • marsnme-supabase/deploy/phase2/ — scripts de compilación/despliegue
  • marsnme-supabase/deploy/phase3/smoke_gate.sh — script de compuerta de humo
  • supabase/migrations/ — migraciones de esquema como código

Configuración del entorno

  1. Copia .env.example a tu .env local (no comprometas secretos reales).
  2. Completa los valores requeridos:
    • MCP_PROFILE (tu identificador de perfil; este repositorio incluye los heredados coco/toto)
    • SUPABASE_BASE_URL
    • SUPABASE_SERVICE_ROLE_KEY
    • JINA_API_KEY
  3. Banderas de seguridad opcionales:
    • MCP_REQUIRE_BEARER=true
    • MCP_CLIENT_ID
    • MCP_CLIENT_SECRET

Ejecutor de resúmenes Hermes opcional

Hermes es opcional y está deshabilitado por defecto:

  • HERMES_ENABLED=false
  • HERMES_DIGEST_MCP_URL
  • HERMES_DIGEST_MCP_BEARER_TOKEN
  • HERMES_DIGEST_ORIGIN
  • HERMES_DIGEST_SOURCE_DIR

Ejecutor de sueños opcional (autohospedado)

Dream Runner es amigable para el público y puede ejecutarse sin el entorno privado de Hermes:

  • DREAM_ENABLED=true
  • DREAM_MODE=lite|standard|pro
  • DREAM_DIGEST_MCP_URL
  • DREAM_MCP_BEARER_TOKEN (si es necesario)
  • DREAM_ENABLE_ISSUE_SIGNALS, DREAM_ENABLE_REPO_SCAN, DREAM_ENABLE_SOUL_CONTEXT (anulaciones opcionales)

Inicio rápido:

DREAM_ENABLED=true DREAM_MODE=lite python3 marsnme-supabase/scripts/dream_runner.py

Si ejecutas este repositorio con los valores predeterminados incluidos y sin reasignación de perfil, usa coco y toto.

Consulta docs/dream-runner-self-host.md para la configuración completa.

Incorporación

  • Guía de cero al primer recuerdo: docs/onboarding-a-mcp-zero-to-recall.md
  • Guía de instalación de plataforma (capa de habilidades opcional): docs/onboarding-b-platform-skill-install.md

Biblioteca de habilidades

  • Índice de habilidades y flujo de actualización: skills/README.md
  • Plantilla de Perplexity: skills/perplexity/memory-daily-boot/SKILL.md
  • Plantilla de Cursor: skills/cursor/memory-daily-boot/rule.mdc
  • Plantilla de Warp: skills/warp/memory-daily-boot/prompt.md

Ejecución local (desde el repositorio clonado)

MCP_PROFILE=profile-a npx @marsnme/mcp-gateway
MCP_PROFILE=profile-b npx @marsnme/mcp-gateway

Endpoints de salud:

  • GET /health
  • POST /mcp

Despliegue con systemd

Usa marsnme-supabase/deploy/systemd/memory-mcp-gateway@.service con instancias:

  • memory-mcp-gateway@profile-a.service
  • memory-mcp-gateway@profile-b.service

Archivos de entorno recomendados:

  • /opt/mars-memory-mcp/shared/.env
  • /opt/mars-memory-mcp/shared/.env.profile-a
  • /opt/mars-memory-mcp/shared/.env.profile-b

Scripts de lanzamiento/despliegue

  1. Compila el artefacto:
bash marsnme-supabase/deploy/phase2/build_release_artifact.sh
  1. Aplica migraciones con un rol explícito capaz de DDL:
npx supabase db push --db-url "<postgres://supabase_admin:<password>@<host>:5432/postgres>"
  1. Ejecuta la compuerta de esquema previa al despliegue (debe pasar antes de cualquier reinicio de servicio):
bash marsnme-supabase/deploy/phase2/pre_deploy_schema_gate.sh \
  --db-url "<postgres://supabase_admin:<password>@<host>:5432/postgres>" \
  --profiles coco,toto \
  --expected-role supabase_admin
  1. Ejecuta tu adaptador de implementación/reinicio específico de la plataforma.
    • Este repositorio incluye scripts genéricos de artefacto y compuerta; los adaptadores de implementación son específicos del entorno.
    • Si la compuerta de esquema sale con código distinto de cero, detén el despliegue y no reinicies servicios.
  2. Compuerta de humo:
bash marsnme-supabase/deploy/phase3/smoke_gate.sh --spawn-local
  1. Lanzamiento automatizado de npm + MCP Registry (impulsado por etiquetas):
    • Flujo de trabajo: .github/workflows/publish-release.yml
    • Disparador: push de etiqueta v*
    • Compuerta: la versión de la etiqueta debe coincidir con la versión de marsnme-supabase/package.json
    • Ayudante local de Fish opcional:
mrel patch
mrel minor
mrel major
mrel 0.1.2

El ayudante actualiza marsnme-supabase/package.json y server.json, hace commit, etiqueta y empuja.

Seguridad y control de versiones

  • Nunca hagas commit de .env, tokens de ejecución o oauth-clients.json
  • Mantén .env.example como la única plantilla de entorno en el repositorio
  • Prefiere bearer/OAuth para exposición pública

Licencia y política

  • Licencia: Apache-2.0 (LICENSE)
  • Aviso: NOTICE
  • Política de marcas comerciales: TRADEMARK.md
  • Guía de contribución: CONTRIBUTING.md
  • Acuerdo de contribuyente: CLA.md
  • Notas de lanzamiento: CHANGELOG.md