summaryrefslogtreecommitdiff
path: root/start_mcp.sh
blob: 30cc24ebf8d679cb45c2ef0c2af43cad25a103ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
# MCP server 启动 wrapper:检测 tmux session name 并传给 python
# 用进程树反查 pane PID → session name

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

# 检测 session name: 遍历 PID 往上找
detect_session() {
    local check_pid=$$
    local pane_pids
    pane_pids=$(tmux list-panes -a -F "#{pane_pid} #{session_name}" 2>/dev/null) || return

    for i in $(seq 1 50); do
        local match
        match=$(echo "$pane_pids" | grep "^${check_pid} " | head -1 | cut -d' ' -f2)
        if [ -n "$match" ]; then
            echo "$match"
            return
        fi
        # 获取 PPID
        local ppid
        ppid=$(awk '{print $4}' /proc/${check_pid}/stat 2>/dev/null) || return
        [ "$ppid" -le 1 ] && return
        check_pid=$ppid
    done
}

export CLAUDE_SESSION_NAME=$(detect_session)
exec python3 "$SCRIPT_DIR/mcp_lab_worker.py"