agentic-corrective-rag / mcp_server.py
3v324v23's picture
Auto deploy backend
51be16d
from mcp.server.fastmcp import FastMCP
import requests
import time
HF_URL = "https://hitan2004-agentic-corrective-rag.hf.space"
mcp = FastMCP("Agentic Corrective RAG")
def wake_up_hf():
for i in range(5):
try:
r = requests.get(f"{HF_URL}/health", timeout=30)
if r.status_code == 200:
print("HuggingFace space is awake")
return
except:
print(f"Attempt {i+1}/5 - Waiting for HF space...")
time.sleep(15)
print("Proceeding anyway...")
@mcp.tool()
def query_rag(question: str, session_id: str = "default") -> dict:
"""Query documents using corrective RAG with hallucination detection."""
response = requests.post(f"{HF_URL}/query",
json={"query": question, "session_id": session_id})
return response.json()
@mcp.tool()
def ingest_document(file_path: str) -> dict:
"""Upload and index a PDF or TXT document."""
with open(file_path, "rb") as f:
response = requests.post(f"{HF_URL}/upload", files={"file": f})
return response.json()
@mcp.tool()
def clear_session(session_id: str) -> dict:
"""Clear conversation history for a session."""
response = requests.delete(f"{HF_URL}/session/{session_id}")
return response.json()
if __name__ == "__main__":
wake_up_hf()
mcp.run()