MCP Knowledge Graph

Proporciona memoria persistente para modelos de IA mediante un grafo de conocimiento local.

Documentación

MCP Knowledge Graph

Memoria persistente para modelos de IA a través de un grafo de conocimiento local.

Almacena y recupera información entre conversaciones usando entidades, relaciones y observaciones. Funciona con Claude Code/Desktop y cualquier plataforma de IA compatible con MCP.

¿Por qué ".aim" y los prefijos "aim_"?

AIM significa AI Memory (Memoria de IA) - el concepto central de este sistema. Los tres elementos AIM proporcionan organización clara y seguridad:

  • .aim directorios: Mantienen los archivos de memoria de IA organizados y fácilmente identificables
  • aim_ prefijos de herramientas: Agrupan funciones de memoria relacionadas en configuraciones con múltiples herramientas
  • _aim marcadores de seguridad: Cada archivo de memoria comienza con {"type":"_aim","source":"mcp-knowledge-graph"} para prevenir sobrescrituras accidentales de archivos JSONL no relacionados

Este nombre consistente AIM hace obvio qué directorios, herramientas y archivos pertenecen al sistema de memoria de IA.

CRÍTICO: Entender el directorio .aim vs el marcador de archivo _aim

Dos cosas diferentes con nombres similares:

  • .aim = Nombre de directorio local al proyecto (DEBE llamarse exactamente .aim para que la detección de proyecto funcione)
  • _aim = Marcador de seguridad de archivo (aparece dentro de archivos JSONL: {"type":"_aim","source":"mcp-knowledge-graph"})

Para almacenamiento local al proyecto:

  • El directorio DEBE llamarse .aim en la raíz de tu proyecto
  • Ejemplo: my-project/.aim/memory.jsonl
  • El sistema busca específicamente este nombre exacto

Para almacenamiento global (--memory-path):

  • Puede ser CUALQUIER directorio que desees
  • Ejemplos: ~/yourusername/.aim/, ~/memories/, ~/Dropbox/ai-memory/, ~/Documents/ai-data/
  • Flexibilidad completa - elige la ubicación que funcione para ti

Lógica de Almacenamiento

Prioridad de Ubicación de Archivos:

  1. Proyecto con .aim - Usa .aim/memory.jsonl (local al proyecto)
  2. Sin proyecto/sin .aim - Usa el directorio global configurado
  3. Contextos - Añade sufijo: memory-work.jsonl, memory-personal.jsonl

Sistema de Seguridad:

  • Cada archivo de memoria comienza con {"type":"_aim","source":"mcp-knowledge-graph"}
  • El sistema se niega a escribir en archivos sin este marcador
  • Previene la sobrescritura accidental de archivos JSONL no relacionados

Concepto de Base de Datos Maestra

La base de datos maestra es tu almacén de memoria principal - se usa por defecto cuando no se solicita una base de datos específica. Siempre se llama default en los listados y se almacena como memory.jsonl.

  • Comportamiento Predeterminado: Todas las operaciones de memoria usan la base de datos maestra a menos que especifiques una diferente
  • Siempre Disponible: Existe tanto en ubicaciones locales al proyecto como globales
  • Almacenamiento Primario: Tu grafo de conocimiento principal que persiste en todas las conversaciones
  • Bases de Datos Nombradas: Bases de datos adicionales opcionales (work, personal, health) para organizar temas específicos

Características Clave

  • Base de Datos Maestra: Almacén de memoria principal usado por defecto para todas las operaciones
  • Múltiples Bases de Datos: Bases de datos nombradas opcionales para organizar memorias por tema
  • Detección de Proyecto: Memoria automática local al proyecto usando directorios .aim
  • Anulación de Ubicación: Fuerza operaciones para usar almacenamiento de proyecto o global
  • Operaciones Seguras: Protección integrada contra sobrescritura de archivos no relacionados
  • Descubrimiento de Bases de Datos: Lista todas las bases de datos disponibles en ambas ubicaciones

Inicio Rápido

Memoria Global (Recomendado)

Añade a tu claude_desktop_config.json o .claude.json. Dos enfoques comunes:

Opción 1: Directorio .aim predeterminado (simple)

{
  "mcpServers": {
    "Aim-Memory-Bank": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-knowledge-graph",
        "--memory-path",
        "/Users/yourusername/.aim"
      ]
    }
  }
}

Opción 2: Sincronización Dropbox/nube (portátil)

Para acceder a memorias desde múltiples máquinas, usa una carpeta sincronizada. Así es como el autor de este servidor MCP mantiene sus propias memorias:

{
  "mcpServers": {
    "Aim-Memory-Bank": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-knowledge-graph",
        "--memory-path",
        "/Users/yourusername/Dropbox/ai-memory"
      ]
    }
  }
}

Esto crea archivos de memoria en tu directorio especificado:

  • memory.jsonl - Base de Datos Maestra (predeterminada para todas las operaciones)
  • memory-work.jsonl - Base de datos de trabajo
  • memory-personal.jsonl - Base de datos personal
  • etc.

Memoria Local al Proyecto

En cualquier proyecto, crea un directorio .aim:

mkdir .aim

Ahora las herramientas de memoria usan automáticamente .aim/memory.jsonl (base de datos maestra local al proyecto) en lugar del almacenamiento global cuando se ejecutan desde este proyecto.

Cómo Usan las IA las Bases de Datos

Una vez configurado, los modelos de IA usan la base de datos maestra por defecto o pueden especificar bases de datos nombradas con un parámetro context. Las nuevas bases de datos se crean automáticamente - sin configuración necesaria:

// Master Database (default - no context needed)
aim_memory_store({
  entities: [{
    name: "John_Doe",
    entityType: "person",
    observations: ["Met at conference"]
  }]
})

// Work database
aim_memory_store({
  context: "work",
  entities: [{
    name: "Q4_Project",
    entityType: "project",
    observations: ["Due December 2024"]
  }]
})

// Personal database
aim_memory_store({
  context: "personal",
  entities: [{
    name: "Mom",
    entityType: "person",
    observations: ["Birthday March 15th"]
  }]
})

// Master database in specific location
aim_memory_store({
  location: "global",
  entities: [{
    name: "Important_Info",
    entityType: "reference",
    observations: ["Stored in global master database"]
  }]
})

Organización de Archivos

Configuración Global:

/Users/yourusername/.aim/
├── memory.jsonl           # Master Database (default)
├── memory-work.jsonl      # Work database
├── memory-personal.jsonl  # Personal database
└── memory-health.jsonl    # Health database

Configuración de Proyecto:

my-project/
├── .aim/
│   ├── memory.jsonl       # Project Master Database (default)
│   └── memory-work.jsonl  # Project Work database
└── src/

Herramientas Disponibles

  • aim_memory_store - Almacena nuevas memorias (personas, proyectos, conceptos)
  • aim_memory_add_facts - Añade hechos a memorias existentes
  • aim_memory_link - Enlaza dos memorias entre sí
  • aim_memory_search - Busca memorias por palabra clave
  • aim_memory_get - Recupera memorias específicas por nombre exacto
  • aim_memory_read_all - Lee todas las memorias en una base de datos
  • aim_memory_list_stores - Lista las bases de datos disponibles
  • aim_memory_forget - Olvida memorias
  • aim_memory_remove_facts - Elimina hechos específicos de una memoria
  • aim_memory_unlink - Elimina enlaces entre memorias

Parámetros

  • context (opcional) - Especifica base de datos nombrada (work, personal, etc.). Por defecto usa la base de datos maestra
  • location (opcional) - Fuerza la ubicación de almacenamiento project o global. Por defecto usa auto-detección

Descubrimiento de Bases de Datos

Usa aim_memory_list_stores para ver todas las bases de datos disponibles:

{
  "project_databases": [
    "default",      // Master Database (project-local)
    "project-work"  // Named database
  ],
  "global_databases": [
    "default",      // Master Database (global)
    "work",
    "personal",
    "health"
  ],
  "current_location": "project (.aim directory detected)"
}

Puntos Clave:

  • "default" = Base de Datos Maestra en ambas ubicaciones
  • Ubicación actual muestra si estás usando almacenamiento de proyecto o global
  • La base de datos maestra existe en todas partes - es tu almacén de memoria principal
  • Bases de datos nombradas son adiciones opcionales para temas específicos

Ejemplos de Configuración

Importante: Siempre especifica --memory-path para controlar dónde se almacenan tus archivos de memoria.

Auto-aprobar operaciones de lectura (recomendado):

{
  "mcpServers": {
    "Aim-Memory-Bank": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-knowledge-graph",
        "--memory-path",
        "/Users/yourusername/.aim"
      ],
      "autoapprove": [
        "aim_memory_search",
        "aim_memory_get",
        "aim_memory_read_all",
        "aim_memory_list_stores"
      ]
    }
  }
}

Solución de Problemas

Error "El archivo no contiene el marcador de seguridad _aim requerido":

  • El archivo puede no pertenecer a este sistema
  • Los archivos JSONL manuales necesitan {"type":"_aim","source":"mcp-knowledge-graph"} como primera línea
  • Si creaste el archivo manualmente, añade el marcador _aim o elimínalo y deja que el sistema lo recree

Memorias que van a ubicaciones inesperadas:

  • Verifica si estás en un directorio de proyecto con carpeta .aim (usa almacenamiento local al proyecto)
  • De lo contrario, usa el directorio global --memory-path configurado
  • Usa aim_memory_list_stores para ver todas las bases de datos disponibles y la ubicación actual
  • Usa ls .aim/ o ls /Users/yourusername/.aim/ para ver tus archivos de memoria

Demasiadas bases de datos similares:

  • Los modelos de IA intentan usar nombres consistentes, pero pueden crear variaciones
  • Elimina manualmente los archivos de base de datos no deseados si es necesario
  • Anima a la IA a usar nombres de base de datos simples y consistentes
  • Recuerda: La base de datos maestra está siempre disponible como predeterminada - las bases de datos nombradas son opcionales

Requisitos

  • Node.js 22+
  • Plataforma de IA compatible con MCP

Licencia

MIT