kabudadada
Initial commit
f73536b
"""
AlphaGenome MCP Service - Hugging Face Spaces App
"""
import os
import sys
from fastapi import FastAPI
from fastapi.responses import JSONResponse
import uvicorn
# Add the source directory to Python path
source_path = os.path.join(os.path.dirname(__file__), "alphagenome", "source")
sys.path.insert(0, source_path)
# Add mcp_plugin to path
mcp_plugin_path = os.path.join(os.path.dirname(__file__), "alphagenome", "mcp_output", "mcp_plugin")
sys.path.insert(0, mcp_plugin_path)
app = FastAPI(
title="AlphaGenome MCP Service",
description="AlphaGenome AI model for genomic data interpretation",
version="1.0.0"
)
@app.get("/")
def root():
"""Root endpoint with service information"""
api_key_configured = os.environ.get("ALPHAGENOME_API_KEY", "not_set") != "your_api_key_here"
return {
"service": "AlphaGenome MCP Service",
"description": "AI model for predicting genetic variant effects",
"version": "1.0.0",
"api_key_configured": api_key_configured,
"tools": [
"predict_sequence",
"predict_interval",
"predict_variant",
"score_variant",
"score_variants",
"score_variant_effect",
"visualize_variant_effects",
"score_variant_batch",
"visualize_tf_binding",
"plot_predictions"
],
"environment_variables": {
"ALPHAGENOME_API_KEY": "Set your AlphaGenome API key here"
}
}
@app.get("/health")
def health_check():
"""Health check endpoint"""
return {"status": "healthy", "service": "AlphaGenome MCP"}
@app.get("/tools")
def list_tools():
"""List available MCP tools"""
try:
# Import from the correct path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "alphagenome", "mcp_output", "mcp_plugin"))
from mcp_service import create_app
mcp_app = create_app()
tools = []
for tool_name, tool_func in mcp_app.tools.items():
tools.append({
"name": tool_name,
"description": tool_func.__doc__ or "No description available"
})
return {"tools": tools}
except Exception as e:
return {"error": f"Failed to load tools: {str(e)}"}
if __name__ == "__main__":
port = int(os.environ.get("PORT", 7860))
uvicorn.run(app, host="0.0.0.0", port=port)