Vertex AI Memory Bank MCP Server
Provides tools for generating, retrieving, and managing long-term memories using Vertex AI Memory Bank, enabling LLMs to store and recall user context and preferences.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vertex AI Memory Bank MCP Serverremember that I prefer dark mode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
This is a personal project by Ivan Nardini to explore how to build a Model Context Protocol (MCP) server for Vertex AI Memory Bank.
Vertex AI Memory Bank MCP server is not a Google product. And it is not officially support.
Vertex AI Memory Bank MCP Server
A simple MCP (Model Context Protocol) server that enables LLMs to generate and retrieve long-term memories using Vertex AI's Memory Bank.
Why This Project?
This server demonstrates how to build an MCP server with Vertex AI Memory Bank. It has been inspired by a developer request and released for developers.
Related MCP server: Simple Memory MCP
Prerequisites
Python 3.11 or higher
Google Cloud account with Vertex AI API enabled
Basic understanding of async Python (helpful but not required)
Quick Start
Setup Google Cloud
# Install gcloud CLI (if not already installed)
# https://cloud.google.com/sdk/docs/install
# Authenticate
gcloud auth application-default login
# Set your project
gcloud config set project YOUR_PROJECT_ID
# Enable Vertex AI API
gcloud services enable aiplatform.googleapis.comInstall
# Clone the repository
git clone https://github.com/yourusername/vertex-ai-memory-bank-mcp.git
cd vertex-ai-memory-bank-mcp
# Install with pip
pip install -r requirements.txt
# OR install with uv (faster, recommended)
uv sync
# For running examples (optional)
pip install -e ".[examples]"
# OR with uv
uv sync --extra examplesConfigure
# Copy the example environment file
cp .env.example .env
# Edit .env with your project details
GOOGLE_CLOUD_PROJECT=your-project-id
GOOGLE_CLOUD_LOCATION=us-central1Run Your First Example
Interactive Tutorial (Recommended): Open get_started_with_memory_bank_mcp.ipynb in Jupyter
Or try the command-line examples:
# Basic MCP Client Usage
python examples/basic_usage.py
# Gemini Agent with Memory
python examples/gemini_memory_agent.py
# Automatic Tool Calling with Gemini
python examples/automatic_tool_calling.pyUse with Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"memory-bank": {
"command": "python",
"args": ["/path/to/memory_bank_server.py"],
"env": {
"GOOGLE_CLOUD_PROJECT": "your-project-id",
"GOOGLE_CLOUD_LOCATION": "us-central1"
}
}
}
}Key Concepts
Memory Scope
Memories are scoped to users or contexts:
scope = {"user_id": "alice123"}Memory Topics
Categorize what to remember:
topics = ["USER_PREFERENCES", "USER_PERSONAL_INFO"]Semantic Search
Find relevant memories with similarity search:
search_query = "programming preferences"
top_k = 5Available Tools
Tool | Purpose | Example Use Case |
| Set up connection to Vertex AI | First-time setup |
| Extract memories from conversations | After chat sessions |
| Fetch relevant memories | Personalize responses |
| Manually add a memory | Store user preferences |
| Remove specific memory | User requests deletion |
| View all stored memories | Debugging/inspection |
Common Patterns
Pattern 1: Conversation Memory
# After each conversation turn
await session.call_tool(
"generate_memories",
{
"conversation": conversation_history,
"scope": {"user_id": user_id},
"wait_for_completion": True
}
)Pattern 2: Explicit Memory
# Store specific facts
await session.call_tool(
"create_memory",
{
"fact": "User prefers dark mode",
"scope": {"user_id": user_id}
}
)Pattern 3: Context Retrieval
# Get relevant context before responding
memories = await session.call_tool(
"retrieve_memories",
{
"scope": {"user_id": user_id},
"search_query": user_message,
"top_k": 5
}
)Project Structure
vertex-ai-memory-bank-mcp/
├── memory_bank_server.py # Main entry point
├── src/ # Modular source code
│ ├── __init__.py
│ ├── server.py # Server orchestration
│ ├── tools.py # MCP tool implementations
│ ├── config.py # Configuration management
│ ├── app_state.py # Application state
│ ├── validators.py # Input validation
│ └── formatters.py # Data formatting
├── examples/ # Usage examples
│ ├── basic_usage.py # Basic MCP client usage
│ ├── automatic_tool_calling.py # Automatic function calling
│ └── claude_config.json # Claude Desktop config
├── get_started_with_memory_bank_mcp.ipynb # Getting started tutorial
├── pyproject.toml # Project config (pip & uv)
├── requirements.txt # Dependencies (pip)
├── uv.lock # Lock file (uv)
├── .env.example # Environment template
├── .gitignore # Git ignore rules
├── .python-version # Python version
├── README.md # This file
└── LICENSE # Apache 2.0 LicenseTroubleshooting
"Connection closed" error
Solution: Check that your MCP server is using stderr for logging, not stdout.
"Not authenticated"
Solution: Run gcloud auth application-default login
Contributing
This project is meant to inspire. Feel free to fork and create your own version as well as share your production implementations.
Resources
Interactive Tutorial - Start here!
License
This project is licensed under the Apache 2.0 License.
This server cannot be deployed
Maintenance
Related MCP Connectors
MemoryOracle - 10 agent memory tools: vector store, recall, summarization, redaction.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
- mem0OAuthio.github.mem0ai
Persistent memory for AI agents: add, search, update, and delete long-term memories.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with persistent long-term memory capabilities using semantic search. Enables storing, retrieving, and searching memories through three core tools integrated with Mem0 and vector storage.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to store and retrieve persistent memories with a web management interface. Supports creating, searching, and managing memories through natural language commands or a visual web dashboard.16 npm1MIT
- FlicenseBqualityDmaintenanceEnables persistent memory for AI systems by providing tools for episodic, semantic, and procedural data storage through a vector-and-graph-enhanced database. It allows models to maintain long-term continuity using similarity search, thematic clustering, and identity tracking.241-
- AlicenseNot gradedqualityCmaintenanceEnables storing, searching, and compressing contextual memories for LLM interactions, with tools for memory management and context injection.9MIT