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
#!/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 "$@"