Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Request | |
| from fastapi.responses import RedirectResponse | |
| import gradio as gr | |
| from server import mcp # Tu servidor MCP original | |
| import datetime | |
| app = FastAPI(title="MCP Server") | |
| # Interfaz Gradio mejorada | |
| def create_demo(): | |
| with gr.Blocks(title="MCP Dashboard") as demo: | |
| gr.Markdown("# 🚀 MCP Server Dashboard") | |
| with gr.Row(): | |
| gr.Markdown("Bienvenido al panel de control del servidor MCP") | |
| with gr.Row(): | |
| status = gr.Textbox(label="Estado", value="✅ Servidor activo") | |
| btn = gr.Button("Actualizar") | |
| def update_status(): | |
| return f"✅ Servidor activo (Última verificación: {datetime.datetime.now().strftime('%H:%M:%S')}" | |
| btn.click(update_status, outputs=status) | |
| gr.Markdown("### Endpoints disponibles:") | |
| gr.Markdown("- `/get_document_info` - Información de documentos") | |
| gr.Markdown("- `/sse` - Stream de eventos") | |
| return demo | |
| # Redirección inteligente para Hugging Face Spaces | |
| async def root(request: Request): | |
| # Verifica si el acceso viene de la página principal del Space | |
| if "hf.space" in request.headers.get("referer", ""): | |
| return RedirectResponse(url="/gradio") | |
| return {"message": "MCP Server API", "docs": "/gradio"} | |
| # Montaje de Gradio | |
| gradio_app = create_demo() | |
| app = gr.mount_gradio_app(app, gradio_app, path="/gradio") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=7860) |