Spaces:
Running on Zero
Running on Zero
| #!/usr/bin/env python3 | |
| """ | |
| Run script for PDF Parser MCP Server | |
| """ | |
| import asyncio | |
| import sys | |
| from pathlib import Path | |
| import logging | |
| from dotenv import load_dotenv | |
| import os | |
| # Add current directory to path | |
| sys.path.insert(0, str(Path(__file__).parent)) | |
| # Load environment variables | |
| load_dotenv() | |
| # Configure logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| logger = logging.getLogger(__name__) | |
| async def run_mcp_server(): | |
| """Run the MCP server""" | |
| try: | |
| from mcp_server import mcp | |
| logger.info("Starting MCP server...") | |
| await mcp.run() | |
| except Exception as e: | |
| logger.error(f"Error running MCP server: {str(e)}") | |
| raise | |
| def run_fastapi_server(): | |
| """Run the FastAPI server""" | |
| try: | |
| import uvicorn | |
| from main import app | |
| port = int(os.getenv("PORT", "8000")) | |
| host = os.getenv("HOST", "0.0.0.0") | |
| logger.info(f"Starting FastAPI server on {host}:{port}") | |
| uvicorn.run("main:app", host=host, port=port, log_level="info") | |
| except Exception as e: | |
| logger.error(f"Error running FastAPI server: {str(e)}") | |
| raise | |
| if __name__ == "__main__": | |
| if len(sys.argv) > 1: | |
| if sys.argv[1] == "mcp": | |
| asyncio.run(run_mcp_server()) | |
| elif sys.argv[1] == "fastapi": | |
| run_fastapi_server() | |
| else: | |
| print("Usage: python run_server.py [mcp|fastapi]") | |
| sys.exit(1) | |
| else: | |
| # Default: run FastAPI server | |
| run_fastapi_server() |