Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
diagnose_enhanced_status.py6.8 kB
#!/usr/bin/env python3 """ MemOS增强版状态诊断脚本 用于重现和分析MCP服务器状态显示不一致问题 """ import os import sys import time import traceback from pathlib import Path # 添加项目路径 sys.path.insert(0, str(Path(__file__).parent)) def test_direct_mvp_manager(): """直接测试MVP管理器状态""" print("=" * 60) print("🔍 直接测试MVP管理器状态") print("=" * 60) try: from mvp_memory import MVPMemoryManager # 使用与MCP相同的数据目录 data_dir = "./mcp_memos_data" print(f"📁 数据目录: {data_dir}") # 创建MVP管理器实例 print("🚀 创建MVP管理器实例...") mvp_manager = MVPMemoryManager(data_dir=data_dir, use_enhanced=True) # 检查状态 print(f"✅ use_enhanced: {mvp_manager.use_enhanced}") print(f"✅ memory类型: {type(mvp_manager.memory).__name__}") # 测试功能 print("\n🧪 测试记忆功能...") test_content = f"诊断测试记忆 - {time.time()}" success = mvp_manager.remember(test_content, tags=["诊断", "测试"]) print(f"✅ 记忆添加: {'成功' if success else '失败'}") # 测试检索 print("\n🔍 测试检索功能...") results = mvp_manager.recall("诊断", top_k=3) print(f"✅ 检索结果: {len(results)}条") return mvp_manager except Exception as e: print(f"❌ 直接测试失败: {e}") traceback.print_exc() return None def test_mcp_server_initialization(): """测试MCP服务器初始化过程""" print("\n" + "=" * 60) print("🔍 测试MCP服务器初始化过程") print("=" * 60) try: # 模拟MCP服务器的初始化过程 from memos_mcp_server import MemOSMCPServer print("🚀 创建MCP服务器实例...") server = MemOSMCPServer() # 检查MVP管理器状态 print(f"✅ MCP中use_enhanced: {server.mvp_manager.use_enhanced}") print(f"✅ MCP中memory类型: {type(server.mvp_manager.memory).__name__}") # 模拟MCP工具调用 print("\n🧪 模拟MCP工具调用...") # 模拟添加记忆的MCP调用 test_request = { "jsonrpc": "2.0", "id": "test-1", "method": "tools/call", "params": { "name": "add_memos_memory", "arguments": { "content": f"MCP诊断测试记忆 - {time.time()}", "tags": ["MCP", "诊断"] } } } # 直接调用处理方法 import asyncio response = asyncio.run(server.add_memos_memory(test_request["params"]["arguments"])) print(f"✅ MCP响应: {response}") return server except Exception as e: print(f"❌ MCP测试失败: {e}") traceback.print_exc() return None def analyze_initialization_timing(): """分析初始化时序问题""" print("\n" + "=" * 60) print("🔍 分析初始化时序问题") print("=" * 60) try: # 检查Qdrant服务状态 import requests print("🔍 检查Qdrant服务状态...") try: response = requests.get("http://localhost:6335/health", timeout=5) print(f"✅ Qdrant服务状态: {response.status_code}") except Exception as e: print(f"❌ Qdrant服务不可用: {e}") return False # 测试多次初始化 print("\n🔄 测试多次初始化...") for i in range(3): print(f"\n--- 第{i+1}次初始化 ---") try: from mvp_memory import MVPMemoryManager # 每次都创建新实例 mvp = MVPMemoryManager(data_dir="./test_timing_data", use_enhanced=True) print(f"✅ 第{i+1}次: use_enhanced={mvp.use_enhanced}") # 清理 del mvp except Exception as e: print(f"❌ 第{i+1}次初始化失败: {e}") return True except Exception as e: print(f"❌ 时序分析失败: {e}") traceback.print_exc() return False def check_configuration_consistency(): """检查配置一致性""" print("\n" + "=" * 60) print("🔍 检查配置一致性") print("=" * 60) # 检查环境变量 print("📋 环境变量:") env_vars = ["MEMOS_CONFIG", "SILICONFLOW_API_KEY", "SILICONFLOW_BASE_URL"] for var in env_vars: value = os.environ.get(var, "未设置") print(f" {var}: {value}") # 检查配置文件 config_paths = [ "./mcp_memos_data/concurrent_config.json", "./memos_data/concurrent_config.json", "./concurrent_config.json" ] print("\n📋 配置文件:") for path in config_paths: if os.path.exists(path): print(f" ✅ {path}: 存在") try: import json with open(path, 'r') as f: config = json.load(f) print(f" 内容: {config}") except Exception as e: print(f" ❌ 读取失败: {e}") else: print(f" ❌ {path}: 不存在") def main(): """主诊断流程""" print("🩺 MemOS增强版状态诊断开始") print("=" * 80) # 1. 检查配置一致性 check_configuration_consistency() # 2. 直接测试MVP管理器 mvp_direct = test_direct_mvp_manager() # 3. 测试MCP服务器初始化 mcp_server = test_mcp_server_initialization() # 4. 分析初始化时序 timing_ok = analyze_initialization_timing() # 5. 对比结果 print("\n" + "=" * 60) print("📊 诊断结果对比") print("=" * 60) if mvp_direct and mcp_server: print(f"直接测试 use_enhanced: {mvp_direct.use_enhanced}") print(f"MCP测试 use_enhanced: {mcp_server.mvp_manager.use_enhanced}") if mvp_direct.use_enhanced != mcp_server.mvp_manager.use_enhanced: print("❌ 发现状态不一致!") print("🔍 可能原因:") print(" 1. MCP初始化时Qdrant连接超时") print(" 2. 不同的配置文件路径") print(" 3. 环境变量差异") print(" 4. 初始化时序问题") else: print("✅ 状态一致") print("\n🎯 诊断完成") 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/qinshu1109/memos-MCP'

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