from fastapi import FastAPI
from mcp.server.fastmcp import FastMCP, Context
import argparse
import asyncio
import uvicorn
app = FastAPI()
mcp = FastMCP("sse_log_test")
@mcp.tool()
async def log_test(ctx: Context):
"""Log testing tool."""
await ctx.session.send_log_message("info", "Initial log message")
await asyncio.sleep(2)
await ctx.session.send_log_message("info", "Delayed log message")
return {"status": "Logging completed"}
app.mount("/", mcp.sse_app())
def main():
parser = argparse.ArgumentParser(
description="Run Simple SSE Logger server")
parser.add_argument("--port", type=int, default=8888,
help="Port to run the server on")
parser.add_argument("--host", type=str, default="0.0.0.0",
help="Host to bind the server to")
args = parser.parse_args()
uvicorn.run(app, host=args.host, port=args.port)
if __name__ == "__main__":
main()
Comments