from typing import List
from langchain_core.tools import StructuredTool
from langchain_mcp_adapters.client import MultiServerMCPClient
from config.settings import settings


class MCPClient:
    """
    Conexión al servidor MCP usando langchain-mcp-adapters
    con transporte 'streamable_http' (Spring AI).
    """

    def __init__(self):
        self.server_url = settings.MCP_SERVER_URL
        print(f"🔌 Inicializando MultiServerMCPClient con URL: {self.server_url}")
        self.client = MultiServerMCPClient({
            "retail-server": {
                "url": self.server_url,
                "transport": "streamable_http"
            }
        })

    async def get_raw_tools(self) -> List[StructuredTool]:
        """Obtiene las herramientas crudas del servidor MCP."""
        return await self.client.get_tools()
