npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mcp-memory-ts

v1.7.2

Published

Cloud-based vector MCP memory service for Claude.ai - TypeScript implementation

Downloads

130

Readme

MCP Memory Service - TypeScript

A modern TypeScript implementation of a cloud-based vector memory service for AI assistants via the Model Context Protocol (MCP). This service provides persistent storage with semantic search capabilities for Claude.ai and other AI assistants.

Features

  • 🧠 3-Tier Memory System: SYSTEM, LEARNED, and MEMORY layers for hierarchical knowledge organization
  • 👥 Multi-Tenant Support: Secure user isolation with Clerk OAuth authentication
  • 🔍 Vector Search: Semantic similarity search using OpenAI embeddings
  • 🔄 Automatic Embeddings: Auto-generates and updates embeddings on data changes
  • 🏢 Entity Management: Track people, organizations, projects, and relationships
  • 📚 Interaction History: Store and retrieve conversation history with context
  • 📱 Contacts Sync: True bidirectional sync with macOS Contacts using LLM-based deduplication
  • 🔄 Google Sync: Google Contacts and Calendar integration with incremental sync (v1.7.0)
  • 📅 Calendar Tracking: Week-based Google Calendar event sync with attendee linking
  • 🌐 Web Interface: Modern Next.js web UI for visual memory management (v1.3.0+)
  • 🔌 MCP Protocol: JSON-RPC 2.0 over stdio (local) and HTTP (remote)
  • 🌐 REST API: HTTP interface for web applications
  • 🔐 OAuth Integration: Clerk authentication for remote access with 95.2% test coverage
  • ☁️ Cloud-Ready: Built for modern cloud deployment with Turso database

Architecture

src/
├── types/          # TypeScript type definitions
├── models/         # Data models and schemas
├── database/       # Database connection and operations
├── core/           # Core memory logic and vector search
├── mcp/           # MCP server implementation
├── api/           # REST API server
├── cli/           # CLI tool
├── utils/         # Utility functions
└── index.ts       # Main entry point

web/
├── app/           # Next.js app directory
├── components/    # React components
├── lib/           # Utilities and integrations
└── public/        # Static assets

Quick Start

Prerequisites

  • Node.js 18+
  • Turso database (or LibSQL compatible)
  • OpenAI API key (for embeddings)

Installation

# Clone and install dependencies
npm install

# Copy environment configuration
cp .env.local .env

# Build the project
npm run build

# Start development server
npm run dev

Environment Variables

Required variables in .env:

# Database Configuration
TURSO_URL=libsql://your-database.turso.io
TURSO_AUTH_TOKEN=your-auth-token

# OpenAI Configuration (for vector embeddings)
OPENAI_API_KEY=your-openai-api-key

# Optional Configuration
LOG_LEVEL=INFO
MCP_DEBUG=0
[email protected]

# Automatic Embedding Updates (v1.1.0+)
ENABLE_EMBEDDING_MONITOR=true  # Enable background monitoring
EMBEDDING_MONITOR_INTERVAL=60000  # Check every 60 seconds

# Web Interface (v1.3.0+)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your-clerk-publishable-key
CLERK_SECRET_KEY=your-clerk-secret-key

# Google Integration (v1.7.0+)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/api/auth/google/callback

Usage

MCP Server (for Claude Desktop)

Recommended: Using CLI Tool

# Install globally
npm install -g mcp-memory-ts

# Initialize configuration
mcp-memory init

# Install to Claude Desktop
mcp-memory install

# Check status
mcp-memory status

This creates a config in ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-memory-ts": {
      "command": "mcp-memory",
      "args": ["server"],
      "env": {
        "TURSO_URL": "your-database-url",
        "TURSO_AUTH_TOKEN": "your-auth-token",
        "OPENAI_API_KEY": "your-openai-key",
        "DEFAULT_USER_EMAIL": "[email protected]"
      }
    }
  }
}

Manual Setup

For development or manual configuration:

# Start MCP server
npm run mcp-server

# Or with debug logging
MCP_DEBUG=1 npm run mcp-server

# Or using CLI command
mcp-memory server --debug

Remote MCP Server (HTTP with OAuth)

For web applications and remote access with Clerk authentication:

# Start remote MCP server
npm run mcp-server-remote

The remote MCP server will be available at http://localhost:3003 with:

  • Authentication: Clerk OAuth session tokens
  • Multi-Tenant: Complete user isolation by email
  • Protocol: JSON-RPC 2.0 over HTTP
  • Security: Rate limiting, CORS, session management
  • Endpoints: /mcp (main), /health
  • Test Coverage: 95.2% pass rate (20/21 tests)

OAuth Setup

  1. Get Clerk credentials from dashboard.clerk.com

  2. Configure environment:

    # Development Keys
    CLERK_SECRET_KEY=your-clerk-test-secret-key
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_bmF0aXZlLW1hcm1vc2V0LTc0LmNsZXJrLmFjY291bnRzLmRldiQ
    
    # Production Keys (when ready)
    CLERK_SECRET_KEY=your-clerk-live-secret-key
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_Y2xlcmsuYWktbWVtb3J5LmFwcCQ
  3. Start server:

    npm run mcp-server-remote
  4. Test with authentication:

    curl -X POST http://localhost:3003/mcp \
      -H "Authorization: Bearer YOUR_CLERK_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

See docs/REMOTE_MCP_SETUP.md for detailed setup instructions.

Web Interface (v1.3.0+)

Modern Next.js web interface for visual memory management:

# Setup web interface
./scripts/setup-web.sh

# Start development server
cd web
npm run dev

The web interface will be available at http://localhost:3001 with:

  • Authentication: Clerk OAuth for multi-user support
  • Visual Search: Interactive memory browser with semantic search
  • Entity Management: Visual relationship mapping
  • Real-time Sync: Bidirectional sync with MCP server
  • Contacts Integration: Import/export with LLM deduplication

See docs/features/WEB_INTERFACE.md for complete setup and deployment guide.

REST API Server

# Start REST API server
npm run api-server

The API will be available at http://localhost:3000 with endpoints for:

  • /api/memories - Memory management
  • /api/entities - Entity management
  • /api/search - Vector and text search
  • /api/users - User management

Development

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

# Type checking
npm run type-check

Testing

The project includes comprehensive test coverage:

  • Unit Tests: Core functionality and utilities
  • Integration Tests: OAuth authentication, user isolation, MCP protocol
  • E2E Tests: Complete workflows and Claude Desktop integration
  • Test Results: 95.2% pass rate (20/21 tests passing)

See docs/testing/QA_TEST_REPORT.md for detailed test results.

Documentation

Core Documentation

Guides

Features

API Reference

Security

Deployment

Schema & Database

Testing & Quality

Additional Documentation

License

MIT License - See LICENSE file for details.

Testing

Comprehensive Integrity Tests

A comprehensive test suite is available to verify data integrity and system reliability:

# Run the full test suite
tsx comprehensive-integrity-test.ts

The test suite validates:

  • Data integrity (type preservation, importance values, metadata)
  • Boundary conditions (volume, special characters, concurrent operations)
  • Recovery & reliability (updates, deletions, clear operations)
  • Search algorithms (single-word, multi-word, case insensitivity)
  • Production scenarios (session tracking, priority queues, date handling)

Expected results: 17/17 tests passed, 5/5 production criteria met

See docs/testing/ for detailed test results and analysis.