Memory Bank MCP

Um servidor MCP (Model Context Protocol) pronto para produção que fornece um banco de memória vetorial nativo e poderoso para agentes de IA. Construído com o Protocol-Lattice Go Agent Framework, este servidor oferece memória persistente, pesquisável e compartilhável com múltiplos backends de banco de dados.

Documentação

Servidor Memory Bank MCP

Um servidor Model Context Protocol (MCP) pronto para produção que fornece um banco de memória poderoso e vetorial para agentes de IA. Construído com o Protocol-Lattice Go Agent Framework, este servidor oferece memória persistente, pesquisável e compartilhável com múltiplos backends de banco de dados.

  • Nome do Servidor: memory-bank-mcp
  • Versão: 0.1.0

Recursos

  • Múltiplos Backends de Armazenamento Vetorial: Persista memórias no banco de dados de sua preferência.

    • Em Memória: Para testes rápidos e armazenamento efêmero.
    • PostgreSQL: Usando a extensão pgvector.
    • Qdrant: Um banco de dados vetorial dedicado.
    • MongoDB: Usando Atlas Vector Search.
  • Gerenciamento Rico de Memória:

    • Buffer de Curto Prazo: Armazene memórias temporariamente para uma sessão antes de enviá-las ao armazenamento de longo prazo.
    • Persistência de Longo Prazo: Incorpore e armazene memórias para recuperação semântica entre sessões.
    • Recuperação Contextual: Busque memórias relevantes com base em uma consulta, combinando resultados de curto e longo prazo.
  • Memória Compartilhada com "Espaços":

    • Crie "espaços" de memória compartilhada onde múltiplos agentes ou usuários podem colaborar.
    • Controle de acesso refinado (ACLs) com papéis de reader, writer e admin.
    • Suporte a tempo de vida (TTL) para concessões e espaços.
  • Embeddings Dinâmicos: Usa AutoEmbedder do Go Agent Framework, permitindo configurar o modelo de embedding por meio de variáveis de ambiente (por exemplo, OpenAI, Gemini, modelos locais).

Configuração

Configure o servidor usando variáveis de ambiente.

Armazenamento de Memória

Defina MEMORY_STORE como um dos seguintes: inmemory, postgres, qdrant ou mongo.

  • PostgreSQL:
    export MEMORY_STORE="postgres"
    export POSTGRES_DSN="postgres://user:pass@host:port/db?sslmode=disable"
    
  • Qdrant:
    export MEMORY_STORE="qdrant"
    export QDRANT_URL="http://localhost:6333"
    export QDRANT_COLLECTION="memories"
    export QDRANT_API_KEY="..." # Optional
    
  • MongoDB:
    export MEMORY_STORE="mongo"
    export MONGO_URI="mongodb+srv://..."
    export MONGO_DATABASE="main"
    export MONGO_COLLECTION="memories"
    

Outras Configurações

  • SHORT_TERM_SIZE: Número máximo de itens no buffer de curto prazo por sessão. (Padrão: 20)
  • DEFAULT_SPACE_TTL_SEC: TTL padrão para espaços em segundos. (Padrão: 86400 / 24 horas)

Modelo de Embedding

O servidor usa AutoEmbedder, que respeita as variáveis de ambiente ADK_EMBED_* do Go Agent Framework. Por exemplo, para usar Gemini:

export ADK_EMBED_PROVIDER="gemini"
export ADK_EMBED_MODEL="text-embedding-004"
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Início Rápido

go install github.com/Protocol-Lattice/memory-bank-mcp@latest
# Run the server (defaults to stdio transport)
memory-bank-mcp

Ferramentas MCP Disponíveis

O servidor expõe um conjunto abrangente de ferramentas para manipulação de memória.

Memória Principal

  • health.ping: Verifique se o servidor está em execução.
  • memory.embed: Obtenha o embedding vetorial para um trecho de texto.
  • memory.add_short: Adicione uma memória ao buffer de curto prazo de uma sessão.
  • memory.flush: Persista o buffer de curto prazo de uma sessão no armazenamento vetorial de longo prazo.
  • memory.store_long: Incorpore e armazene diretamente uma memória no armazenamento de longo prazo.
  • memory.retrieve_context: Recupere memórias relevantes para uma consulta de uma sessão.

Espaços (Memória Compartilhada)

  • spaces.upsert: Crie ou atualize um espaço compartilhado com TTL e ACL.
  • spaces.grant: Conceda um papel (reader, writer, admin) a um principal para um espaço.
  • spaces.revoke: Revogue o acesso de um principal a um espaço.
  • spaces.list: Liste todos os espaços aos quais um principal tem acesso.

Sessões Compartilhadas

  • shared.join: Faça a visualização da sessão de um principal incluir um espaço específico.
  • shared.leave: Remova um espaço da visualização da sessão de um principal.
  • shared.add_short_to: Adicione uma memória de curto prazo diretamente a um espaço compartilhado.
  • shared.retrieve: Recupere memórias da visualização mesclada de um principal (local + espaços associados).

Configuração do MCP:

{
	"servers": {
    "memory-bank": {
      "command": "/usr/local/bin/memory-bank-mcp",
      "args": ["-transport", "http", "-addr", ":8080"]
    }
	},
	"inputs": []
}

Diagnóstico

  • engine.metrics: Obtenha um instantâneo das métricas de desempenho do mecanismo de memória.