Skip to main content
Glama

Vibe Coder MCP

by freshtechbro
setup.sh19.2 kB
#!/bin/bash # Setup script for Vibe Coder MCP Server (Production Ready v0.3.5) set -e # Exit immediately if a command exits with a non-zero status. # Color codes for better output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Function to print colored output print_status() { echo -e "${GREEN}✓${NC} $1" } print_warning() { echo -e "${YELLOW}⚠${NC} $1" } print_error() { echo -e "${RED}✗${NC} $1" } print_info() { echo -e "${BLUE}ℹ${NC} $1" } echo "Setting up Vibe Coder MCP Server v0.3.5..." echo "==================================================" echo "Production-ready MCP server with complete agent integration" echo "Multi-transport support • Real-time notifications • Dynamic port allocation" echo "Agent coordination • Task management • Code analysis • Research • Context curation" echo "==================================================" # Check if npm is installed echo "Checking if npm is installed..." if ! command -v npm &> /dev/null; then print_error "npm is not installed. Please install Node.js and npm first." echo "Visit: https://nodejs.org/" exit 1 fi print_status "npm is installed." # Check Node.js version (require v20+) echo "Checking Node.js version..." if ! command -v node &> /dev/null; then print_error "Node.js is not installed. Please install Node.js first." echo "Visit: https://nodejs.org/" exit 1 fi node_version=$(node -v | cut -d "v" -f 2 | cut -d "." -f 1) if [ "$node_version" -lt 20 ]; then print_error "Node.js v20+ is required (found v$(node -v)). Please upgrade Node.js." echo "Visit: https://nodejs.org/" exit 1 fi print_status "Node.js version check passed (found v$(node -v))." # Check disk space echo "Checking available disk space..." if command -v df &> /dev/null; then if [[ "$OSTYPE" == "darwin"* ]]; then # macOS uses different df syntax available_space=$(df -m . | awk 'NR==2 {print $4}') else # Linux available_space=$(df -BM . | awk 'NR==2 {print $4}' | sed 's/M//') fi if [ -n "$available_space" ] && [ "$available_space" -lt 500 ]; then print_warning "Less than 500MB free disk space available." print_warning "Installation may fail. Please free up disk space." fi else print_warning "Cannot check disk space. Ensure you have at least 500MB free." fi # Check memory availability echo "Checking system memory..." if [[ "$OSTYPE" == "darwin"* ]]; then # macOS total_memory=$(sysctl -n hw.memsize | awk '{print int($1/1024/1024)}') elif [[ "$OSTYPE" == "linux-gnu"* ]]; then # Linux total_memory=$(grep MemTotal /proc/meminfo | awk '{print int($2/1024)}') else total_memory=0 fi if [ "$total_memory" -gt 0 ] && [ "$total_memory" -lt 4096 ]; then print_warning "Less than 4GB RAM detected (${total_memory}MB)." print_warning "Large projects may experience performance issues." fi # Check network connectivity echo "Checking network connectivity..." if ! ping -c 1 -W 1 registry.npmjs.org &> /dev/null && ! curl -s --head registry.npmjs.org &> /dev/null; then print_warning "Cannot reach npm registry. Check internet connection." print_warning "Installation may fail without network access." fi # Check git configuration echo "Checking git configuration..." if ! git config --get user.name &> /dev/null; then print_warning "Git user.name not configured. Consider running:" echo " git config --global user.name \"Your Name\"" fi if ! git config --get user.email &> /dev/null; then print_warning "Git user.email not configured. Consider running:" echo " git config --global user.email \"your.email@example.com\"" fi # Check npm cache and clean if needed echo "Checking npm cache health..." if ! npm cache verify &> /dev/null; then print_warning "npm cache issues detected. Cleaning cache..." npm cache clean --force fi # Install dependencies echo "Installing dependencies..." if ! npm install; then print_error "npm install failed. Check npm logs above." echo "Troubleshooting steps:" echo " 1. Try: npm cache clean --force && npm install" echo " 2. Delete node_modules and package-lock.json, then run npm install" echo " 3. Check your internet connection" echo " 4. Ensure you have sufficient disk space" exit 1 fi print_status "Dependencies installed successfully." # Verify critical dependencies echo "Verifying critical dependencies..." missing_deps=() # Core MCP and TypeScript dependencies if ! npm list @modelcontextprotocol/sdk &> /dev/null; then missing_deps+=("@modelcontextprotocol/sdk") fi if ! npm list typescript &> /dev/null; then missing_deps+=("typescript") fi if ! npm list dotenv &> /dev/null; then missing_deps+=("dotenv") fi if ! npm list vitest &> /dev/null; then missing_deps+=("vitest") fi if ! npm list zod &> /dev/null; then missing_deps+=("zod") fi if ! npm list yaml &> /dev/null; then missing_deps+=("yaml") fi # Runtime server dependencies if ! npm list express &> /dev/null; then missing_deps+=("express") fi if ! npm list cors &> /dev/null; then missing_deps+=("cors") fi if ! npm list axios &> /dev/null; then missing_deps+=("axios") fi if ! npm list ws &> /dev/null; then missing_deps+=("ws") fi # File system and utilities if ! npm list fs-extra &> /dev/null; then missing_deps+=("fs-extra") fi if ! npm list uuid &> /dev/null; then missing_deps+=("uuid") fi if ! npm list pino &> /dev/null; then missing_deps+=("pino") fi # Code analysis dependencies if ! npm list web-tree-sitter &> /dev/null; then missing_deps+=("web-tree-sitter") fi if ! npm list dependency-cruiser &> /dev/null; then missing_deps+=("dependency-cruiser") fi if [ ${#missing_deps[@]} -gt 0 ]; then print_warning "Some critical dependencies are missing:" for dep in "${missing_deps[@]}"; do echo " - $dep" done print_warning "This may cause issues. Consider running: npm install" else print_status "All critical dependencies verified." fi # Create required VibeCoderOutput directories (for tools that save files) echo "Creating required VibeCoderOutput directories..." mkdir -p VibeCoderOutput # Ensure base dir exists # Core tool output directories (based on actual tools in src/tools/): declare -a tool_dirs=( "research-manager" "rules-generator" "prd-generator" "user-stories-generator" "task-list-generator" "fullstack-starter-kit-generator" "workflow-runner" "code-map-generator" "vibe-task-manager" "context-curator" "job-result-retriever" "agent-registry" "agent-tasks" "agent-response" "generated_task_lists" ) for dir in "${tool_dirs[@]}"; do if mkdir -p "VibeCoderOutput/$dir"; then print_info "Created directory: VibeCoderOutput/$dir" else print_warning "Failed to create directory: VibeCoderOutput/$dir" fi done print_status "Output directories created." # Build TypeScript echo "Building TypeScript project..." if ! npm run build; then print_error "TypeScript build failed (npm run build). Check compiler output above." echo "Common fixes:" echo " - Check for TypeScript syntax errors with: npm run lint" echo " - Ensure all dependencies are installed" echo " - Check tsconfig.json for configuration issues" echo " - Try cleaning and rebuilding: rm -rf build && npm run build" exit 1 fi print_status "TypeScript project built successfully." # Verify build output echo "Verifying build output..." required_files=( "build/index.js" "build/server.js" "build/logger.js" ) missing_files=() for file in "${required_files[@]}"; do if [ ! -f "$file" ]; then missing_files+=("$file") fi done if [ ${#missing_files[@]} -gt 0 ]; then print_error "Build verification failed. Missing files:" for file in "${missing_files[@]}"; do echo " - $file" done print_error "Build may have failed silently. Check TypeScript compilation." exit 1 fi print_status "Build verification complete." # Ensure the built file is executable echo "Setting executable permissions for build files..." chmod +x build/index.js if [ -f "build/server.js" ]; then chmod +x build/server.js fi print_status "Executable permissions set." # Verify configuration files echo "Verifying configuration files..." config_files=( "llm_config.json:LLM model mappings" "mcp-config.json:MCP tool configurations" "workflows.json:Workflow definitions" "tsconfig.json:TypeScript configuration" "package.json:Project dependencies" ) missing_configs=() for config_entry in "${config_files[@]}"; do file="${config_entry%%:*}" description="${config_entry##*:}" if [ ! -f "$file" ]; then missing_configs+=("$file ($description)") else print_info "Found: $file" fi done if [ ${#missing_configs[@]} -gt 0 ]; then print_error "Missing required configuration files:" for config in "${missing_configs[@]}"; do echo " - $config" done exit 1 fi print_status "Configuration files verified." # Check if .env file exists, copy from .env.example if not echo "Checking for .env file..." if [ ! -f .env ]; then if [ -f .env.example ]; then echo "Creating .env file from template (.env.example)..." cp .env.example .env print_warning ".env file created from template." print_warning "You MUST edit .env to add your OPENROUTER_API_KEY before starting the server." else print_error ".env.example template is missing. Cannot create .env file." echo "Please create .env manually with your OPENROUTER_API_KEY." exit 1 fi else print_status ".env file already exists." # Validate .env file has required variables if ! grep -q "OPENROUTER_API_KEY" .env; then print_warning ".env file exists but may be missing OPENROUTER_API_KEY." print_warning "Please ensure .env contains all required environment variables." fi fi # Run post-setup validation echo "Running post-setup validation..." # Test TypeScript compilation if npm run build &> /dev/null; then print_status "TypeScript compilation test passed." else print_warning "TypeScript compilation test failed. There may be build issues." fi # Test basic npm scripts if npm run lint &> /dev/null; then print_status "Linting test passed." else print_warning "Linting test failed. There may be code quality issues." fi # Check if server can start (basic syntax check) if timeout 5s node build/index.js --help &> /dev/null; then print_status "Server startup test passed." else print_warning "Server startup test failed. Check for runtime issues." fi # Test CLI interface echo "Testing CLI interface..." if timeout 5s node build/unified-cli.js --help &> /dev/null; then print_status "CLI interface test passed." else print_warning "CLI interface test failed. Check for CLI runtime issues." fi # Test setup wizard (dry run) if timeout 5s node -e "import('./build/setup-wizard.js').then(m => console.log('Setup wizard loaded'))" &> /dev/null; then print_status "Setup wizard validation passed." else print_warning "Setup wizard validation failed. Check for setup wizard issues." fi # Validate directory structure echo "Validating directory structure..." if [ -d "VibeCoderOutput" ] && [ -d "build" ] && [ -d "src" ]; then print_status "Directory structure validation passed." else print_warning "Directory structure validation failed." fi echo "" print_status "Setup completed successfully!" echo "==================================================" echo "Vibe Coder MCP Server v2.8 (Production Ready) is now set up with complete agent integration:" echo "" echo "📋 PLANNING & DOCUMENTATION TOOLS:" echo " - Research Manager (research-manager) - AI-powered research with Perplexity Sonar" echo " - PRD Generator (generate-prd) - Comprehensive Product Requirements Documents" echo " - User Stories Generator (generate-user-stories) - Agile user stories with acceptance criteria" echo " - Task List Generator (generate-task-list) - Development task breakdown with dependencies" echo " - Rules Generator (generate-rules) - Development guidelines and coding standards" echo "" echo "🏗️ PROJECT SCAFFOLDING & CODE ANALYSIS:" echo " - Fullstack Starter Kit Generator (generate-fullstack-starter-kit) - Dynamic LLM-generated project scaffolding" echo " - Code Map Generator (map-codebase) - Semantic codebase analysis (30+ languages, 95% token reduction)" echo " - Context Curator (curate-context) - Intelligent context curation with chunked processing and relevance scoring" echo "" echo "🤖 TASK MANAGEMENT & AUTOMATION:" echo " - Vibe Task Manager (vibe-task-manager) - Production-ready AI-agent-native task management with RDD methodology" echo " * Natural language processing with 6 core intents and multi-strategy recognition" echo " * Artifact parsing for PRD and task list integration from other Vibe Coder tools" echo " * Session persistence and orchestration workflows with comprehensive CLI" echo " * Multi-agent coordination with capability mapping and real-time status synchronization" echo " * 99.9% test success rate with zero mock code policy" echo " - Workflow Runner (run-workflow) - Predefined development workflow execution" echo " - Job Result Retriever (get-job-result) - Asynchronous task result management with real-time polling" echo "" echo "🔗 AGENT COORDINATION & COMMUNICATION:" echo " - Agent Registry (register-agent) - Register AI agents for task coordination" echo " - Agent Tasks (get-agent-tasks) - Retrieve assigned tasks for agents" echo " - Agent Response (submit-task-response) - Submit completed task results" echo " - Process Request (process-request) - Unified request processing with semantic routing" echo "" echo "🔧 ADVANCED FEATURES:" echo " - Complete Agent Task Integration with unified payload format and real-time status synchronization" echo " - Multi-Transport Support with dynamic port allocation and conflict resolution" echo " - SSE Task Notifications with real-time assignment and completion events" echo " - Advanced Error Recovery with automatic retry, escalation, and pattern analysis" echo " - Semantic Routing & Sequential Thinking for intelligent tool selection" echo " - Asynchronous Job Handling with SSE notifications for long-running tasks" echo " - Multi-language support (30+ programming languages)" echo " - Agent coordination and autonomous development workflows" echo " - Unified communication protocol (stdio/SSE/WebSocket/HTTP)" echo " - Production-ready task management with zero mock code (99.9% test success rate)" echo " - Real-time agent orchestration and task assignment" echo " - Enhanced JSON parsing with 6-strategy progressive pipeline" echo " - Memory optimization with sophisticated caching" echo " - Security boundaries with separate read/write path validation" echo " - Schema-aware LLM integration with Zod validation" echo " - Dynamic template generation replacing static YAML templates" echo " - Chunked processing for large codebases (>40 files)" echo " - Enhanced project type detection with multi-language intelligence" echo "" echo "" echo -e "${YELLOW}⚠️ CRITICAL NEXT STEPS:${NC}" echo "" echo -e "${RED}1. REQUIRED: Configure Environment Variables${NC}" echo " - Open .env in a text editor" echo " - Replace 'YOUR_OPENROUTER_API_KEY_HERE' with your actual OpenRouter API key" echo " - Optionally set other variables like LOG_LEVEL, NODE_ENV, etc." echo " - Save the file" echo "" echo -e "${BLUE}2. OPTIONAL: Review Configuration Files${NC}" echo " - llm_config.json: LLM model mappings for different tasks" echo " - mcp-config.json: MCP tool configurations and routing patterns" echo " - workflows.json: Predefined workflow definitions" echo "" echo -e "${GREEN}3. START THE SERVER OR USE CLI${NC}" echo " - For MCP Server (stdio): npm start" echo " - For web clients (SSE): npm run start:sse" echo " - For CLI interface: node build/unified-cli.js" echo " - For interactive setup: node build/unified-cli.js --setup" echo " - For development with hot reload: npm run dev" echo " - For development with SSE: npm run dev:sse" echo "" echo -e "${BLUE}4. CONFIGURE YOUR MCP CLIENT${NC}" echo " - Add server configuration to your MCP client settings" echo " - Use the paths shown in README.md for your specific client" echo " - Restart your MCP client after configuration" echo "" echo -e "${GREEN}5. VALIDATE THE SETUP${NC}" echo " - Run tests: npm test" echo " - Test specific tools: npm run test:unit" echo " - Run E2E tests: npm run test:e2e" echo " - Check test coverage: npm run coverage" echo "" echo -e "${BLUE}6. TEST TOOL FUNCTIONALITY${NC}" echo " - CLI Mode: node build/unified-cli.js \"research modern JavaScript frameworks\"" echo " - CLI Mode: node build/unified-cli.js \"create a PRD for a todo app\"" echo " - CLI Mode: node build/unified-cli.js \"map the codebase structure\"" echo " - MCP Mode: 'Research modern JavaScript frameworks' (via MCP client)" echo " - Task Manager: 'vibe-task-manager create project \"Test Project\" \"Testing setup\"'" echo " - Context Curation: 'curate-context' for intelligent context packages" echo " - Try: 'generate-fullstack-starter-kit' for dynamic project scaffolding" echo "" echo -e "${YELLOW}7. ADVANCED USAGE${NC}" echo " - Use 'get-job-result <jobId>' to retrieve outcomes from long-running tasks" echo " - Register agents for coordination: 'register-agent' with capabilities" echo " - Use agent tools for distributed task execution and coordination" echo " - Configure security settings via environment variables" echo "" echo -e "${BLUE}📚 DOCUMENTATION${NC}" echo " - README.md: Complete setup and usage guide" echo " - VIBE_CODER_MCP_SYSTEM_INSTRUCTIONS.md: System prompt documentation" echo " - docs/: Additional documentation and examples" echo " - Individual tool READMEs in src/tools/*/README.md" echo "" echo -e "${GREEN}🧪 TESTING & DEBUGGING${NC}" echo " - Run all tests: npm test" echo " - Run unit tests only: npm run test:unit" echo " - Run integration tests: npm run test:integration" echo " - Run E2E tests: npm run test:e2e" echo " - Run agent integration tests: npm run test:agent-integration" echo " - Run multi-transport tests: npm run test:multi-transport" echo " - Run agent response tests: npm run test:agent-response" echo " - Run full integration suite: npm run test:full-integration" echo " - Check coverage: npm run coverage" echo " - Lint code: npm run lint" echo "" echo -e "${YELLOW}🔧 TROUBLESHOOTING${NC}" echo " - If build fails: rm -rf build && npm run build" echo " - If dependencies fail: rm -rf node_modules package-lock.json && npm install" echo " - If tests fail: Check .env file has OPENROUTER_API_KEY set" echo " - For permission issues: chmod +x setup.sh && ./setup.sh" echo " - Check logs in server.log for runtime issues" echo ""

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/freshtechbro/vibe-coder-mcp'

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