MCP-EdTech / main.py
Engmhabib's picture
Upload 30 files
942216e verified
import os
import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import RedirectResponse, HTMLResponse, JSONResponse
from fastapi.openapi.docs import get_swagger_ui_html, get_redoc_html
from fastapi.openapi.utils import get_openapi
from src.api.app import app as api_app
app = FastAPI(title="MCP EdTech", description="Model Context Protocol for Educational Technology")
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.get("/", response_class=HTMLResponse)
async def serve_root():
try:
with open("static/index.html", "r") as f:
html_content = f.read()
return HTMLResponse(content=html_content)
except Exception as e:
return JSONResponse(content={
"name": "MCP EdTech API",
"version": "1.0.0",
"description": "Model Context Protocol implementation for EdTech applications",
"demo_ui": "Please visit /demo for the interactive demo"
})
@app.get("/demo", response_class=HTMLResponse)
async def serve_demo():
with open("static/index.html", "r") as f:
html_content = f.read()
return HTMLResponse(content=html_content)
for route in api_app.routes:
app.routes.append(route)
def custom_openapi():
if app.openapi_schema:
return app.openapi_schema
openapi_schema = get_openapi(
title="MCP EdTech API BY MHA",
version="1.0.0",
description="Model Context Protocol implementation for EdTech applications",
routes=app.routes,
)
app.openapi_schema = openapi_schema
return app.openapi_schema
app.openapi = custom_openapi
if __name__ == "__main__":
port = int(os.environ.get("PORT", 7860))
uvicorn.run(app, host="0.0.0.0", port=port)