from fastapi import FastAPI import src.Paraphrase as Paraphrase import src.Translate as Translate from typing import Optional from fastapi_mcp import FastApiMCP app = FastAPI(docs_url="/docs") MTMODELS = {'enro': 'BlackKakapo/opus-mt-en-ro', 'roen': 'BlackKakapo/opus-mt-ro-en', 'gemma': 'Gargaz/gemma-2b-romanian-better'} @app.get("/") def index(): return {'endpoints': ['/paraphrase', '/translate', '/docs', 'https://tiberiucristianleon-fastapimt.hf.space/redoc'], 'mtmodels': MTMODELS} @app.get("/paraphrase") def paraphrase(text: str, model: str, operation_id="get_paraphrase", description="Paraphrase text"): resultValue, exception = Paraphrase.paraphraseParaphraseMethod(text, model) return {"input": text, "translation": resultValue, "exception": exception} @app.get("/translate") def translate(text: str, model: Optional[str] = MTMODELS['gemma'], operation_id="get_translate", description="Translate text"): # resultValue, exception = Translate.paraphraseTranslateMethod(text, model) resultValue: str = Translate.gemma_direct(text, model) return {"input": text, "result": resultValue, "model": model} # Create an MCP server based on this app mcp = FastApiMCP( app, name="FASTAPI translate and paraphrase MCP", description="MCP server to translate and paraphrase text", describe_all_responses=True, describe_full_response_schema=True, include_operations=["get_translate", "get_paraphrase"] ) # Mount the MCP server directly to your app mcp.mount()