Files
basicmachines-co-basic-memory/src/basic_memory/mcp/async_client.py
T
Paul Hernandez 473f70c949 chore: Cloud auth (#213)
Signed-off-by: phernandez <paul@basicmachines.co>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-07 21:08:25 -05:00

30 lines
966 B
Python

from httpx import ASGITransport, AsyncClient
from loguru import logger
from basic_memory.api.app import app as fastapi_app
from basic_memory.config import ConfigManager
def create_client() -> AsyncClient:
"""Create an HTTP client based on configuration.
Returns:
AsyncClient configured for either local ASGI or remote HTTP transport
"""
config_manager = ConfigManager()
config = config_manager.load_config()
if config.api_url:
# Use HTTP transport for remote API
logger.info(f"Creating HTTP client for remote Basic Memory API: {config.api_url}")
return AsyncClient(base_url=config.api_url)
else:
# Use ASGI transport for local API
logger.debug("Creating ASGI client for local Basic Memory API")
return AsyncClient(
transport=ASGITransport(app=fastapi_app),
base_url="http://test"
)
# Create shared async client
client = create_client()