Skip to main content
Glama
setup.sh6.09 kB
#!/bin/bash # SWE-bench + ACF MCP Integration Setup Script # This script sets up the complete environment for running SWE-bench with ACF MCP set -e # Exit on error echo "================================================" echo "SWE-bench + ACF MCP Integration Setup" echo "================================================" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Function to print colored output print_status() { echo -e "${GREEN}[✓]${NC} $1" } print_error() { echo -e "${RED}[✗]${NC} $1" } print_warning() { echo -e "${YELLOW}[!]${NC} $1" } # Check prerequisites echo -e "\n${GREEN}Checking prerequisites...${NC}" # Check Python version if command -v python3 &> /dev/null; then PYTHON_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') if (( $(echo "$PYTHON_VERSION >= 3.8" | bc -l) )); then print_status "Python $PYTHON_VERSION found" else print_error "Python 3.8+ required, found $PYTHON_VERSION" exit 1 fi else print_error "Python 3 not found" exit 1 fi # Check Node.js version if command -v node &> /dev/null; then NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) if [ "$NODE_VERSION" -ge 18 ]; then print_status "Node.js $(node -v) found" else print_error "Node.js 18+ required, found $(node -v)" exit 1 fi else print_error "Node.js not found" exit 1 fi # Check Docker if command -v docker &> /dev/null; then if docker ps &> /dev/null; then print_status "Docker is installed and running" else print_warning "Docker is installed but not running or requires sudo" print_warning "Please ensure Docker is running and you have permissions" fi else print_error "Docker not found. Please install Docker first." exit 1 fi # Check Git if command -v git &> /dev/null; then print_status "Git found" else print_error "Git not found" exit 1 fi # Create virtual environment echo -e "\n${GREEN}Setting up Python environment...${NC}" if [ ! -d "venv" ]; then python3 -m venv venv print_status "Created virtual environment" else print_status "Virtual environment already exists" fi # Activate virtual environment source venv/bin/activate print_status "Activated virtual environment" # Upgrade pip pip install --upgrade pip > /dev/null 2>&1 print_status "Upgraded pip" # Install Python dependencies echo -e "\n${GREEN}Installing Python dependencies...${NC}" pip install -r requirements.txt print_status "Installed Python requirements" # Clone SWE-bench if not exists echo -e "\n${GREEN}Setting up SWE-bench...${NC}" if [ ! -d "SWE-bench" ]; then git clone https://github.com/princeton-nlp/SWE-bench.git print_status "Cloned SWE-bench repository" else print_status "SWE-bench repository already exists" cd SWE-bench git pull cd .. print_status "Updated SWE-bench repository" fi # Install SWE-bench cd SWE-bench pip install -e . cd .. print_status "Installed SWE-bench" # Setup ACF MCP server echo -e "\n${GREEN}Setting up ACF MCP server...${NC}" cd .. if [ ! -d "node_modules" ]; then npm install print_status "Installed ACF MCP dependencies" else print_status "ACF MCP dependencies already installed" fi # Create necessary directories cd swebench-integration mkdir -p results logs metrics print_status "Created output directories" # Create .env file if not exists if [ ! -f "../.env" ]; then cp ../.env.example ../.env print_warning "Created .env file from template. Please update with your API keys." else print_status ".env file already exists" fi # Test ACF MCP server echo -e "\n${GREEN}Testing ACF MCP server...${NC}" # Start server in background cd .. npm run start:mcp > /dev/null 2>&1 & SERVER_PID=$! sleep 5 # Check if server is running if ps -p $SERVER_PID > /dev/null; then print_status "ACF MCP server started successfully (PID: $SERVER_PID)" # Stop the test server kill $SERVER_PID 2>/dev/null || true print_status "Stopped test server" else print_error "Failed to start ACF MCP server" print_warning "Please check the server logs" fi cd swebench-integration # Create convenience scripts echo -e "\n${GREEN}Creating convenience scripts...${NC}" # Create start script cat > start_server.sh << 'EOF' #!/bin/bash # Start ACF MCP server cd .. npm run start:mcp EOF chmod +x start_server.sh print_status "Created start_server.sh" # Create run script cat > run.sh << 'EOF' #!/bin/bash # Run SWE-bench evaluation with ACF MCP source venv/bin/activate python run_evaluation.py "$@" EOF chmod +x run.sh print_status "Created run.sh" # Create test script cat > test.sh << 'EOF' #!/bin/bash # Test single instance source venv/bin/activate python test_single.py "$@" EOF chmod +x test.sh print_status "Created test.sh" # Print summary echo -e "\n${GREEN}================================================${NC}" echo -e "${GREEN}Setup Complete!${NC}" echo -e "${GREEN}================================================${NC}" echo -e "\n${YELLOW}Next Steps:${NC}" echo "1. Update ../.env with your API keys (if needed)" echo "2. Start the ACF MCP server:" echo " ./start_server.sh" echo "" echo "3. In another terminal, run evaluations:" echo " ./run.sh --max-instances 5" echo "" echo "4. Or test a single instance:" echo " ./test.sh sympy__sympy-20590 --verbose" echo "" echo "5. View results in:" echo " - results/ (evaluation outputs)" echo " - logs/ (execution logs)" echo " - metrics/ (performance metrics)" echo -e "\n${GREEN}Documentation:${NC}" echo "- README.md for detailed usage" echo "- config.yaml for configuration options" echo "- ../docs/ for ACF documentation" echo -e "\n${YELLOW}Tips:${NC}" echo "- Use --verbose flag for detailed output" echo "- Start with SWE-bench_Lite for faster testing" echo "- Monitor Docker resource usage" echo "- Check ACF task dashboard for progress" # Deactivate virtual environment deactivate echo -e "\n${GREEN}Happy coding! 🚀${NC}"

Latest Blog Posts

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/FutureAtoms/agentic-control-framework'

If you have feedback or need assistance with the MCP directory API, please join our Discord server