"""TA-ATS MCP tool service — reusable MFA and resume tools.

Run modes (set MCP_TRANSPORT):
  http  (default) — HTTP service on :9000, called by Django
  stdio           — for AI agents / Claude Desktop
"""
import os

from dotenv import load_dotenv
from fastmcp import FastMCP

load_dotenv(os.path.join(os.path.dirname(__file__), ".env"))

from tools.mfa_tools import generate_mfa_secret, get_provisioning_uri, get_qr_code, verify_mfa_code
from tools.resume_tools import extract_resume_data
from tools.email_tools import send_email_otp
from tools.policy_tools import get_mfa_policy, set_mfa_policy
from tools.store_tools import mfa_setup, mfa_send_login_otp, mfa_verify, mfa_status
from tools.login_tools import verify_login, sync_user, delete_user
from db import ensure_schema

ensure_schema()   # create the MCP's own tables in ats_mcp_db

mcp = FastMCP("TA-ATS-Tools")

mcp.tool(generate_mfa_secret)
mcp.tool(get_provisioning_uri)
mcp.tool(get_qr_code)
mcp.tool(verify_mfa_code)
mcp.tool(extract_resume_data)
mcp.tool(send_email_otp)
mcp.tool(get_mfa_policy)
mcp.tool(set_mfa_policy)
# stateful tools — use the MCP's OWN database (ats_mcp_db)
mcp.tool(mfa_setup)
mcp.tool(mfa_send_login_otp)
mcp.tool(mfa_verify)
mcp.tool(mfa_status)
mcp.tool(verify_login)
mcp.tool(sync_user)
mcp.tool(delete_user)

if __name__ == "__main__":
    transport = os.getenv("MCP_TRANSPORT", "http")
    if transport == "http":
        mcp.run(transport="http", host="127.0.0.1", port=int(os.getenv("MCP_PORT", "9000")))
    else:
        mcp.run()
