Skip to main content
Glama

MemOS-MCP

by qinshu1109
Apache 2.0
3
  • Linux
  • Apple
start_memos_safe.sh4.51 kB
#!/bin/bash # MemOS 安全启动脚本 # 自动处理进程冲突和锁定问题 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${BLUE}ℹ️ $1${NC}" } log_success() { echo -e "${GREEN}✅ $1${NC}" } log_warning() { echo -e "${YELLOW}⚠️ $1${NC}" } log_error() { echo -e "${RED}❌ $1${NC}" } # 检查依赖 check_dependencies() { log_info "检查依赖..." # 检查Python if ! command -v python3 &> /dev/null; then log_error "Python3 未安装" exit 1 fi # 检查虚拟环境 if [ ! -d "../.venv" ]; then log_error "虚拟环境不存在: ../.venv" exit 1 fi log_success "依赖检查通过" } # 激活虚拟环境 activate_venv() { log_info "激活虚拟环境..." source ../.venv/bin/activate log_success "虚拟环境已激活" } # 检查并清理现有进程 cleanup_processes() { log_info "检查现有MemOS进程..." # 查找MemOS相关进程 MEMOS_PIDS=$(ps aux | grep -E "(memos_cli|memos_mcp_server|advanced_examples|usage_examples)" | grep -v grep | awk '{print $2}' || true) if [ ! -z "$MEMOS_PIDS" ]; then log_warning "发现现有MemOS进程: $MEMOS_PIDS" echo "是否终止这些进程? (y/N)" read -r response if [[ "$response" =~ ^[Yy]$ ]]; then for pid in $MEMOS_PIDS; do if kill -0 "$pid" 2>/dev/null; then log_info "终止进程: $pid" kill "$pid" 2>/dev/null || true sleep 1 # 如果进程仍在运行,强制杀死 if kill -0 "$pid" 2>/dev/null; then log_warning "强制终止进程: $pid" kill -9 "$pid" 2>/dev/null || true fi fi done log_success "已清理现有进程" else log_error "用户取消,退出" exit 1 fi else log_success "未发现冲突进程" fi } # 清理锁文件 cleanup_locks() { log_info "清理锁文件..." # 清理可能的锁文件 find . -name "*.lock" -delete 2>/dev/null || true find . -name "memos.pid" -delete 2>/dev/null || true find . -name ".lock*" -delete 2>/dev/null || true # 清理Qdrant锁 find ./memos_data/vectors -name "*.lock" -delete 2>/dev/null || true find ./mcp_memos_data/vectors -name "*.lock" -delete 2>/dev/null || true log_success "锁文件清理完成" } # 启动MemOS CLI start_cli() { log_info "启动MemOS CLI..." echo "" echo "🎉 MemOS 安全启动完成!" echo "📝 现在可以安全使用MemOS功能" echo "" python3 memos_cli.py } # 启动MCP服务器 start_mcp() { log_info "启动MemOS MCP服务器..." echo "" echo "🎉 MemOS MCP服务器安全启动完成!" echo "📝 MCP服务器正在运行,等待连接..." echo "" python3 memos_mcp_server.py } # 显示帮助 show_help() { echo "MemOS 安全启动脚本" echo "" echo "用法: $0 [选项]" echo "" echo "选项:" echo " cli 启动MemOS CLI (默认)" echo " mcp 启动MemOS MCP服务器" echo " help 显示此帮助信息" echo "" echo "功能:" echo " ✅ 自动检测和清理冲突进程" echo " ✅ 清理Qdrant锁文件" echo " ✅ 进程互斥保护" echo " ✅ 优雅的错误处理" } # 主函数 main() { echo "🚀 MemOS 安全启动脚本" echo "========================" # 进入MemOS目录 cd "$(dirname "$0")" # 解析参数 MODE="${1:-cli}" case "$MODE" in "cli") check_dependencies activate_venv cleanup_processes cleanup_locks start_cli ;; "mcp") check_dependencies activate_venv cleanup_processes cleanup_locks start_mcp ;; "help"|"-h"|"--help") show_help ;; *) log_error "未知选项: $MODE" show_help exit 1 ;; esac } # 信号处理 trap 'log_warning "收到中断信号,正在清理..."; exit 130' INT TERM # 运行主函数 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