TushP's picture
Upload folder using huggingface_hub
bb9baa9 verified
"""
Save Report MCP Server
Provides both:
- MCP tools (for MCP server)
- Direct Python functions (for agent import)
"""
from fastmcp import FastMCP
import json
import os
from datetime import datetime
from typing import Dict, Any
# Initialize FastMCP server
mcp = FastMCP("Restaurant Report Saver")
# ============ DIRECT PYTHON FUNCTIONS (for agent import) ============
def save_json_report_direct(
restaurant_name: str,
analysis_data: Dict[str, Any],
output_dir: str = "reports"
) -> str:
"""
Direct function: Save analysis report as JSON.
Args:
restaurant_name: Name of the restaurant
analysis_data: Complete analysis results
output_dir: Directory to save report
Returns:
Path to saved report
"""
os.makedirs(output_dir, exist_ok=True)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
safe_name = restaurant_name.lower().replace(" ", "_")
filename = f"{safe_name}_report_{timestamp}.json"
filepath = os.path.join(output_dir, filename)
with open(filepath, 'w', encoding='utf-8') as f:
json.dump(analysis_data, f, indent=2, ensure_ascii=False)
return filepath
def list_saved_reports_direct(output_dir: str = "reports") -> list:
"""
Direct function: List all saved reports.
Args:
output_dir: Directory containing reports
Returns:
List of report filenames
"""
if not os.path.exists(output_dir):
return []
reports = [f for f in os.listdir(output_dir) if f.endswith('.json')]
return sorted(reports, reverse=True)
# ============ MCP TOOLS (for MCP server) ============
@mcp.tool()
def save_json_report(
restaurant_name: str,
analysis_data: Dict[str, Any],
output_dir: str = "reports"
) -> str:
"""MCP Tool: Save analysis report as JSON."""
return save_json_report_direct(restaurant_name, analysis_data, output_dir)
@mcp.tool()
def list_saved_reports(output_dir: str = "reports") -> list:
"""MCP Tool: List all saved reports."""
return list_saved_reports_direct(output_dir)
# Run the MCP server
if __name__ == "__main__":
mcp.run()