IT · Model Context Protocol
Практика: signin, add_car, get_cars і сесія клієнта
Урок 7
Блок 1
Один клієнт — одна сесія для всіх tools
AsyncClient
Якщо створювати новий HTTP-клієнт на кожен виклик tool, cookie sid після авторизації втрачається.
Тоді add_car і get_cars отримують 401 — сесії вже немає.
AsyncClient
Функція get_client() повертає один спільний httpx.AsyncClient на весь процес MCP-сервера.
Після signup або signin cookie sid зберігається і доступна для всіх наступних tools.
signin, add_car, get_carsAsyncClient
from functools import lru_cache
import httpx
@lru_cache
def get_client() -> httpx.AsyncClient:
return httpx.AsyncClient(
base_url=BASE_URL,
timeout=30.0,
headers={"Content-Type": "application/json"},
)
lru_cache гарантує: один інстанс клієнта на процес. Усі tools беруть його через get_client().
Фінал заняття
Спільний AsyncClient через get_client() — фундамент розширення qauto MCP server.
Без нього нові методи не зможуть працювати в одній сесії після авторизації.
Далі — огляд і реалізація методів: signin, add_car, get_cars.