MCP Memory Server

MCP Memory Server

Enables personal memory management through tools to find people, get profiles, remember notes, and perform semantic search, integrated with Claude via SSE.

Category
Visit Server

README

MCP Memory Server

A streamable HTTPS (SSE) MCP server with personal memory layer using AWS ECS Fargate, RDS PostgreSQL, and OpenSearch Serverless for vector search.

Features

  • MCP Tools: find_person, get_profile, remember_note, semantic_search
  • SSE Transport: Streaming responses over HTTPS
  • Relational Storage: AWS RDS PostgreSQL for structured data
  • Vector Search: OpenSearch Serverless with k-NN for semantic search
  • Embeddings: AWS Bedrock Titan for text embeddings
  • Secure: Bearer token auth, VPC isolation, IAM roles

Quick Start

Local Development

  1. Install dependencies:
npm install
  1. Start PostgreSQL:
docker-compose up -d postgres
  1. Run migrations:
docker exec -i mcp-postgres psql -U postgres -d memory < sql/001_schema.sql
docker exec -i mcp-postgres psql -U postgres -d memory < sql/002_seed_data.sql
  1. Configure environment:
cp .env.example .env
# Edit .env with your AWS credentials
  1. Start dev server:
npm run dev

AWS Deployment

  1. Configure AWS SSO:
aws sso login --profile leogao
  1. Build and push Docker image:
# Get AWS account ID
AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
AWS_REGION=us-east-1

# Build image
docker build -t mcp-memory:latest .

# Login to ECR
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

# Create repository (if needed)
aws ecr create-repository --repository-name mcp-memory-prod-app --region $AWS_REGION

# Push image
docker tag mcp-memory:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/mcp-memory-prod-app:latest
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/mcp-memory-prod-app:latest
  1. Deploy infrastructure with Terraform:
cd terraform

# Initialize Terraform
terraform init

# Create terraform.tfvars
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values

# Plan deployment
terraform plan

# Apply infrastructure
terraform apply
  1. Update ECS service (for subsequent deployments):
./scripts/deploy.sh

Connecting from Claude

Configure your Claude client with the MCP SSE endpoint:

{
  "mcpServers": {
    "mcp-memory": {
      "transport": {
        "type": "sse",
        "url": "https://your-domain.com/mcp/sse",
        "accessToken": "your-auth-token"
      }
    }
  }
}

Architecture

┌─────────────┐     ┌─────────────┐     ┌──────────────┐
│   Claude    │────▶│     ALB     │────▶│  ECS Fargate │
└─────────────┘     └─────────────┘     └──────────────┘
                           │                     │
                           │              ┌──────▼──────┐
                           │              │     RDS     │
                           │              │  PostgreSQL │
                           │              └─────────────┘
                           │                     │
                           │              ┌──────▼──────┐
                           │              │  OpenSearch │
                           │              │  Serverless │
                           │              └─────────────┘
                           │                     │
                           │              ┌──────▼──────┐
                           └──────────────│   Bedrock   │
                                         │   Titan     │
                                         └─────────────┘

Available Tools

find_person

Search for people by name, email, or organization.

get_profile

Retrieve detailed profile with attributes and recent notes.

remember_note

Add a note to an entity and index it for semantic search.

semantic_search

Search notes semantically using vector similarity.

Environment Variables

  • PORT: Server port (default: 8080)
  • AUTH_TOKEN: Bearer token for authentication
  • PG_URL: PostgreSQL connection string
  • OPENSEARCH_URL: OpenSearch endpoint
  • OPENSEARCH_INDEX: Index name for vector search
  • BEDROCK_REGION: AWS region for Bedrock
  • AWS_PROFILE: AWS profile for local development

Monitoring

  • CloudWatch Logs: /ecs/mcp-memory-prod
  • ECS Console: Monitor service health and tasks
  • RDS Metrics: Database performance insights
  • ALB Target Health: Check target group health

Security Considerations

  • All traffic encrypted with TLS
  • Private subnets for compute and data
  • IAM roles with least privilege
  • Secrets in AWS Secrets Manager
  • VPC security groups restrict access

Troubleshooting

Stream drops after ~60s

Increase ALB idle timeout in Terraform:

idle_timeout = 300  # 5 minutes

401 Unauthorized

Check AUTH_TOKEN in Secrets Manager matches client config.

OpenSearch returns empty

Verify index created with k-NN enabled and embeddings are being generated.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured