#!/bin/bash
set -e # Exit on error
DPI=96
RES_AND_DEPTH=${WIDTH}x${HEIGHT}x24
# Function to check if Xvfb is already running
check_xvfb_running() {
if [ -e /tmp/.X${DISPLAY_NUM}-lock ]; then
return 0 # Xvfb is already running
else
return 1 # Xvfb is not running
fi
}
# Function to check if Xvfb is ready
wait_for_xvfb() {
local timeout=10
local start_time=$(date +%s)
while ! xdpyinfo >/dev/null 2>&1; do
if [ $(($(date +%s) - start_time)) -gt $timeout ]; then
echo "Xvfb failed to start within $timeout seconds" >&2
return 1
fi
sleep 0.1
done
return 0
}
# Check if Xvfb is already running
if check_xvfb_running; then
echo "Xvfb is already running on display ${DISPLAY}"
exit 0
fi
# Start Xvfb
Xvfb $DISPLAY -ac -screen 0 $RES_AND_DEPTH -retro -dpi $DPI -nolisten tcp -nolisten unix &
XVFB_PID=$!
# Wait for Xvfb to start
if wait_for_xvfb; then
echo "Xvfb started successfully on display ${DISPLAY}"
echo "Xvfb PID: $XVFB_PID"
else
echo "Xvfb failed to start"
kill $XVFB_PID
exit 1
fi
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/Arize-ai/phoenix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server