Skip to main content
Glama

Self-Improving Memory MCP

by SuperPiTT
embeddings.js1.63 kB
/** * Embedding Utilities * Shared utilities for working with embeddings */ /** * Calculate cosine similarity between two vectors * @param {Array<number>} vecA - First vector * @param {Array<number>} vecB - Second vector * @returns {number} Similarity score (0-1) */ export function cosineSimilarity(vecA, vecB) { if (!vecA || !vecB || vecA.length !== vecB.length) { throw new Error('Invalid vectors for similarity calculation'); } let dotProduct = 0; let normA = 0; let normB = 0; for (let i = 0; i < vecA.length; i++) { dotProduct += vecA[i] * vecB[i]; normA += vecA[i] * vecA[i]; normB += vecB[i] * vecB[i]; } normA = Math.sqrt(normA); normB = Math.sqrt(normB); if (normA === 0 || normB === 0) { return 0; } return dotProduct / (normA * normB); } /** * Calculate euclidean distance between two vectors * @param {Array<number>} vecA - First vector * @param {Array<number>} vecB - Second vector * @returns {number} Distance */ export function euclideanDistance(vecA, vecB) { if (!vecA || !vecB || vecA.length !== vecB.length) { throw new Error('Invalid vectors for distance calculation'); } let sum = 0; for (let i = 0; i < vecA.length; i++) { const diff = vecA[i] - vecB[i]; sum += diff * diff; } return Math.sqrt(sum); } /** * Normalize a vector to unit length * @param {Array<number>} vec - Vector to normalize * @returns {Array<number>} Normalized vector */ export function normalize(vec) { const norm = Math.sqrt(vec.reduce((sum, val) => sum + val * val, 0)); if (norm === 0) return vec; return vec.map(val => val / norm); }

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/SuperPiTT/self-improving-memory-mcp'

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