96 lines
3.1 KiB
Python
96 lines
3.1 KiB
Python
#!/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.")
|
|
|