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. """ MCP-MEMORY-SERVICE Cleanup and Organization Script This script implements the cleanup plan documented in CLEANUP_PLAN.md. It creates the necessary directory structure, moves files to their new locations, and prepares everything for committing to the new branch. """ import os import sys import shutil from pathlib import Path import subprocess import datetime def run_command(command): """Run a shell command and print the result.""" print(f"Running: {command}") result = subprocess.run(command, shell=True, capture_output=True, text=True) if result.returncode != 0: print(f"ERROR: {result.stderr}") return False print(f"SUCCESS: {result.stdout}") return True def create_directory(path): """Create a directory if it doesn't exist.""" if not os.path.exists(path): print(f"Creating directory: {path}") os.makedirs(path) else: print(f"Directory already exists: {path}") def move_file(src, dest): """Move a file from src to dest, creating destination directory if needed.""" dest_dir = os.path.dirname(dest) # Only try to create the directory if dest_dir is not empty if dest_dir and not os.path.exists(dest_dir): os.makedirs(dest_dir) if os.path.exists(src): print(f"Moving {src} to {dest}") shutil.move(src, dest) else: print(f"WARNING: Source file does not exist: {src}") def copy_file(src, dest): """Copy a file from src to dest, creating destination directory if needed.""" dest_dir = os.path.dirname(dest) # Only try to create the directory if dest_dir is not empty if dest_dir and not os.path.exists(dest_dir): os.makedirs(dest_dir) if os.path.exists(src): print(f"Copying {src} to {dest}") shutil.copy2(src, dest) else: print(f"WARNING: Source file does not exist: {src}") def create_readme(path, content): """Create a README.md file with the given content.""" with open(path, 'w') as f: f.write(content) print(f"Created README: {path}") def main(): # Change to the repository root directory repo_root = os.getcwd() print(f"Working in repository root: {repo_root}") # 1. Create test directory structure test_dirs = [ "tests/integration", "tests/unit", "tests/performance" ] for directory in test_dirs: create_directory(directory) # 2. Create documentation directory structure doc_dirs = [ "docs/guides", "docs/implementation", "docs/api", "docs/examples" ] for directory in doc_dirs: create_directory(directory) # 3. Create archive directory today = datetime.date.today().strftime("%Y-%m-%d") archive_dir = f"archive/{today}" create_directory(archive_dir) # 4. Move test files test_files = [ ("test_chromadb.py", "tests/unit/test_chroma.py"), ("test_health_check_fixes.py", "tests/integration/test_storage.py"), ("test_issue_5_fix.py", "tests/unit/test_tags.py"), ("test_performance_optimizations.py", "tests/performance/test_caching.py") ] for src, dest in test_files: move_file(src, dest) # 5. Move documentation files doc_files = [ ("HEALTH_CHECK_FIXES_SUMMARY.md", "docs/implementation/health_checks.md"), ("PERFORMANCE_OPTIMIZATION_SUMMARY.md", "docs/implementation/performance.md"), ("CLAUDE.md", "docs/guides/claude_integration.md") ] for src, dest in doc_files: move_file(src, dest) # 6. Archive backup files archive_files = [ ("backup_performance_optimization", f"{archive_dir}/backup_performance_optimization") ] for src, dest in archive_files: if os.path.exists(src): if os.path.exists(dest): print(f"Archive destination already exists: {dest}") else: shutil.copytree(src, dest) print(f"Archived {src} to {dest}") else: print(f"WARNING: Source directory does not exist: {src}") # 7. Update CHANGELOG.md if os.path.exists("CHANGELOG.md.new"): move_file("CHANGELOG.md.new", "CHANGELOG.md") # 8. Create test README files test_readme = """# MCP-MEMORY-SERVICE Tests This directory contains tests for the MCP-MEMORY-SERVICE project. ## Directory Structure - `integration/` - Integration tests between components - `unit/` - Unit tests for individual components - `performance/` - Performance benchmarks ## Running Tests ```bash # Run all tests pytest # Run specific test category pytest tests/unit/ pytest tests/integration/ pytest tests/performance/ ``` """ create_readme("tests/README.md", test_readme) # 9. Create docs README file docs_readme = """# MCP-MEMORY-SERVICE Documentation This directory contains documentation for the MCP-MEMORY-SERVICE project. ## Directory Structure - `guides/` - User guides and tutorials - `implementation/` - Implementation details and technical documentation - `api/` - API reference documentation - `examples/` - Example code and usage patterns """ create_readme("docs/README.md", docs_readme) # 10. Create archive README file archive_readme = f"""# Archive Directory This directory contains archived files from previous versions of MCP-MEMORY-SERVICE. ## {today}/ - `backup_performance_optimization/` - Backup files from performance optimization work """ create_readme(f"{archive_dir}/README.md", archive_readme) # 11. Create pytest.ini pytest_ini = """[pytest] testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* markers = unit: unit tests integration: integration tests performance: performance tests """ with open("pytest.ini", 'w') as f: f.write(pytest_ini) print("Created pytest.ini") # 12. Create conftest.py conftest = """import pytest import os import sys import tempfile import shutil # Add src directory to Python path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) @pytest.fixture def temp_db_path(): '''Create a temporary directory for ChromaDB testing.''' temp_dir = tempfile.mkdtemp() yield temp_dir # Clean up after test shutil.rmtree(temp_dir) """ with open("tests/conftest.py", 'w') as f: f.write(conftest) print("Created tests/conftest.py") print("\nCleanup and organization completed!") print("Next steps:") print("1. Verify all files are in their correct locations") print("2. Run tests to ensure everything still works") print("3. Create a new git branch and commit the changes") print(" git checkout -b feature/cleanup-and-organization") print(" git add .") print(" git commit -m \"Organize tests, documentation, and archive old files\"") print("4. Push the branch for hardware testing") print(" git push origin feature/cleanup-and-organization") 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