Skip to main content
Glama

MCP Memory Service

#!/usr/bin/env python3 """ Check the status of SQLite-vec database and identify issues. """ import sqlite3 import sys import os def check_sqlite_vec_status(db_path): """Check the status of the SQLite-vec database.""" print(f"Checking SQLite-vec database: {db_path}") print("="*60) if not os.path.exists(db_path): print(f"❌ Database not found: {db_path}") return False conn = sqlite3.connect(db_path) cursor = conn.cursor() issues_found = [] try: # Check basic tables cursor.execute("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name") tables = [row[0] for row in cursor.fetchall()] print(f"Tables: {', '.join(tables)}") if 'memories' not in tables: issues_found.append("Missing 'memories' table") else: cursor.execute("SELECT COUNT(*) FROM memories") memory_count = cursor.fetchone()[0] print(f"📝 Memories: {memory_count}") if 'memory_embeddings' not in tables: issues_found.append("Missing 'memory_embeddings' table") else: # Try to access the embeddings table try: cursor.execute("SELECT COUNT(*) FROM memory_embeddings") embedding_count = cursor.fetchone()[0] print(f"🧠 Embeddings: {embedding_count}") # Check if counts match if 'memories' in tables: if memory_count != embedding_count: issues_found.append(f"Count mismatch: {memory_count} memories vs {embedding_count} embeddings") except Exception as e: if "no such module: vec0" in str(e): issues_found.append("sqlite-vec extension not loaded - cannot access embeddings") else: issues_found.append(f"Cannot access embeddings table: {e}") # Check if extension loading is possible try: conn.enable_load_extension(True) extension_support = True except: extension_support = False issues_found.append("Extension loading not supported") print(f"Extension loading: {'✅ Supported' if extension_support else '❌ Not supported'}") # Try to load sqlite-vec if extension_support: try: # This will fail if sqlite-vec is not installed import sqlite_vec sqlite_vec.load(conn) print("✅ sqlite-vec extension loaded successfully") # Now try to access embeddings try: cursor.execute("SELECT COUNT(*) FROM memory_embeddings") embedding_count = cursor.fetchone()[0] print(f"✅ Can now access embeddings: {embedding_count}") # Test a simple search if embedding_count > 0: cursor.execute("SELECT * FROM memory_embeddings LIMIT 1") row = cursor.fetchone() print("✅ Embedding data accessible") except Exception as e: issues_found.append(f"Still cannot access embeddings after loading extension: {e}") except ImportError: issues_found.append("sqlite-vec Python module not installed") except Exception as e: issues_found.append(f"Failed to load sqlite-vec extension: {e}") except Exception as e: issues_found.append(f"Database error: {e}") finally: conn.close() print("\n" + "="*60) if issues_found: print("⚠️ Issues Found:") for i, issue in enumerate(issues_found, 1): print(f" {i}. {issue}") print("\nRecommendations:") if "sqlite-vec Python module not installed" in str(issues_found): print(" • Install sqlite-vec: uv pip install sqlite-vec") if "sentence-transformers" in str(issues_found) or "embedding" in str(issues_found).lower(): print(" • Install sentence-transformers: uv pip install sentence-transformers torch") if "Count mismatch" in str(issues_found): print(" • Run repair script to regenerate missing embeddings") if "cannot access embeddings" in str(issues_found).lower(): print(" • Database may need migration to fix schema issues") else: print("✅ No issues found - database appears healthy!") return len(issues_found) == 0 def main(): if len(sys.argv) != 2: print("Usage: python check_sqlite_vec_status.py <database_path>") sys.exit(1) db_path = sys.argv[1] healthy = check_sqlite_vec_status(db_path) sys.exit(0 if healthy else 1) if __name__ == "__main__": main()

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/doobidoo/mcp-memory-service'

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