Initial commit: MCP Hub Community Edition v3.0.0
Community edition generated from private repo via sync pipeline. Includes 9 plugins (WordPress, WooCommerce, WP Advanced, Gitea, n8n, Supabase, OpenPanel, Appwrite, Directus) with ~587 tools. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
181
scripts/setup.sh
Normal file
181
scripts/setup.sh
Normal file
@@ -0,0 +1,181 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ============================================
|
||||
# MCP Hub - Setup Script (Linux/Mac)
|
||||
# ============================================
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Helper functions
|
||||
print_info() {
|
||||
echo -e "${BLUE}ℹ ${1}${NC}"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}✓ ${1}${NC}"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}⚠ ${1}${NC}"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}✗ ${1}${NC}"
|
||||
}
|
||||
|
||||
print_header() {
|
||||
echo ""
|
||||
echo -e "${BLUE}═══════════════════════════════════════${NC}"
|
||||
echo -e "${BLUE} ${1}${NC}"
|
||||
echo -e "${BLUE}═══════════════════════════════════════${NC}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Check if command exists
|
||||
command_exists() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# Main setup
|
||||
main() {
|
||||
print_header "MCP Hub Setup"
|
||||
|
||||
# 1. Check Python version
|
||||
print_info "Checking Python version..."
|
||||
if ! command_exists python3; then
|
||||
print_error "Python 3 is not installed. Please install Python 3.11 or higher."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PYTHON_VERSION=$(python3 --version | cut -d' ' -f2)
|
||||
PYTHON_MAJOR=$(echo $PYTHON_VERSION | cut -d'.' -f1)
|
||||
PYTHON_MINOR=$(echo $PYTHON_VERSION | cut -d'.' -f2)
|
||||
|
||||
if [ "$PYTHON_MAJOR" -lt 3 ] || { [ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 11 ]; }; then
|
||||
print_error "Python 3.11+ is required. Found: $PYTHON_VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_success "Python $PYTHON_VERSION found"
|
||||
|
||||
# 2. Check Docker
|
||||
print_info "Checking Docker..."
|
||||
if command_exists docker; then
|
||||
DOCKER_VERSION=$(docker --version | cut -d' ' -f3 | sed 's/,$//')
|
||||
print_success "Docker $DOCKER_VERSION found"
|
||||
else
|
||||
print_warning "Docker not found. Docker is optional but recommended for deployment."
|
||||
fi
|
||||
|
||||
# 3. Check Docker Compose
|
||||
print_info "Checking Docker Compose..."
|
||||
if command_exists docker && docker compose version >/dev/null 2>&1; then
|
||||
COMPOSE_VERSION=$(docker compose version --short)
|
||||
print_success "Docker Compose $COMPOSE_VERSION found"
|
||||
else
|
||||
print_warning "Docker Compose not found. Required for Docker deployment."
|
||||
fi
|
||||
|
||||
# 4. Create virtual environment
|
||||
print_info "Creating virtual environment..."
|
||||
if [ -d "venv" ]; then
|
||||
print_warning "Virtual environment already exists. Skipping creation."
|
||||
else
|
||||
python3 -m venv venv
|
||||
print_success "Virtual environment created"
|
||||
fi
|
||||
|
||||
# 5. Activate virtual environment
|
||||
print_info "Activating virtual environment..."
|
||||
source venv/bin/activate
|
||||
print_success "Virtual environment activated"
|
||||
|
||||
# 6. Upgrade pip
|
||||
print_info "Upgrading pip..."
|
||||
pip install --upgrade pip >/dev/null 2>&1
|
||||
print_success "pip upgraded"
|
||||
|
||||
# 7. Install dependencies
|
||||
print_info "Installing dependencies..."
|
||||
if [ -f "requirements.txt" ]; then
|
||||
pip install -r requirements.txt >/dev/null 2>&1
|
||||
print_success "Dependencies installed"
|
||||
else
|
||||
print_error "requirements.txt not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 8. Install development dependencies
|
||||
print_info "Installing development dependencies..."
|
||||
pip install pytest pytest-asyncio pytest-cov pytest-mock black ruff mypy >/dev/null 2>&1
|
||||
print_success "Development dependencies installed"
|
||||
|
||||
# 9. Setup environment file
|
||||
print_info "Setting up environment file..."
|
||||
if [ -f ".env" ]; then
|
||||
print_warning ".env file already exists. Skipping creation."
|
||||
print_warning "Please ensure your .env file is properly configured."
|
||||
else
|
||||
if [ -f ".env.example" ]; then
|
||||
cp .env.example .env
|
||||
print_success ".env file created from .env.example"
|
||||
print_warning "Please edit .env file with your WordPress credentials."
|
||||
else
|
||||
print_error ".env.example not found"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 10. Create logs directory
|
||||
print_info "Creating logs directory..."
|
||||
mkdir -p logs
|
||||
print_success "Logs directory ready"
|
||||
|
||||
# 11. Run tests (optional)
|
||||
print_info "Running tests..."
|
||||
if pytest --version >/dev/null 2>&1; then
|
||||
if pytest -q 2>&1 | tail -1 | grep -q "passed"; then
|
||||
print_success "All tests passed!"
|
||||
else
|
||||
print_warning "Some tests failed. Please check the output above."
|
||||
fi
|
||||
else
|
||||
print_warning "pytest not available. Skipping tests."
|
||||
fi
|
||||
|
||||
# 12. Final instructions
|
||||
print_header "Setup Complete!"
|
||||
|
||||
echo -e "${GREEN}✓ Setup completed successfully!${NC}"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo ""
|
||||
echo "1. Edit the .env file with your credentials:"
|
||||
echo -e " ${BLUE}nano .env${NC}"
|
||||
echo ""
|
||||
echo "2. Activate the virtual environment:"
|
||||
echo -e " ${BLUE}source venv/bin/activate${NC}"
|
||||
echo ""
|
||||
echo "3. Run the MCP server:"
|
||||
echo -e " ${BLUE}python src/main.py${NC}"
|
||||
echo ""
|
||||
echo "4. Or deploy with Docker:"
|
||||
echo -e " ${BLUE}docker compose up -d${NC}"
|
||||
echo ""
|
||||
echo "5. Run tests:"
|
||||
echo -e " ${BLUE}pytest --cov${NC}"
|
||||
echo ""
|
||||
echo "For more information, visit:"
|
||||
echo -e "${BLUE}https://github.com/mcphub/mcphub${NC}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Run main function
|
||||
main
|
||||
Reference in New Issue
Block a user