MCP-EdTech / main.py
Engmhabib's picture
Upload 30 files
942216e verified
Raw History Blame Contribute Delete
1.85 kB
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)