Skip to main content
Glama
test_blender.sh4.99 kB
#!/bin/bash # Quick test runner for Blender MCP development # Usage: ./scripts/test_blender.sh [command] set -e PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$PROJECT_ROOT" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color print_usage() { echo "Usage: $0 [command]" echo "" echo "Commands:" echo " test - Run basic connection tests" echo " interactive - Start interactive client" echo " dev - Start server with MCP Inspector" echo " run - Run server directly (STDIO)" echo " http - Run server as HTTP service for AI APIs" echo " ai - Start AI-integrated client (requires API keys)" echo " client - Run custom test client" echo " check - Check if Blender addon is running" echo "" } check_blender() { echo -e "${BLUE}🔍 Checking Blender addon connection...${NC}" uv run python -c " import socket import json import time def check_blender_running(port=9876): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(2.0) sock.connect(('localhost', port)) # Send ping ping_cmd = json.dumps({'type': 'ping', 'params': {}}) sock.sendall(ping_cmd.encode('utf-8')) # Get response response = sock.recv(8192) sock.close() if response: print('✅ Blender addon is running on port', port) return True except Exception as e: print('❌ Blender addon not accessible:', str(e)) print(' Make sure:') print(' 1. Blender is open') print(' 2. Lightfast MCP addon is enabled') print(' 3. MCP Server is started in Blender') return False check_blender_running() " } run_tests() { echo -e "${BLUE}🧪 Running Blender MCP tests...${NC}" echo -e "${GREEN}Running connection demo...${NC}" uv run python examples/demo_ai_integration.py } run_interactive() { echo -e "${BLUE}🚀 Starting interactive Blender MCP client...${NC}" echo -e "${GREEN}Starting MCP Inspector CLI for interactive testing...${NC}" run_inspector_cli } run_dev() { echo -e "${BLUE}🔧 Starting Blender MCP server with inspector...${NC}" uv run fastmcp dev src/lightfast_mcp/servers/blender_mcp_server.py } run_server() { echo -e "${BLUE}⚡ Running Blender MCP server directly...${NC}" uv run python -m lightfast_mcp.servers.blender_mcp_server } run_inspector_cli() { echo -e "${BLUE}🔍 Starting MCP Inspector CLI...${NC}" uv run npx @modelcontextprotocol/inspector --cli uv run python -m lightfast_mcp.servers.blender_mcp_server } run_http_server() { echo -e "${BLUE}🌐 Starting Blender MCP HTTP server for AI APIs...${NC}" echo -e "${YELLOW}Note: Use 'uv run lightfast-mcp-orchestrator start' for the new modular system${NC}" # Legacy HTTP server functionality - consider using the manager instead uv run python -c " from lightfast_mcp.servers.blender.server import BlenderMCPServer from lightfast_mcp.core.base_server import ServerConfig config = ServerConfig( name='BlenderMCP-HTTP', description='Blender MCP server for AI integration', host='127.0.0.1', port=8000, transport='streamable-http', path='/mcp', config={'type': 'blender'} ) server = BlenderMCPServer(config) print('🚀 Starting Blender MCP server as HTTP service...') print('📡 Server will be available at: http://localhost:8000/mcp') print('🔧 Make sure Blender is running with the addon active!') server.run() " } run_ai_client() { echo -e "${BLUE}🤖 Starting AI-integrated Blender client...${NC}" if [ ! -f .env ]; then echo -e "${YELLOW}⚠️ No .env file found. Please create one with your API keys:${NC}" echo "cp env_template.txt .env" echo "# Then edit .env with your actual API keys" return 1 fi echo -e "${GREEN}Using multi-server AI client (recommended)${NC}" echo -e "${YELLOW}Note: Using examples/ai_blender_client.py for single-server demo${NC}" uv run python examples/ai_blender_client.py } case "${1:-}" in "test") check_blender && run_tests ;; "interactive") check_blender && run_interactive ;; "dev") run_dev ;; "run") run_server ;; "http") run_http_server ;; "ai") run_ai_client ;; "client") run_tests ;; "check") check_blender ;; "inspector") run_inspector_cli ;; "help"|"-h"|"--help") print_usage ;; "") echo -e "${YELLOW}No command specified. Running basic tests...${NC}" check_blender && run_tests ;; *) echo -e "${RED}Unknown command: $1${NC}" print_usage exit 1 ;; esac

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/lightfastai/lightfast-mcp'

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