Skip to main content
Glama
leog25

MCP Memory Server

by leog25

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

Related MCP server: Fuzzy Memory MCP Server

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.

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

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leog25/mcp-personal-memory-context'

If you have feedback or need assistance with the MCP directory API, please join our Discord server