Skip to main content
Glama

MCP Memory Service

#!/usr/bin/env python3 # Copyright 2024 Heinrich Krupp # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Simple test for memory CRUD operations.""" import requests import json import time BASE_URL = "http://localhost:8000" def test_memory_crud(): """Test the complete CRUD workflow for memories.""" print("Testing Memory CRUD Operations") print("=" * 40) # Test 1: Health check print("\n[1] Health check...") try: resp = requests.get(f"{BASE_URL}/api/health", timeout=5) if resp.status_code == 200: print("[PASS] Server is healthy") else: print(f"[FAIL] Health check failed: {resp.status_code}") return except Exception as e: print(f"[FAIL] Cannot connect: {e}") return # Test 2: Store memory print("\n[2] Storing memory...") test_memory = { "content": "Test memory for API verification", "tags": ["test", "api"], "memory_type": "test", "metadata": {"timestamp": time.time()} } try: resp = requests.post( f"{BASE_URL}/api/memories", json=test_memory, headers={"Content-Type": "application/json"}, timeout=10 ) if resp.status_code == 200: result = resp.json() if result["success"]: content_hash = result["content_hash"] print(f"[PASS] Memory stored: {content_hash[:12]}...") else: print(f"[FAIL] Storage failed: {result['message']}") return else: print(f"[FAIL] Storage failed: {resp.status_code}") print(f"Error: {resp.text}") return except Exception as e: print(f"[FAIL] Storage error: {e}") return # Test 3: List memories print("\n[3] Listing memories...") try: resp = requests.get(f"{BASE_URL}/api/memories?page=1&page_size=5", timeout=10) if resp.status_code == 200: result = resp.json() print(f"[PASS] Found {len(result['memories'])} memories") print(f"Total: {result['total']}") else: print(f"[FAIL] Listing failed: {resp.status_code}") except Exception as e: print(f"[FAIL] Listing error: {e}") # Test 4: Delete memory print("\n[4] Deleting memory...") try: resp = requests.delete(f"{BASE_URL}/api/memories/{content_hash}", timeout=10) if resp.status_code == 200: result = resp.json() if result["success"]: print("[PASS] Memory deleted") else: print(f"[FAIL] Deletion failed: {result['message']}") else: print(f"[FAIL] Deletion failed: {resp.status_code}") except Exception as e: print(f"[FAIL] Deletion error: {e}") print("\n" + "=" * 40) print("CRUD testing completed!") if __name__ == "__main__": test_memory_crud()

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