nimo007 commited on
Commit
7e5bd92
·
verified ·
1 Parent(s): 770a5dc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -24
app.py CHANGED
@@ -1,28 +1,19 @@
1
- from datetime import datetime
2
- from fastapi import FastAPI
3
- from mcp.server.fastmcp import FastMCP
4
- import zoneinfo
5
 
6
- # --- Minimal MCP server that returns current datetime ---
7
- mcp = FastMCP(
8
- name="datetime",
9
- stateless_http=True, # no auth/state, HTTP transport
10
- # json_response=True, # optional: force JSON-only if your client prefers it
11
- )
12
 
13
- @mcp.tool(description="Return current datetime. tz is an IANA TZ name (e.g. 'UTC', 'Asia/Kolkata').")
14
- def get_datetime(tz: str = "UTC", iso: bool = True) -> str:
15
- z = zoneinfo.ZoneInfo(tz)
16
- now = datetime.now(tz=z)
17
- return now.isoformat() if iso else now.strftime("%Y-%m-%d %H:%M:%S %Z")
18
 
19
- # --- Host app ---
20
- app = FastAPI()
21
 
22
- # Mount the Streamable HTTP MCP server at /mcp with NO extra middleware around it
23
- app.mount("/mcp", mcp.streamable_http_app())
24
-
25
- # (Optional) tiny root page so Spaces shows something at "/"
26
- @app.get("/")
27
- def root():
28
- return {"ok": True, "mcp": "/mcp"}
 
1
+ # app.py
2
+ import gradio as gr
3
+ from datetime import datetime, timezone
 
4
 
5
+ def now_utc():
6
+ yield datetime.now(timezone.utc).isoformat()
 
 
 
 
7
 
8
+ with gr.Blocks() as demo:
9
+ gr.Markdown("# Datetime MCP Server (UTC)")
10
+ out = gr.Textbox(label="Current Time (UTC)")
11
+ btn = gr.Button("Get Time")
12
+ btn.click(now_utc, None, out, stream=True)
13
 
14
+ # IMPORTANT: `demo.queue()` is required for SSE streaming in Spaces
15
+ demo.queue()
16
 
17
+ if __name__ == "__main__":
18
+ # We use share=False because Spaces already handles public URL.
19
+ demo.launch(mcp_server=True, share=False)