Spaces:
Sleeping
Sleeping
File size: 1,303 Bytes
2f235a0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# =============================================================
# File: backend/mcp_servers/admin_server.py
# =============================================================
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import logging
import sys
import os
# Fix Python module paths
current_dir = os.path.dirname(__file__)
sys.path.insert(0, current_dir)
from models.admin import EvalRequest, AlertPayload
admin_app = FastAPI(title="Admin MCP Server")
# Enable CORS
admin_app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
log = logging.getLogger("admin_mcp")
logging.basicConfig(level=logging.INFO)
@admin_app.post("/eval")
async def eval_query(req: EvalRequest):
danger = ["delete all data", "export users", "password", "token"]
q = req.query.lower()
for d in danger:
if d in q:
return {"action": "block", "reason": d}
return {"action": "allow"}
@admin_app.post("/alert")
async def alert(payload: AlertPayload):
log.warning(f"Alert received for tenant {payload.tenant_id}: {payload.violations}")
return {"status": "ok"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(admin_app, host="0.0.0.0", port=8003)
|