This guide will help you get started with Kagura Memory Cloud.
- Docker and Docker Compose
- Python 3.11+ (for backend / CLI tools)
- Node.js 20+ (for frontend development, optional if using Docker)
git clone https://github.com/kagura-ai/memory-cloud.git
cd memory-cloudcp .env.example .env.localEdit .env.local — the minimum required settings are already set for local development. OAuth providers (Google, GitHub) are optional.
docker compose up -dThis will start:
- Backend API (port 8080)
- Frontend (port 3000)
- PostgreSQL (port 5432)
- Qdrant (port 6333)
- Redis (port 6379)
cd backend && alembic upgrade headpython -m src.cli.create_adminThis interactive command will:
- Create an admin user with login ID and password
- Set up MFA (TOTP) with your authenticator app (recommended)
- Create a personal workspace
- Generate an API key
- Write
.mcp.jsonfor MCP client configuration
- Web UI: http://localhost:3000
- Admin Login: Click "Admin Login" link on the login page
- API Docs: http://localhost:8080/docs
- Health Check: http://localhost:8080/health
All commands run from the backend/ directory:
# Create admin (first time setup)
python -m src.cli.create_admin
# Reset password or disable/re-enable MFA
python -m src.cli.reset_password
# Delete admin (for re-creation)
python -m src.cli.delete_adminNote: Docker API container must be running. CLI reads
API_KEY_SECRETfrom it.
Kagura Memory Cloud supports multiple authentication methods:
- Password + MFA: For the admin user (created via CLI)
- Google OAuth: Optional, configure
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETin.env.local - GitHub OAuth: Optional, configure
GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRETin.env.local
The create_admin CLI automatically generates .mcp.json. If you need to create it manually:
{
"mcpServers": {
"kagura-memory": {
"type": "http",
"url": "http://localhost:8080/mcp/w/YOUR_WORKSPACE_ID",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Restart Claude Code to pick up the config, then test with remember and recall tools.
export KAGURA_API_KEY="kagura_xxxxxxxxxxxx"
# Remember a memory
curl -X POST http://localhost:8080/api/v1/memory/remember \
-H "Authorization: Bearer $KAGURA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"summary": "Test memory",
"content": "This is a test memory",
"type": "note",
"importance": 0.8
}'
# Recall memories
curl -X POST http://localhost:8080/api/v1/memory/recall \
-H "Authorization: Bearer $KAGURA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "test",
"k": 5
}'- API Reference — Detailed API documentation
- Architecture — System design overview
- Concepts — Core concepts (contexts, workspaces, neural memory)
- Sleep Maintenance — Background cleanup cycle,
sleep_mode, observability, and rollback
docker compose logs api
docker compose restartcd backend && alembic upgrade headcd backend && python -m src.cli.reset_password
# Choose option 2 (Disable MFA) or 3 (Both)- GitHub Issues: Report bugs
- API Docs: http://localhost:8080/docs