IntegraChat / backend /mcp_servers /admin_server.py
nothingworry's picture
working the rag and web server
2f235a0
raw
history blame
1.3 kB
# =============================================================
# 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)