Ronio Jerico Roque
Add health check endpoint and echo tool functionality
e94f698
raw
history blame
1.21 kB
import os
from fastapi import FastAPI, HTTPException
from fastapi_mcp import FastApiMCP
from pydantic import BaseModel
from typing import Optional
# Create a FastAPI instance
app = FastAPI()
# --- Keep this root endpoint for health checks and basic access ---
@app.get("/")
async def read_root():
return {"message": "Server is running and healthy!"}
class ToolInput(BaseModel):
text: str
operation: str
class ToolOutput(BaseModel):
result: str
@app.post("/tools/echo", operation_id="echo_tool")
async def echo_tool(input_data: ToolInput) -> ToolOutput:
"""
A simple echo tool that returns the input text with a prefix
"""
try:
# Process the input
result = f"Echo: {input_data.text}"
return ToolOutput(result=result)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
# Initialize MCP with the tool endpoint
mcp = FastApiMCP(
app,
include_operations=["echo_tool"]
)
mcp.mount()
if __name__ == "__main__":
import uvicorn
# Use the PORT environment variable provided by Hugging Face, default to 7860
port = int(os.environ.get("PORT", "7860"))
uvicorn.run(app, host="0.0.0.0", port=port)