import asyncio
from llms.MCPs.MCPStdioServer import MCPStdioServer
import os

async def main():
    prueba = MCPStdioServer(
        name="prueba_server_mcp",
        command="C:/Users/lucas/Desktop/mcps/.venv/Scripts/python.exe",
        args=["C:/Users/lucas/Desktop/mcps/server_mcp_python/server_mcp.py"],
    )
    await prueba.start()
    print("Herramientas:", prueba.get_tool_names())

    await prueba.stop()  # <- esto previene el error


if __name__ == "__main__":
    # Asegura compatibilidad para subprocess en Windows
    if os.name == "nt":
        asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())




    asyncio.run(main())




from src.ApiKeys.openai_apikey import OpenAICredencial
from src.ApiKeys.openai_apikey_mmr import OpenAICredencialRepo  # Ajusta si está en otro módulo
from src.ConexionSql.Postgres_conexion import PostgresConexion

# 1. Crear instancia de conexión (asegúrate de configurar bien tu conexión en Base_conexion)
from entrypoint.init_db import db_credencial
conexion_admin = PostgresConexion(db_credencial)

# 3. Guardar la credencial en la base de datos
repo = OpenAICredencialRepo(conexion_admin)
credencial_openai = repo.get_by_id(1)
print(f"✅ Credencial: {credencial_openai.titulo}")

from src.ConexionApis.OpenAi_conexion import OpenAICliente

cliente = OpenAICliente(credencial_openai)

from llms.Modelos.Openai_model import ModeloOpenAI

modelo = ModeloOpenAI(
    cliente=cliente,
    model="gpt-4o",
    temperature=1,
    top_p=1.0
)

from llms.Agente import AgenteAI


agente_con_herramientas = AgenteAI(
    modelo=modelo,
    nombre="Agente con herramientas",
    descripcion="Un agente que puede usar herramientas",
    system_prompt="Eres un asistente que puede usar herramientas para responder preguntas.",
    rol="asistente",
    objetivos=["Asistir al usuario en tareas complejas", "usar herramientas para obtener información adicional"]
    # tools=

)

respuesta = agente_con_herramientas.interactuar(
    prompt="Hola como estas?",
)

print(respuesta)