#!/usr/bin/env python3 """ Simple verification script for Vultr MCP Server """ import sys import os import json sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) print("Vultr MCP Server - Verification Script") print("=" * 50) # 1. Check if we can import the modules print("\n1. Importing modules...") try: from src.vultr_mcp.client import VultrClient print(" ✓ VultrClient imported successfully") except ImportError as e: print(f" ✗ Failed to import VultrClient: {e}") sys.exit(1) try: from src.vultr_mcp.server import app print(" ✓ FastAPI app imported successfully") except ImportError as e: print(f" ✗ Failed to import FastAPI app: {e}") sys.exit(1) # 2. Check app structure print("\n2. Checking app structure...") if hasattr(app, 'routes'): print(f" ✓ App has {len(app.routes)} routes") else: print(" ✗ App doesn't have routes attribute") # 3. Check that we can create a VultrClient instance (will fail without API key) print("\n3. Testing VultrClient initialization...") try: # This should fail since we don't have VULTR_API_KEY client = VultrClient() print(" ✗ Unexpected: VultrClient initialized without API key") except ValueError as e: print(f" ✓ VultrClient correctly requires API key: {e}") except Exception as e: print(f" ✗ Unexpected error: {e}") # 4. Check main entry point print("\n4. Checking main entry point...") try: with open('main.py', 'r') as f: content = f.read() if 'uvicorn.run' in content: print(" ✓ main.py contains uvicorn.run") else: print(" ✗ main.py doesn't contain uvicorn.run") except Exception as e: print(f" ✗ Error reading main.py: {e}") # 5. Check requirements print("\n5. Checking requirements.txt...") required_packages = ['fastapi', 'uvicorn', 'vultr-python-client', 'python-dotenv'] missing = [] for package in required_packages: try: __import__(package.replace('-', '_')) print(f" ✓ {package} is installed") except ImportError: missing.append(package) print(f" ✗ {package} is NOT installed") if missing: print(f"\n Warning: Missing packages: {', '.join(missing)}") print(" Install with: pip install {' '.join(missing)}") print("\n" + "=" * 50) print("VERIFICATION COMPLETE") print("=" * 50) if len(missing) == 0: print("\n✅ Server implementation is ready!") print("\nTo use the Vultr MCP Server:") print("1. Get your Vultr API key from: https://my.vultr.com/settings/#settingsapi") print("2. Copy .env.example to .env and add your API key") print("3. Start the server: python main.py") print("4. Test with: python examples/basic_usage.py") print("\nThe server will run on http://localhost:8000") print("MCP endpoints will be available at:") print(" - GET /tools - List available tools") print(" - POST /tools/call - Execute Vultr operations") print(" - GET /resources - List available resources") print(" - GET /prompts - List available prompts") else: print("\n⚠️ Some packages are missing. Please install them first.")