start_server.pyā¢3.21 kB
#!/usr/bin/env python3
"""
Startup script for Skulabs MCP Server
Handles environment setup and provides helpful startup information
"""
import os
import sys
import asyncio
from dotenv import load_dotenv
def check_environment():
"""Check and setup environment"""
print("š Starting Skulabs MCP Server")
print("=" * 50)
# Load environment variables
load_dotenv()
# Check required environment variables
api_key = os.getenv("SKULABS_API_KEY")
if not api_key:
print("ā SKULABS_API_KEY not found!")
print("\nPlease:")
print("1. Copy env.example to .env")
print("2. Add your Skulabs API key to .env")
print("3. Run this script again")
print("\nTo get your API key:")
print("1. Log into Skulabs")
print("2. Go to Settings ā Advanced ā API")
print("3. Generate a new API key")
return False
print("ā
Environment configured")
print(f"š API Key: {api_key[:8]}...{api_key[-4:]}")
print(f"š Base URL: {os.getenv('SKULABS_BASE_URL', 'https://api.skulabs.com')}")
return True
def print_usage_info():
"""Print usage information"""
print("\nš Usage Information:")
print("-" * 30)
print("This MCP server exposes Skulabs API as tools for AI agents.")
print("\nAvailable tool categories:")
print("š¦ Inventory Management (get_inventory, update_inventory)")
print("š Product Management (get_products, create_product)")
print("š Order Management (get_orders, create_order, update_order_status)")
print("š„ Customer Management (get_customers, create_customer)")
print("š Analytics (get_sales_summary, get_inventory_summary)")
print("\nš Connecting AI Agents:")
print("- Retell AI: Add MCP server URL in voice agent config")
print("- Claude Desktop: Add to mcpServers in config")
print("- Other MCP clients: Connect to this server endpoint")
def print_deployment_info():
"""Print deployment information"""
print("\nš Deployment Options:")
print("-" * 30)
print("1. Railway (Recommended):")
print(" - Push to GitHub")
print(" - Connect Railway to repo")
print(" - Set SKULABS_API_KEY in Railway variables")
print("\n2. Docker:")
print(" - docker build -t skulabs-mcp .")
print(" - docker run -e SKULABS_API_KEY=your_key skulabs-mcp")
print("\n3. Local Development:")
print(" - python skulabs_mcp_server.py")
async def main():
"""Main startup function"""
if not check_environment():
sys.exit(1)
print_usage_info()
print_deployment_info()
print("\n" + "=" * 50)
print("šÆ Starting MCP Server...")
print("Press Ctrl+C to stop")
print("=" * 50)
try:
# Import and run the main server
from skulabs_mcp_server import main as server_main
await server_main()
except KeyboardInterrupt:
print("\nš Server stopped by user")
except Exception as e:
print(f"\nā Server error: {e}")
print("Check your API key and network connection")
sys.exit(1)
if __name__ == "__main__":
asyncio.run(main())