Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
create_expert_consultation_package.py7.82 kB
#!/usr/bin/env python3 """ 创建专家咨询代码包 打包MemOS增强版激活问题的所有相关文件 """ import os import shutil import zipfile from pathlib import Path from datetime import datetime def create_consultation_package(): """创建专家咨询代码包""" # 创建临时目录 package_name = f"MemOS增强版问题咨询包_{datetime.now().strftime('%Y%m%d_%H%M%S')}" temp_dir = Path(f"/tmp/{package_name}") temp_dir.mkdir(exist_ok=True) print(f"📦 创建咨询包: {package_name}") # 核心代码文件 core_files = [ "memos_mcp_server.py", "mvp_memory.py", "enhanced_simple_memos.py", "test_mvp_enhanced.py", "qwen_embedding_config.py", "usage_examples.py" ] # 配置文件 config_files = [ "mcp_memos_data/concurrent_config.json", "claude_desktop_config.json", "memos_mcp_config_complete.json", ".env" ] # 文档文件 doc_files = [ "专家咨询-MemOS增强版激活问题分析.md", "README.md", "QWEN_MODEL_CONFIGURATION.md" ] # 关键源码目录 src_dirs = [ "src/memos/configs", "src/memos/embedders", "src/memos/rerankers" ] # 复制核心文件 print("📄 复制核心代码文件...") for file_path in core_files: src = Path(file_path) if src.exists(): dst = temp_dir / src.name shutil.copy2(src, dst) print(f" ✅ {file_path}") else: print(f" ❌ {file_path} (不存在)") # 复制配置文件 print("⚙️ 复制配置文件...") config_dir = temp_dir / "configs" config_dir.mkdir(exist_ok=True) for file_path in config_files: src = Path(file_path) if src.exists(): dst = config_dir / src.name shutil.copy2(src, dst) print(f" ✅ {file_path}") else: print(f" ❌ {file_path} (不存在)") # 复制文档文件 print("📚 复制文档文件...") docs_dir = temp_dir / "docs" docs_dir.mkdir(exist_ok=True) for file_path in doc_files: src = Path(file_path) if src.exists(): dst = docs_dir / src.name shutil.copy2(src, dst) print(f" ✅ {file_path}") else: print(f" ❌ {file_path} (不存在)") # 复制源码目录 print("🔧 复制关键源码目录...") src_base_dir = temp_dir / "src" src_base_dir.mkdir(exist_ok=True) for dir_path in src_dirs: src = Path(dir_path) if src.exists(): dst = src_base_dir / src.relative_to("src") dst.parent.mkdir(parents=True, exist_ok=True) shutil.copytree(src, dst, dirs_exist_ok=True) print(f" ✅ {dir_path}") else: print(f" ❌ {dir_path} (不存在)") # 创建问题重现脚本 print("🧪 创建问题重现脚本...") reproduce_script = temp_dir / "reproduce_issue.py" with open(reproduce_script, 'w', encoding='utf-8') as f: f.write('''#!/usr/bin/env python3 """ 问题重现脚本 用于重现MemOS增强版激活状态显示不一致的问题 """ import sys import os from pathlib import Path # 添加当前目录到Python路径 sys.path.insert(0, str(Path(__file__).parent)) def test_mvp_manager_status(): """测试MVP管理器状态""" print("🧪 测试MVP管理器状态...") try: from mvp_memory import MVPMemoryManager # 创建MVP管理器实例 mvp = MVPMemoryManager("./test_data", use_enhanced=True) print(f"📊 MVP管理器状态:") print(f" - use_enhanced: {mvp.use_enhanced}") print(f" - memory类型: {type(mvp.memory).__name__}") return mvp.use_enhanced except Exception as e: print(f"❌ 测试失败: {e}") return False def simulate_mcp_server(): """模拟MCP服务器行为""" print("\\n🖥️ 模拟MCP服务器...") try: from memos_mcp_server import MemOSMCPServer # 创建MCP服务器实例 server = MemOSMCPServer() print(f"📊 MCP服务器状态:") print(f" - mvp_manager.use_enhanced: {server.mvp_manager.use_enhanced}") print(f" - memory类型: {type(server.mvp_manager.memory).__name__}") # 模拟状态检查逻辑 model_info = "Qwen3-Embedding-0.6B" if server.mvp_manager.use_enhanced else "哈希向量" print(f" - 显示状态: {model_info}") return server.mvp_manager.use_enhanced except Exception as e: print(f"❌ MCP服务器测试失败: {e}") return False if __name__ == "__main__": print("🚀 开始问题重现测试...") print("=" * 60) # 测试1: 直接测试MVP管理器 mvp_status = test_mvp_manager_status() # 测试2: 模拟MCP服务器 mcp_status = simulate_mcp_server() print("\\n" + "=" * 60) print("📋 测试结果总结:") print(f" - 直接MVP管理器: {'✅ 增强版' if mvp_status else '❌ 基础版'}") print(f" - MCP服务器: {'✅ 增强版' if mcp_status else '❌ 基础版'}") if mvp_status != mcp_status: print("\\n🔥 问题确认: 状态不一致!") print(" 直接测试和MCP服务器显示不同的状态") else: print("\\n✅ 状态一致") ''') # 创建README print("📖 创建README...") readme = temp_dir / "README.md" with open(readme, 'w', encoding='utf-8') as f: f.write(f'''# MemOS增强版激活问题咨询包 ## 📋 包内容 ### 核心代码文件 - `memos_mcp_server.py` - MCP服务器主文件 - `mvp_memory.py` - MVP记忆管理器 - `enhanced_simple_memos.py` - 增强版MemOS实现 - `test_mvp_enhanced.py` - 原始测试脚本 - `reproduce_issue.py` - 问题重现脚本 ### 配置文件 (configs/) - `concurrent_config.json` - 并发配置 - `claude_desktop_config.json` - MCP客户端配置 - `.env` - 环境变量 ### 文档 (docs/) - `专家咨询-MemOS增强版激活问题分析.md` - 详细问题分析 - `QWEN_MODEL_CONFIGURATION.md` - Qwen模型配置说明 ### 源码 (src/) - `src/memos/configs/` - 配置模块 - `src/memos/embedders/` - 嵌入器模块 - `src/memos/rerankers/` - 重排器模块 ## 🚀 快速重现问题 ```bash # 1. 安装依赖 pip install openai qdrant-client # 2. 运行问题重现脚本 python reproduce_issue.py # 3. 查看详细分析 cat docs/专家咨询-MemOS增强版激活问题分析.md ``` ## 🎯 核心问题 MVP管理器在直接测试中显示use_enhanced=True,但在MCP服务器上下文中可能返回False,导致状态显示不一致。 ## 📞 联系信息 - 生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - 问题类型: 状态显示不一致 - 优先级: 高 ''') # 创建压缩包 print("🗜️ 创建压缩包...") zip_path = Path(f"/home/qqinshu/视频/专家咨询代码包/{package_name}.zip") zip_path.parent.mkdir(exist_ok=True) with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: for root, dirs, files in os.walk(temp_dir): for file in files: file_path = Path(root) / file arc_path = file_path.relative_to(temp_dir) zipf.write(file_path, arc_path) # 清理临时目录 shutil.rmtree(temp_dir) print(f"✅ 咨询包创建完成: {zip_path}") print(f"📊 文件大小: {zip_path.stat().st_size / 1024:.1f} KB") return zip_path if __name__ == "__main__": create_consultation_package()

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