Fix middleware schema caching error #7
1 changed files with 19 additions and 2 deletions
|
|
@ -8,6 +8,7 @@ with automatic API monitoring and dynamic schema adaptation.
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
import uvicorn
|
||||||
from mcp.server.fastmcp import FastMCP
|
from mcp.server.fastmcp import FastMCP
|
||||||
from starlette.middleware.cors import CORSMiddleware
|
from starlette.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
|
|
@ -103,7 +104,23 @@ def main():
|
||||||
"Users will need to login or provide a cookie."
|
"Users will need to login or provide a cookie."
|
||||||
)
|
)
|
||||||
|
|
||||||
# Run the server
|
# Run the server with the modified app (with middleware)
|
||||||
|
# Note: We cannot use mcp.run() as it creates a new app instance without our middleware
|
||||||
|
if settings.TRANSPORT == "streamable-http":
|
||||||
|
# Run uvicorn directly with our middleware-enhanced app
|
||||||
|
uvicorn.run(
|
||||||
|
mcp_app,
|
||||||
|
host=settings.HOST,
|
||||||
|
port=settings.PORT,
|
||||||
|
log_level=settings.LOG_LEVEL.lower(),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
# For other transports (SSE), use the default run method
|
||||||
|
# Note: SSE transport may not support custom middleware
|
||||||
|
logger.warning(
|
||||||
|
"Using mcp.run() for non-streamable-http transport. "
|
||||||
|
"CORS middleware may not be applied."
|
||||||
|
)
|
||||||
mcp.run(transport=settings.TRANSPORT)
|
mcp.run(transport=settings.TRANSPORT)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue