Files
prompts/src/personal_mcp/web/app.py
T
John Lancaster b6010775ad web package
2026-06-18 21:15:54 -05:00

37 lines
972 B
Python

from fastapi import FastAPI
from personal_mcp.mcp import mcp
from personal_mcp.web.config import Settings, get_settings
from personal_mcp.web.docs_mount import mount_docs_static
from personal_mcp.web.health import router as health_router
def create_app(settings: Settings | None = None) -> FastAPI:
runtime_settings = settings or get_settings()
mcp_app = mcp.http_app(
path=runtime_settings.mcp_route,
json_response=True,
stateless_http=True,
transport="http",
)
app = FastAPI(
debug=runtime_settings.debug,
docs_url=None,
redoc_url=None,
openapi_url=None,
lifespan=mcp_app.lifespan,
)
app.state.settings = runtime_settings
app.include_router(health_router)
mount_docs_static(
app,
docs_route=runtime_settings.docs_route,
site_dir=runtime_settings.site_dir,
)
app.mount("/", mcp_app, name="mcp")
return app
app = create_app()